From f50e1f8f20d98a255044d938a7e98bfc0b18d1b0 Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期五, 27 十二月 2024 16:51:46 +0800
Subject: [PATCH] 业务功能模块 管理功能模块更改菜单唯一标识以及样式 操作类型管理添加按钮图标功能 系统运行监控修改为当前在线人员信息图标

---
 Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue |  150 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 92 insertions(+), 58 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
index cea9234..2a1127a 100644
--- a/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue
@@ -2,11 +2,12 @@
   <el-container>
     <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" ref="tree" :data="treeData" :option="treeOption" node-key="id"
+                     @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>
+           <span style="display: flex">
+              <icon-show :name="data.icon"></icon-show>
                 {{ (node || {}).label }}
             </span>
           </span>
@@ -17,43 +18,54 @@
 
     <el-main>
       <basic-container>
-        <el-form ref="form" :model="form" label-width="85px" style="height: 79vh">
-          <el-form-item label="鍚嶇О锛�">
-            <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�"></el-input>
-          </el-form-item>
-          <el-form-item label="鏍囪瘑锛�">
-            <el-input v-model="form.code" placeholder="璇疯緭鍏ユ爣璇�"></el-input>
-          </el-form-item>
-          <el-form-item label="鍒悕锛�">
-            <el-input v-model="form.alias" placeholder="璇疯緭鍏ュ埆鍚�"></el-input>
-          </el-form-item>
-          <el-form-item label="椤哄簭锛�">
-            <el-input-number v-model="form.sort" :min="0" :max="9999" label="椤哄簭"></el-input-number>
-          </el-form-item>
-          <el-form-item label="鎻忚堪锛�">
-            <el-input v-model="form.remark" placeholder="璇疯緭鍏ユ弿杩�"></el-input>
-          </el-form-item>
-        </el-form>
         <div v-if="nodeRow.childType === 0 || nodeRow.childType === -1" class="btnBox">
-          <el-button v-if="!addStatus" :disabled="nodeRow.childType === 0" icon="el-icon-plus" plain
+          <el-button v-if="!addStatus && !editStatus" :disabled="nodeRow.childType === 0" 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="nodeRow.childType === -1" icon="el-icon-edit" plain size="small" type="primary"
+          <el-button v-if="!addStatus && !editStatus" :disabled="nodeRow.childType === -1" 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="nodeRow.childType === -1" icon="el-icon-close" plain size="small" type="danger"
+          <el-button v-if="addStatus || editStatus" icon="el-icon-close" plain size="small"
+                     type="danger" @click="addStatus=false;editStatus=false;">鍙栨秷
+          </el-button>
+          <el-button v-if="!addStatus && !editStatus" :disabled="nodeRow.childType === -1" icon="el-icon-close" plain
+                     size="small" type="danger"
                      @click="delClickHandler">鍒犻櫎
           </el-button>
-          <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="sqlClickExportClick">瀵煎嚭sql
+          <el-button v-if="!addStatus && !editStatus" icon="el-icon-upload2" plain size="small" type="primary"
+                     @click="sqlClickExportClick">瀵煎嚭sql
           </el-button>
         </div>
+        <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 180px);overflow: auto;">
+          <el-form-item label="鍚嶇О锛�">
+            <el-input v-model="form.name" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ュ悕绉�"></el-input>
+          </el-form-item>
+          <el-form-item label="鏍囪瘑锛�">
+            <el-input v-model.trim="form.code" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ユ爣璇�"></el-input>
+          </el-form-item>
+          <el-form-item label="鍒悕锛�">
+            <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ュ埆鍚�"></el-input>
+          </el-form-item>
+          <el-form-item label="鍥炬爣锛�">
+            <input-icon v-model="form.source" :disabled="!editStatus && !addStatus" placeholder="璇烽�夋嫨鍥炬爣">
+            </input-icon>
+          </el-form-item>
+          <el-form-item label="椤哄簭锛�">
+            <el-input-number v-model="form.sort" :disabled="!editStatus && !addStatus" :max="9999" :min="0"
+                             label="椤哄簭"></el-input-number>
+          </el-form-item>
+          <el-form-item label="鎻忚堪锛�">
+            <el-input v-model="form.remark" :disabled="!editStatus && !addStatus" placeholder="璇疯緭鍏ユ弿杩�"></el-input>
+          </el-form-item>
+        </el-form>
       </basic-container>
     </el-main>
   </el-container>
@@ -62,17 +74,18 @@
 <script>
 //绠$悊鍔熻兘妯″潡
 import {exportFunctionSql, getSysModelTreeMenuByPID} from "@/api/systemModel/mangeModel/api"
-import {addOperationType,updateOperationType,delOperationType} from "@/api/systemModel/operateType/api"
+import {addOperationType, updateOperationType, delOperationType} from "@/api/systemModel/operateType/api"
 import func from "@/util/func";
 
 export default {
   name: "index",
   data() {
     return {
-      refresh:Math.random(),
-      editStatus:false,
+      refresh: Math.random(),
+      editStatus: false,
       addStatus: false,
       nodeRow: {},
+      currentClickNode: {},
       form: {},
       treeData: [],
       treeOption: {
@@ -97,7 +110,8 @@
                 ...item,
                 id: item.id,
                 name: item.name,
-                leaf: !item.hasChildren
+                leaf: !item.hasChildren,
+                icon: item.source || 'iconoir:home'
               }
             }))
           })
@@ -107,14 +121,13 @@
   },
   created() {
   },
-  computed: {
-  },
+  computed: {},
   methods: {
     // 鏍戣鐐瑰嚮
-    nodeClick(row) {
-      console.log(row);
+    nodeClick(row, node) {
       this.form = {...row};
       this.nodeRow = {...row};
+      this.currentClickNode = node;
       this.addStatus = false;
       this.editStatus = false;
     },
@@ -164,29 +177,29 @@
       }
       this.form.parentId = this.nodeRow.id;
       const params = {
-        name:this.form.name,
-        identify:this.form.code,
-        alias:this.form.alias,
-        desc:this.form.remark,
-        seq:this.form.sort
+        name: this.form.name,
+        identify: this.form.code,
+        alias: this.form.alias,
+        desc: this.form.remark,
+        seq: this.form.sort
       }
       addOperationType(params).then(res => {
-        if(res.data.code === 200){
+        if (res.data.code === 200) {
           this.$message.success(res.data.msg);
-          this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+          this.handleRefreshTree('add');
           this.addStatus = false;
         }
       })
     },
 
     // 淇敼鎸夐挳
-    editClickHandler(){
+    editClickHandler() {
       this.addStatus = false;
       this.editStatus = true;
     },
 
     // 淇敼淇濆瓨
-    editSaveClickHandler(){
+    editSaveClickHandler() {
       console.log(this.form);
       if (!this.form.name) {
         this.$message.error('鍚嶇О涓嶈兘涓虹┖');
@@ -200,9 +213,9 @@
         this.$message.error('鍒悕涓嶈兘涓虹┖');
         return
       }
-      if (!this.form.sort) {
+      if (this.form.sort == null || this.form.sort === '' || this.form.sort === undefined) {
         this.$message.error('椤哄簭涓嶈兘涓虹┖');
-        return
+        return;
       }
       if (this.form.name.length > 128) {
         this.$message.error('鍚嶇О闀垮害涓嶈兘瓒呰繃128锛�');
@@ -215,26 +228,27 @@
       if (this.form.alias && this.form.alias.length > 255) {
         this.$message.error('鍒悕闀垮害涓嶈兘瓒呰繃255锛�');
         return
-      };
+      }
+
       const params = {
-        id:this.form.id,
-        name:this.form.name,
-        identify:this.form.code,
-        alias:this.form.alias,
-        desc:this.form.remark,
-        seq:this.form.sort
+        id: this.form.id,
+        name: this.form.name,
+        identify: this.form.code,
+        alias: this.form.alias,
+        desc: this.form.remark,
+        seq: this.form.sort
       }
       updateOperationType(params).then(res => {
-        if(res.data.code === 200){
+        if (res.data.code === 200) {
           this.$message.success(res.data.msg);
-          this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+          this.handleRefreshTree('edit');
           this.editStatus = false;
         }
       })
     },
 
     // 鍒犻櫎
-    delClickHandler(){
+    delClickHandler() {
       this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
@@ -243,7 +257,7 @@
         delOperationType(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;
             this.nodeRow = {};
@@ -262,10 +276,29 @@
       exportFunctionSql({isFunction: false}).then(res => {
         func.downloadFileByBlobHandler(res);
         this.$message.success('瀵煎嚭鎴愬姛');
-      }).catch(err => {
-        this.$message.error(err);
       });
     },
+    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();
+          if (type === 'edit') {
+            this.$refs.tree.setCurrentKey(null);
+          } else {
+            this.$refs.tree.setCurrentNode(this.nodeRow);
+          }
+        } else {
+          this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+        }
+      }
+    }
   }
 }
 </script>
@@ -279,6 +312,7 @@
 
 .btnBox {
   display: flex;
-  justify-content: center;
+  justify-content: left;
+  margin-bottom: 15px;
 }
 </style>

--
Gitblit v1.9.3