From 62ae55ae397b7997b147a7b946f7ad5f1c78a45d Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期三, 26 十月 2022 19:34:33 +0800
Subject: [PATCH] 综合展示,系统管理,授权管理,专题图,资料馆添加权限配置

---
 src/views/maintenance/menuSettings.vue |  145 +++++++++++++++++++++++++++++-------------------
 1 files changed, 87 insertions(+), 58 deletions(-)

diff --git a/src/views/maintenance/menuSettings.vue b/src/views/maintenance/menuSettings.vue
index ff86f67..f34517f 100644
--- a/src/views/maintenance/menuSettings.vue
+++ b/src/views/maintenance/menuSettings.vue
@@ -23,6 +23,7 @@
             <span>{{ node.label }}</span>
             <span class="btnBox">
               <el-button
+                v-if="menuStatus.insert"
                 type="text"
                 size="mini"
                 @click="() => append(node, data)"
@@ -30,6 +31,7 @@
                 <i class="el-icon-circle-plus"></i>
               </el-button>
               <el-button
+                v-if="menuStatus.delete"
                 type="text"
                 size="mini"
                 @click="() => remove(node, data)"
@@ -99,7 +101,7 @@
           <el-form-item label="澶囨敞" :label-width="formLabelWidth">
             <el-input v-model="itemdetail.bak" autocomplete="off"></el-input>
           </el-form-item>
-          <div class="btnBox">
+          <div class="btnBox" v-if="menuStatus.update">
             <el-button type="primary" @click="updMenu('itemdetail')"
               >淇濆瓨</el-button
             >
@@ -179,7 +181,7 @@
 </template>
 
 <script>
-import MyBread from "../../components/MyBread.vue";
+import MyBread from '../../components/MyBread.vue';
 import {
   queryMenuTree,
   updateMenuTree,
@@ -187,7 +189,7 @@
   queryMaxId,
   insertMenu,
   deleteMenu,
-} from "../../api/api";
+} from '../../api/api';
 export default {
   //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
   components: {
@@ -195,9 +197,14 @@
   },
   data() {
     return {
+      menuStatus: {
+        delete: false,
+        insert: false,
+        update: false,
+      },
       defaultProps: {
-        children: "children",
-        label: "cnName",
+        children: 'children',
+        label: 'cnName',
       },
       fullscreenLoading: false,
       oriData: [], //鍘熷鏍戞暟鎹�
@@ -205,53 +212,53 @@
       old_dirDat: [], //el鏍戞暟鎹�(鎷栧姩鍓�)
       newData: [], //鎷栧姩鍚庡師濮嬫暟鎹�
       itemdetail: {
-        cnName: "",
-        enName: "",
+        cnName: '',
+        enName: '',
         icon: null,
         isShow: null,
         perms: null,
-        url: "",
+        url: '',
         type: null,
-        bak: "",
+        bak: '',
       },
-      backUpData: "",
-      formLabelWidth: "130px",
-      delChildID: "",
+      backUpData: '',
+      formLabelWidth: '130px',
+      delChildID: '',
       delChildIDs: [],
       dialogFormVisible: false,
       ruleForm: {
         level: null,
         orderNum: null,
         pid: null,
-        enName: "",
-        cnName: "",
-        icon: "",
+        enName: '',
+        cnName: '',
+        icon: '',
         isShow: null,
-        url: "",
+        url: '',
         perms: null,
         type: null,
-        bak: "",
+        bak: '',
       },
       rules: {
         enName: [
-          { required: true, message: "璇疯緭鍏ヨ嫳鏂囧悕绉�", trigger: "blur" },
+          { required: true, message: '璇疯緭鍏ヨ嫳鏂囧悕绉�', trigger: 'blur' },
         ],
         cnName: [
-          { required: true, message: "璇疯緭鍏ヤ腑鏂囧悕绉�", trigger: "blur" },
+          { required: true, message: '璇疯緭鍏ヤ腑鏂囧悕绉�', trigger: 'blur' },
         ],
 
         isShow: [
           {
             required: true,
-            message: "璇烽�夋嫨鏄惁鏄剧ず",
-            trigger: "change",
+            message: '璇烽�夋嫨鏄惁鏄剧ず',
+            trigger: 'change',
           },
         ],
         type: [
           {
             required: true,
-            message: "璇烽�夋嫨鑺傜偣绫诲瀷",
-            trigger: "change",
+            message: '璇烽�夋嫨鑺傜偣绫诲瀷',
+            trigger: 'change',
           },
         ],
       },
@@ -260,25 +267,25 @@
       options1: [
         {
           value: 0,
-          label: "闅愯棌",
+          label: '闅愯棌',
         },
         {
           value: 1,
-          label: "鏄剧ず",
+          label: '鏄剧ず',
         },
       ],
       options2: [
         {
           value: 0,
-          label: "鏍圭洰褰�",
+          label: '鏍圭洰褰�',
         },
         {
           value: 1,
-          label: "鑿滃崟",
+          label: '鑿滃崟',
         },
         {
           value: 2,
-          label: "鎸夐挳",
+          label: '鎸夐挳',
         },
       ],
     };
@@ -295,7 +302,7 @@
           this.oriData = res.result;
           this.newData = res.result;
         } else {
-          console.log("鎺ュ彛鎶ラ敊");
+          console.log('鎺ュ彛鎶ラ敊');
         }
       });
     },
@@ -304,7 +311,7 @@
       return cloneData.filter((father) => {
         // 寰幆鎵�鏈夐」
         let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
-        branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+        branchArr.length > 0 ? (father.children = branchArr) : ''; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
         return father.pid == 0; // 杩斿洖涓�绾ц彍鍗�
       });
     },
@@ -332,8 +339,8 @@
                   this.fullscreenLoading = false;
                   if (res.code == 200) {
                     this.$message({
-                      message: "娣诲姞鎴愬姛",
-                      type: "success",
+                      message: '娣诲姞鎴愬姛',
+                      type: 'success',
                     });
                     this.getMenuTree();
                     this.itemdetail = {};
@@ -345,7 +352,7 @@
               })
               .catch((res) => {
                 this.itemdetail = {};
-                this.$message.error("娣诲姞澶辫触");
+                this.$message.error('娣诲姞澶辫触');
                 this.fullscreenLoading = false;
                 console.log(res);
               });
@@ -357,10 +364,10 @@
       });
     },
     remove(node, data) {
-      this.$confirm("姝ゆ搷浣滃皢鍒犻櫎璇ヨ妭鐐�, 鏄惁缁х画?", "鎻愮ず", {
-        confirmButtonText: "纭畾",
-        cancelButtonText: "鍙栨秷",
-        type: "warning",
+      this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ヨ妭鐐�, 鏄惁缁х画?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning',
       })
         .then(() => {
           //鍏勫紵閲嶆柊鎺掑簭
@@ -381,25 +388,25 @@
             .then((res) => {
               if (res[0].code == 200 && res[1].code == 200) {
                 this.$message({
-                  type: "success",
-                  message: "鍒犻櫎鎴愬姛!",
+                  type: 'success',
+                  message: '鍒犻櫎鎴愬姛!',
                 });
                 this.getMenuTree();
                 this.itemdetail = {};
               } else if (res[0].code == 200) {
                 this.getMenuTree();
-                this.$message.error("鍒犻櫎鎴愬姛锛屼綅缃皟鏁村け璐�");
+                this.$message.error('鍒犻櫎鎴愬姛锛屼綅缃皟鏁村け璐�');
               } else if (res[1].code == 200) {
                 this.getMenuTree();
-                this.$message.error("鍒犻櫎澶辫触,浣嶇疆璋冩暣鎴愬姛");
+                this.$message.error('鍒犻櫎澶辫触,浣嶇疆璋冩暣鎴愬姛');
               } else {
-                this.$message.error("鍒犻櫎澶辫触");
+                this.$message.error('鍒犻櫎澶辫触');
               }
             })
             .catch(() => {
               this.$message({
-                type: "error",
-                message: "鍒犻櫎澶辫触",
+                type: 'error',
+                message: '鍒犻櫎澶辫触',
               });
             });
 
@@ -407,7 +414,7 @@
           this.delChildIDs = [];
         })
         .catch(() => {
-          this.$message("宸插彇娑堝垹闄�");
+          this.$message('宸插彇娑堝垹闄�');
         });
     },
     traverseArr(obj) {
@@ -435,21 +442,21 @@
       this.old_dirDat = JSON.parse(JSON.stringify(this.menuList)); //灏嗗浠界殑dir閲嶆柊璧嬪��
     },
     handleDrop(draggingNode, dropNode, dropType, ev) {
-      this.$confirm("姝ゆ搷浣滃皢淇濆瓨鐩綍鏇存敼, 鏄惁缁х画?", "鎻愮ず", {
-        confirmButtonText: "纭畾",
-        cancelButtonText: "鍙栨秷",
-        type: "warning",
+      this.$confirm('姝ゆ搷浣滃皢淇濆瓨鐩綍鏇存敼, 鏄惁缁х画?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning',
       })
         .then(() => {
           //鐖惰妭鐐�
-          let data = dropType != "inner" ? dropNode.parent.data : dropNode.data;
+          let data = dropType != 'inner' ? dropNode.parent.data : dropNode.data;
           // 鐖惰妭鐐逛腑鍏ㄩ儴瀛愯妭鐐�
           let nodeData =
-            dropNode.level == 1 && dropType != "inner" ? data : data.children;
+            dropNode.level == 1 && dropType != 'inner' ? data : data.children;
           //鍙樻洿鑺傜偣
           // console.log(nodeData);
           nodeData.forEach((item, i) => {
-            if (dropType != "inner") {
+            if (dropType != 'inner') {
               if (draggingNode.data.pid === dropNode.data.pid) {
                 item.pid = item.pid;
               } else {
@@ -474,8 +481,8 @@
         })
         .catch(() => {
           this.$message({
-            type: "info",
-            message: "宸插彇娑堟洿鏀�",
+            type: 'info',
+            message: '宸插彇娑堟洿鏀�',
           });
           this.menuList = this.old_dirDat; //灏嗗浠界殑dir閲嶆柊璧嬪��
         });
@@ -492,11 +499,11 @@
             this.getMenuTree();
             return;
           } else {
-            alert("璋冩暣澶辫触锛岃閲嶈瘯锛�");
+            alert('璋冩暣澶辫触锛岃閲嶈瘯锛�');
           }
         })
         .catch(() => {
-          alert("淇敼澶辫触锛岃閲嶈瘯锛�");
+          alert('淇敼澶辫触锛岃閲嶈瘯锛�');
         });
     },
     handleNodeClick(data) {
@@ -522,7 +529,7 @@
                 }, 500);
               })
               .catch((res) => {
-                alert("淇敼澶辫触锛岃閲嶈瘯锛�");
+                alert('淇敼澶辫触锛岃閲嶈瘯锛�');
                 this.fullscreenLoading = false;
               });
           } else {
@@ -533,14 +540,36 @@
     },
     reset(formName) {
       this.$refs[formName].resetFields();
-      if (this.backUpData != "") {
+      if (this.backUpData != '') {
         this.itemdetail = JSON.parse(this.backUpData);
+      }
+    },
+    showPermsMenu(res) {
+      switch (res.tag) {
+        case '/delete':
+          this.menuStatus.delete = true;
+          break;
+        case '/insert':
+          this.menuStatus.insert = true;
+          break;
+        case '/update':
+          this.menuStatus.update = true;
+          break;
       }
     },
   },
   mounted() {
     this.getMenuTree();
   },
+  created() {
+    var val = this.$store.state.currentPerms;
+    var permsEntity = this.$store.state.permsEntity;
+    for (var i = 0; i < permsEntity.length; i++) {
+      if (permsEntity[i].perms == val) {
+        this.showPermsMenu(permsEntity[i]);
+      }
+    }
+  },
 };
 </script>
 <style lang="less" scoped>

--
Gitblit v1.9.3