From a67acbd55451349df089e4d9aa3cb748e225b05b Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期一, 28 十月 2024 15:27:05 +0800
Subject: [PATCH] 密级管理,修改操作类型

---
 Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue |  174 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 99 insertions(+), 75 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
index ed00511..5f7d4ac 100644
--- a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
@@ -2,8 +2,8 @@
   <el-container v-loading="createdLoading">
     <el-aside>
       <basic-container>
-        <div style="max-height: calc(100vh - 170px);overflow: auto">
-          <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
+        <div style="max-height: calc(100vh - 150px);overflow: auto">
+          <avue-tree :key="refresh" node-key="id" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
           <span slot-scope="{ node, data }" class="el-tree-node__label">
            <span style="font-size: 15px">
               <i class="el-icon-s-promotion"></i>
@@ -17,38 +17,88 @@
 
     <el-main>
       <basic-container>
-        <el-form ref="form" :model="form" label-width="85px" style="height: 79vh">
+        <div v-if="form.childType && form.childType !== 0 && !addStatus && !editStatus" class="btnBox">
+          <el-button :disabled="mangeShowBtn ? false : !childTypeBtn" icon="el-icon-plus" plain
+                     size="small"
+                     type="primary" @click="addClickHandler">澧炲姞
+          </el-button>
+          <el-button :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary"
+                     @click="editClickHandler">淇敼
+          </el-button>
+          <el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger"
+                     @click="delClickHandler">鍒犻櫎
+          </el-button>
+          <el-button :disabled="mangeShowBtn ? true : childTypeBtn" icon="el-icon-circle-plus-outline" plain
+                     size="small"
+                     type="primary" @click="addMethodsClickHandler">澧炲姞鎿嶄綔绫诲瀷
+          </el-button>
+          <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
+                     type="danger"
+                     @click="addClickHandler">鍒犻櫎闈炵郴缁熸ā鍧�
+          </el-button>
+          <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
+                     type="danger"
+                     @click="addClickHandler">鍒犻櫎涓氬姟妯″潡
+          </el-button>
+          <el-button :disabled="!mangeShowBtn" icon="el-icon-upload2" plain size="small" type="primary"
+                     @click="upLoadClickHandler">瀵煎叆
+          </el-button>
+          <el-button :disabled="!mangeShowBtn" icon="el-icon-download" plain size="small" type="primary"
+                     @click="exportClickHandler">瀵煎嚭
+          </el-button>
+          <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="sqlClickExportClick">瀵煎嚭sql
+          </el-button>
+        </div>
+        <div v-else-if="form.childType && form.childType !== 0 &&(addStatus || editStatus)" class="btnBox">
+          <el-button v-if="addStatus" icon="el-icon-check" plain size="small"
+                     type="success" @click="addSaveClickHandler">淇濆瓨
+          </el-button>
+          <el-button v-if="editStatus" icon="el-icon-check" plain size="small"
+                     type="success" @click="editSaveClickHandler">淇濆瓨
+          </el-button>
+          <el-button  icon="el-icon-close" plain size="small"
+                     type="danger" @click="addStatus=false;editStatus=false;">鍙栨秷
+          </el-button>
+        </div>
+        <div v-if="form.childType === 0" class="btnBox">
+          <el-button icon="el-icon-edit" plain size="small" type="primary" @click="updataAliasClickHandler">淇敼鍒悕
+          </el-button>
+          <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">鍒犻櫎
+          </el-button>
+        </div>
+        <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 200px);overflow: auto;">
           <span v-if="form.childType !== 0">
             <el-form-item label="妯″潡鍚嶏細">
-            <el-input v-model="form.name" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input>
+            <el-input v-model="form.name" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ユā鍧楀悕"></el-input>
           </el-form-item>
           <el-form-item label="妯″潡鍒悕锛�">
-            <el-input v-model="form.alias" placeholder="妯″潡鍒悕鐢ㄦ潵璁板綍鏃ュ織浣跨敤"></el-input>
+            <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="妯″潡鍒悕鐢ㄦ潵璁板綍鏃ュ織浣跨敤"></el-input>
           </el-form-item>
-                <el-form-item label="C/S锛�">
-            <el-input v-model="form.pathC" :rows="3" placeholder="璇疯緭鍏/S璺緞" type="textarea"></el-input>
+            <el-form-item label="C/S锛�">
+            <el-input v-model="form.pathC" :disabled="!editStatus && !addStatus" :rows="2" placeholder="璇疯緭鍏/S璺緞" type="textarea"></el-input>
           </el-form-item>
           <el-form-item label="B/S锛�">
-            <el-input v-model="form.path" :rows="3" placeholder="璇疯緭鍏/S璺緞" type="textarea"></el-input>
+            <el-input v-model="form.path" :disabled="!editStatus && !addStatus" :rows="2" placeholder="璇疯緭鍏/S璺緞" type="textarea"></el-input>
           </el-form-item>
           <el-form-item label=".NET锛�">
-            <el-input v-model="form.resourceDotNet" :rows="3" placeholder="璇疯緭鍏�.NET" type="textarea"></el-input>
+            <el-input v-model="form.resourceDotNet" :disabled="!editStatus && !addStatus" :rows="2" placeholder="璇疯緭鍏�.NET" type="textarea"></el-input>
           </el-form-item>
           <el-form-item label="Mobile锛�">
-            <el-input v-model="form.resourceMobile" :rows="3" placeholder="璇疯緭鍏obile" type="textarea"></el-input>
+            <el-input v-model="form.resourceMobile" :disabled="!editStatus && !addStatus" :rows="2" placeholder="璇疯緭鍏obile" type="textarea"></el-input>
           </el-form-item>
           <el-form-item label="搴忓彿锛�">
-            <el-input v-model="form.sort" placeholder="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�"></el-input>
+            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus" placeholder="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�"></el-input>
           </el-form-item>
           <el-form-item label="绠�鍥撅細">
-            <el-input v-model="form.source"></el-input>
+            <el-input v-model="form.source" :disabled="!editStatus && !addStatus"></el-input>
           </el-form-item>
           <el-form-item label="鎻忚堪锛�">
-            <el-input v-model="form.remark" :rows="3" placeholder="璇疯緭鍏ユ弿杩�" type="textarea"></el-input>
+            <el-input v-model="form.remark" :disabled="!editStatus && !addStatus" :rows="3" placeholder="璇疯緭鍏ユ弿杩�" type="textarea"></el-input>
           </el-form-item>
           <el-form-item label="鏄惁鏈夋晥锛�">
             <el-switch
               v-model="form.isValid"
+              :disabled="!editStatus && !addStatus"
               active-color="#13ce66"
               inactive-color="#ff4949">
             </el-switch>
@@ -81,50 +131,6 @@
           </el-form-item>
           </span>
         </el-form>
-        <div v-if="form.childType && form.childType !== 0" class="btnBox">
-          <el-button v-if="!addStatus" :disabled="mangeShowBtn ? false : !childTypeBtn" icon="el-icon-plus" plain
-                     size="small"
-                     type="primary" @click="addClickHandler">澧炲姞
-          </el-button>
-          <el-button v-if="addStatus" icon="el-icon-check" plain size="small"
-                     type="success" @click="addSaveClickHandler">淇濆瓨
-          </el-button>
-          <el-button v-if="!editStatus" :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary"
-                     @click="editClickHandler">淇敼
-          </el-button>
-          <el-button v-if="editStatus" icon="el-icon-check" plain size="small"
-                     type="success" @click="editSaveClickHandler">淇濆瓨
-          </el-button>
-          <el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger"
-                     @click="delClickHandler">鍒犻櫎
-          </el-button>
-          <el-button :disabled="mangeShowBtn ? true : childTypeBtn" icon="el-icon-circle-plus-outline" plain
-                     size="small"
-                     type="primary" @click="addMethodsClickHandler">澧炲姞鎿嶄綔绫诲瀷
-          </el-button>
-          <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
-                     type="danger"
-                     @click="addClickHandler">鍒犻櫎闈炵郴缁熸ā鍧�
-          </el-button>
-          <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
-                     type="danger"
-                     @click="addClickHandler">鍒犻櫎涓氬姟妯″潡
-          </el-button>
-          <el-button :disabled="!mangeShowBtn" icon="el-icon-upload2" plain size="small" type="primary"
-                     @click="upLoadClickHandler">瀵煎叆
-          </el-button>
-          <el-button :disabled="!mangeShowBtn" icon="el-icon-download" plain size="small" type="primary"
-                     @click="exportClickHandler">瀵煎嚭
-          </el-button>
-          <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="sqlClickExportClick">瀵煎嚭sql
-          </el-button>
-        </div>
-        <div v-if="form.childType === 0" class="btnBox">
-          <el-button icon="el-icon-edit" plain size="small" type="primary" @click="updataAliasClickHandler">淇敼鍒悕
-          </el-button>
-          <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">鍒犻櫎
-          </el-button>
-        </div>
       </basic-container>
     </el-main>
     <el-dialog
@@ -133,7 +139,7 @@
       append-to-body="true"
       class="avue-dialog"
       title="鎿嶄綔鍒嗙被"
-      width="60%"
+      width="500px"
     >
       <avue-crud
         ref="methodsCrud"
@@ -142,11 +148,10 @@
         :table-loading="methodsLoading"
         @row-click="rowMethodsClickHandler"
         @selection-change="selectMethodsChange">
-
       </avue-crud>
       <span slot="footer" class="dialog-footer">
-         <el-button @click="methodsVisble = false">鍙� 娑�</el-button>
          <el-button type="primary" @click="methodsSaveClickHandler">淇� 瀛�</el-button>
+         <el-button @click="methodsVisble = false">鍙� 娑�</el-button>
         </span>
     </el-dialog>
     <!--瀵煎叆    -->
@@ -187,6 +192,7 @@
         addBtn: false,
         menu: false,
         height: 500,
+        header:false,
         column: [
           {
             label: '鎿嶄綔鍒嗙被',
@@ -202,6 +208,7 @@
       addStatus: false,
       editStatus: false,
       nodeRow: {},
+      currentClickNode:null,
       form: {},
       treeData: [],
       treeOption: {
@@ -255,10 +262,11 @@
   },
   methods: {
     // 鏍戣鐐瑰嚮
-    nodeClick(row) {
+    nodeClick(row,node) {
       console.log(row.childType);
       this.form = {...row};
       this.nodeRow = {...row};
+      this.currentClickNode = node;
       this.addStatus = false;
       this.editStatus = false;
     },
@@ -313,7 +321,7 @@
           this.addStatus = false;
           // this.resetFormValue();
           this.form.childType = null;
-          this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+          this.handleRefreshTree('add')
         }
       })
     },
@@ -357,7 +365,7 @@
           this.editStatus = false;
           // this.resetFormValue();
           this.form.childType = null;
-          this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+          this.handleRefreshTree('edit')
         }
       })
     },
@@ -372,7 +380,7 @@
         delModule(this.form).then(res => {
           if (res.data.code === 200) {
             this.$message.success(res.data.msg);
-            this.resetFormValue();
+            this.handleRefreshTree('del')
             this.addStatus = false;
             this.editStatus = false;
           }
@@ -403,12 +411,14 @@
     // 澧炲姞鎿嶄綔绫诲瀷
     addMethodsClickHandler() {
       this.methodsLoading = true;
-      getSysModelTreeMenuByPID({parentId: 'sysOptionNode'}).then(res => {
-        if (res.data.code === 200) {
+      getSysModelTreeMenuByPID({parentId: 'operateNode'}).then(res => {
+        if (res.data.code === 200 && res.data.data.length>0) {
           this.methodsVisble = true;
-          const data = res.data.data[0].children;
+          const data = res.data.data;
           this.methodsData = data;
           this.methodsLoading = false;
+        }else {
+          this.$message.error('鏈壘鍒板彲澧炲姞鐨勬搷浣滅被鍨�');
         }
       })
     },
@@ -431,7 +441,7 @@
           this.methodsVisble = false;
           this.$message.success(res.data.msg);
           this.form.childType = null;
-          this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+          this.handleRefreshTree('add')
         }
       })
     },
@@ -461,23 +471,21 @@
       updateAlias(params).then(res => {
         if (res.data.code === 200) {
           this.$message.success(res.data.msg);
-          this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+          this.handleRefreshTree('edit')
         }
       })
     },
 
     // 鍒犻櫎妯″潡涓嬪叧鑱旂殑鎿嶄綔绫诲瀷
     deleteOperationClickHandler() {
-      console.log(this.form);
       const params = {
         funcId: this.form.funcId,
         operId: this.form.operId
       }
       delFuncOperation(params).then(res => {
-        console.log(res);
         if (res.data.code === 200) {
           this.$message.success(res.data.msg);
-          this.resetFormValue();
+          this.handleRefreshTree('del');
         }
       })
     },
@@ -489,14 +497,29 @@
         func.downloadFileByBlobHandler(res);
         this.createdLoading = false
         this.$message.success('瀵煎嚭鎴愬姛');
-      }).catch(err => {
-        this.$message.error(err);
       })
     },
 
     // 瀵煎叆
     upLoadClickHandler() {
       this.$refs.upload.visible = true;
+    },
+    handleRefreshTree(type) {
+      //type:add\edit\del
+      if(type=="del"){
+        this.$refs.tree.remove(this.currentClickNode);
+        this.currentClickNode=null;
+        this.form={};
+      }else{
+        if (this.currentClickNode) {
+          let node = this.currentClickNode.parent;
+          node.loaded = false;
+          node.expand();
+          this.$refs.tree.setCurrentNode(this.currentClickNode);
+        }else {
+          this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+        }
+      }
     }
   }
 }
@@ -511,6 +534,7 @@
 
 .btnBox {
   display: flex;
-  justify-content: center;
+  justify-content:left;
+  margin-bottom: 15px;
 }
 </style>

--
Gitblit v1.9.3