Просмотр исходного кода

feat(文件夹): 添加创建文件夹失败提示和防抖处理

为文件夹创建功能添加失败状态提示和防抖处理,防止重复提交
lsc 1 месяц назад
Родитель
Сommit
343562ba3b
4 измененных файлов с 17 добавлено и 5 удалено
  1. 14 5
      src/components/pages/knowledge/folder.vue
  2. 1 0
      src/lang/cn.json
  3. 1 0
      src/lang/en.json
  4. 1 0
      src/lang/hk.json

+ 14 - 5
src/components/pages/knowledge/folder.vue

@@ -531,7 +531,7 @@
       </div>
       <span slot="footer">
         <el-button @click="moveBox = false">{{ lang.cancel }}</el-button>
-        <el-button type="primary" @click="createFolder(2)">{{
+        <el-button type="primary" @click="createFolder(2)" v-loading="addLoading">{{
           lang.confirm
         }}</el-button>
       </span>
@@ -560,6 +560,8 @@ import copy1 from "../../../assets/copy1.svg";
 import JSZip from "jszip";
 import FileSaver from "file-saver";
 
+import _ from "lodash";
+
 const getFile = (url) => {
   return new Promise((resolve, reject) => {
     var credentials = {
@@ -687,6 +689,7 @@ export default {
       stype2: 1,
       userArray: [],
       user: "",
+      addLoading: false,
     };
   },
   computed: {
@@ -931,11 +934,15 @@ export default {
       this.folderDescription = "";
       this.moveBox = true;
     },
-    createFolder(im) {
+    createFolder: _.debounce(function(im) {
       if (!this.folderName) {
         this.$message.error(this.lang.folderNameMust);
         return;
       }
+      if (this.addLoading) {
+        return;
+      }
+      this.addLoading = true;
       let params = [
         {
           n: this.folderName,
@@ -947,18 +954,20 @@ export default {
       this.ajax
         .post(this.$store.state.fileApi + "addFolder", params)
         .then((res) => {
+          this.moveBox = false;
+          this.addLoading = false;
           this.$message({
             message: this.lang.createSuccess,
             type: "success",
           });
-          this.moveBox = false;
           this.getData();
         })
         .catch((err) => {
-          this.$message.error(this.lang.deleteFail);
+          this.addLoading = false;
+          this.$message.error(this.lang.createFail);
           console.error(err);
         });
-    },
+    }, 500),
     editFile(id, folderid) {
       console.log(id);
 

+ 1 - 0
src/lang/cn.json

@@ -51,6 +51,7 @@
   "selectDeFolder":"请选择要删除的文件夹",
   "folderNameMust":"文件夹名字必填",
   "createSuccess":"创建成功",
+  "createFail":"创建失败",
   "selectFolder":"请选择文件夹",
   "selectFileName":"请输入文件名称",
   "flushed":"刷新",

+ 1 - 0
src/lang/en.json

@@ -50,6 +50,7 @@
   "selectDeFolder":"Please select the folder to delete",
   "folderNameMust":"Folder name is required",
   "createSuccess":"Create Success",
+  "createFail":"Create Failed",
   "selectFolder":"Select a folder",
   "selectFileName":"Enter file name to search",
   "flushed":"Refresh",

+ 1 - 0
src/lang/hk.json

@@ -50,6 +50,7 @@
   "selectDeFolder": "請選擇要刪除的文件夾",
   "folderNameMust": "文件夾名字必填",
   "createSuccess": "創建成功",
+  "createFail": "創建失敗",
   "selectFolder": "請選擇文件夾",
   "selectFileName": "請輸入文件名稱",
   "flushed": "刷新",