diff --git a/app/templates/index.html b/app/templates/index.html index 788ced6..86b0e52 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -307,7 +307,7 @@
- +
@@ -322,7 +322,7 @@
- +
@@ -332,7 +332,7 @@
- +
@@ -353,7 +353,7 @@
- +
@@ -468,12 +468,24 @@ - - + + @@ -562,6 +574,8 @@ selectDir: true, selectShare: true, previewRegex: false, + sortBy: "updated_at", + sortOrder: "desc" }, }, filters: { @@ -984,7 +998,8 @@ axios.get('/get_savepath_detail', { params: params }).then(response => { - this.fileSelect.fileList = response.data.data.list + this.fileSelect.fileList = response.data.data.list; + this.sortFileList(this.fileSelect.sortBy, this.fileSelect.sortOrder); if (response.data.data.paths?.length > 0) { this.fileSelect.paths = response.data.data.paths } @@ -1017,6 +1032,7 @@ }).then(response => { if (response.data.success) { this.fileSelect.fileList = response.data.data.list; + this.sortFileList(this.fileSelect.sortBy, this.fileSelect.sortOrder); this.fileSelect.paths = response.data.data.paths; this.fileSelect.stoken = response.data.data.stoken; } else { @@ -1090,6 +1106,26 @@ shareurl = `${shareurl}#/list/share/${dir.fid}-${dir.name?.replace('-', '*101')}` } return shareurl; + }, + sortFileList(column, order) { + if (this.fileSelect.sortBy === column && !order) { + this.fileSelect.sortOrder = this.fileSelect.sortOrder === "asc" ? "desc" : "asc"; + } else { + this.fileSelect.sortBy = column; + this.fileSelect.sortOrder = order || "asc"; + } + + this.fileSelect.fileList.sort((a, b) => { + let valA = a[this.fileSelect.sortBy]; + let valB = b[this.fileSelect.sortBy]; + + if (typeof valA === "string") valA = valA.toLowerCase(); + if (typeof valB === "string") valB = valB.toLowerCase(); + + if (valA < valB) return this.fileSelect.sortOrder === "asc" ? -1 : 1; + if (valA > valB) return this.fileSelect.sortOrder === "asc" ? 1 : -1; + return 0; + }); } } });
文件名正则处理 + 文件名 + {{ fileSelect.sortOrder === "asc" ? "↑" : "↓" }} + + 正则处理 +