diff --git a/resources/assets/js/pages/manage/file.vue b/resources/assets/js/pages/manage/file.vue
index 91dbc4c4..e77a2ef8 100644
--- a/resources/assets/js/pages/manage/file.vue
+++ b/resources/assets/js/pages/manage/file.vue
@@ -37,7 +37,6 @@
"{{shearFile.name}}"
-
@@ -77,6 +76,9 @@
+
+
+
@@ -436,6 +438,7 @@ export default {
},
selectFile: [],
+ fileChecked: [],
}
},
@@ -524,6 +527,25 @@ export default {
tableMode(val) {
$A.setStorage("fileTableMode", val)
+ // 切换显示模式时把选中的数据转移
+ if ( val === true ) {
+ if ( this.fileChecked.length > 0 ) {
+ for (let i = 0; i < this.fileList.length; i++) {
+ if ( this.fileChecked[this.fileList[i].id] === true )
+ this.fileList[i]["_checked"] = true;
+ else
+ this.fileList[i]["_checked"] = false;
+ }
+ }
+ } else {
+ this.fileChecked = []; // 清空
+ if ( this.selectFile.length > 0 ) {
+ for (let i = 0; i < this.selectFile.length; i++) {
+ this.fileChecked[this.selectFile[i].id] = true;
+ }
+ }
+ }
+
},
fileShow(val) {
@@ -1277,8 +1299,9 @@ export default {
data: {
ids: s_ids,
},
- }).then(({msg}) => {
+ }).then(() => {
this.$Modal.remove();
+ this.selectFile = [];
$A.messageSuccess("已提交至后台处理,请稍后再回来查看结果吧");
}).catch(({msg}) => {
$A.modalError(msg, 301);
@@ -1286,6 +1309,23 @@ export default {
});
}
});
+ },
+
+ onFileCheckClick(file) {
+ if ( this.fileChecked[file.id] === true && !$A.inArray(file.id, this.selectFile) )
+ this.selectFile.push(file);
+ else if ( this.fileChecked[file.id] === false ) {
+ let index = -1;
+ for (let i = 0; i < this.selectFile.length; i++) {
+ if (parseInt(this.selectFile[i].id) === parseInt(file.id)) {
+ index = i;
+ break;
+ }
+ }
+ // 删除对应Id
+ if (index >= 0)
+ this.selectFile.splice(index, 1);
+ }
}
}
}
diff --git a/resources/assets/sass/pages/page-file.scss b/resources/assets/sass/pages/page-file.scss
index 02461356..1362eeb9 100644
--- a/resources/assets/sass/pages/page-file.scss
+++ b/resources/assets/sass/pages/page-file.scss
@@ -422,7 +422,18 @@
}
&:hover {
background-color: #f4f5f7;
- .file-menu {
+ .file-menu, .file-check {
+ opacity: 1;
+ }
+ }
+ .file-check {
+ opacity: 0;
+ position: absolute;
+ top: 2px;
+ left: 2px;
+ transition: opacity 0.2s;
+
+ &.file-checked {
opacity: 1;
}
}