From 8bc25357d5742f07710baa7a6f1d6ac4023da3ac Mon Sep 17 00:00:00 2001
From: wangting <wangting@vci-tech.com>
Date: 星期三, 25 十二月 2024 12:00:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-ui/src/views/systemModel/operateType/index.vue |  270 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 197 insertions(+), 73 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 281ec3b..7f72b04 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,10 +2,11 @@
   <el-container>
     <el-aside>
       <basic-container>
-        <div style="max-height: calc(100vh - 170px);overflow: auto">
-          <avue-tree 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">
+           <span>
               <i class="el-icon-s-promotion"></i>
                 {{ (node || {}).label }}
             </span>
@@ -17,40 +18,50 @@
 
     <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 v-model="form.sort" placeholder="璇疯緭鍏ョ紪鍙�"></el-input>
-          </el-form-item>
-          <el-form-item label="鎻忚堪锛�">
-            <el-input v-model="form.remark" placeholder="璇疯緭鍏ユ弿杩�"></el-input>
-          </el-form-item>
-        </el-form>
-        <div class="btnBox">
-          <el-button v-if="!addStatus" :disabled="mangeShowBtn ? false : !childTypeBtn" icon="el-icon-plus" plain
+        <div v-if="nodeRow.childType === 0 || nodeRow.childType === -1" class="btnBox">
+          <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 :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary"
-                     @click="addClickHandler">淇敼
+          <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 :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger"
-                     @click="addClickHandler">鍒犻櫎
+          <el-button v-if="editStatus" icon="el-icon-check" plain size="small"
+                     type="success" @click="editSaveClickHandler">淇濆瓨
           </el-button>
-          <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">瀵煎叆sql
+          <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 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="椤哄簭锛�">
+            <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>
@@ -58,14 +69,19 @@
 
 <script>
 //绠$悊鍔熻兘妯″潡
-import {getSysModelTreeMenuByPID, addModel} from "@/api/systemModel/mangeModel/api"
+import {exportFunctionSql, getSysModelTreeMenuByPID} from "@/api/systemModel/mangeModel/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,
       addStatus: false,
       nodeRow: {},
+      currentClickNode: {},
       form: {},
       treeData: [],
       treeOption: {
@@ -82,7 +98,7 @@
         treeLoad: (node, resolve) => {
           const params = {
             parentId: node.level === 0 ? "operateNode" : node.data.id,
-            modeType: node.level === 0 ? "firstNode" : node.data.modeType,
+            modeType: node.level === 0 ? 'firstNode' : "",
           }
           getSysModelTreeMenuByPID(params).then(res => {
             resolve(res.data.data.map(item => {
@@ -100,76 +116,183 @@
   },
   created() {
   },
-  computed: {
-    /**
-     * childType
-     * 涓�-1   鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷
-     * 涓嶄负-1 闅愯棌 鍒犻櫎闈炵郴缁熸ā鍧� 鍒犻櫎涓氬姟妯″潡
-     * 涓�1鏃� 绂佺敤鎿嶄綔绫诲瀷銆佸鍏ャ�佸鍑�
-     * 涓�2鏃� 绂佺敤澧炲姞 瀵煎叆 瀵煎嚭
-     * mangeShowBtn 涓� true 璇存槑鏄《灞傝妭鐐� 鍏ㄩ儴鎸夐挳灞曠ず 绂佺敤淇敼 鍒犻櫎 澧炲姞鎿嶄綔绫诲瀷
-     * @returns {Number}
-     */
-    mangeShowBtn() {
-      return this.form.childType === -1;
-    },
-    childTypeBtn() {
-      return this.form.childType === 1;
-    }
-  },
+  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;
     },
+    // 娓呯┖琛ㄥ崟缁戝畾鍊�
+    resetFormValue() {
+      this.form = {};
+      this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+    },
+
 
     // 鏂板鎸夐挳
     addClickHandler() {
-      for (const key in this.form) {
-        if (this.form.hasOwnProperty(key)) {
-          this.form[key] = null;
-        }
-      }
+      this.form = {};
       this.addStatus = true;
+      this.editStatus = false;
     },
 
     // 淇濆瓨鎸夐挳
     addSaveClickHandler() {
-      console.log(this.form)
       if (!this.form.name) {
-        this.$message.error('妯″潡鍚嶄笉鑳戒负绌�');
+        this.$message.error('鍚嶇О涓嶈兘涓虹┖');
+        return
+      }
+      if (!this.form.code) {
+        this.$message.error('鏍囪瘑涓嶈兘涓虹┖');
+        return
+      }
+      if (!this.form.alias) {
+        this.$message.error('鍒悕涓嶈兘涓虹┖');
+        return
+      }
+      if (!this.form.sort) {
+        this.$message.error('椤哄簭涓嶈兘涓虹┖');
         return
       }
       if (this.form.name.length > 128) {
-        this.$message.error('妯″潡鍚嶉暱搴﹁秴杩�128锛�');
+        this.$message.error('鍚嶇О闀垮害涓嶈兘瓒呰繃128锛�');
         return
       }
       if (this.form.remark && this.form.remark.length > 255) {
-        this.$message.error('鎻忚堪闀垮害瓒呰繃255锛�');
+        this.$message.error('鎻忚堪闀垮害涓嶈兘瓒呰繃255锛�');
         return
       }
-      if (this.form.resourceDotNet && this.form.resourceDotNet.length > 255) {
-        this.$message.error('.NET鏍囪瘑闀垮害涓嶈兘255锛�');
+      if (this.form.alias && this.form.alias.length > 255) {
+        this.$message.error('鍒悕闀垮害涓嶈兘瓒呰繃255锛�');
         return
       }
-      if (this.form.pathc && this.form.pathc.length > 255) {
-        this.$message.error('C/S鏍囪瘑闀垮害涓嶈兘255锛�');
-        return
-      }
-      if (this.form.resourceMobile && this.form.resourceMobile.length > 255) {
-        this.$message.error('Mobile鏍囪瘑闀垮害涓嶈兘255锛�');
-        return
-      }
-      console.log(this.nodeRow);
       this.form.parentId = this.nodeRow.id;
-      this.form.modeType = this.nodeRow.modeType;
-      addModel(this.form).then(res => {
-        console.log(res)
-        this.addStatus = false;
+      const params = {
+        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) {
+          this.$message.success(res.data.msg);
+          this.handleRefreshTree('add');
+          this.addStatus = false;
+        }
       })
+    },
+
+    // 淇敼鎸夐挳
+    editClickHandler() {
+      this.addStatus = false;
+      this.editStatus = true;
+    },
+
+    // 淇敼淇濆瓨
+    editSaveClickHandler() {
+      console.log(this.form);
+      if (!this.form.name) {
+        this.$message.error('鍚嶇О涓嶈兘涓虹┖');
+        return
+      }
+      if (!this.form.code) {
+        this.$message.error('鏍囪瘑涓嶈兘涓虹┖');
+        return
+      }
+      if (!this.form.alias) {
+        this.$message.error('鍒悕涓嶈兘涓虹┖');
+        return
+      }
+      if (this.form.sort == null || this.form.sort === '' || this.form.sort === undefined) {
+        this.$message.error('椤哄簭涓嶈兘涓虹┖');
+        return;
+      }
+      if (this.form.name.length > 128) {
+        this.$message.error('鍚嶇О闀垮害涓嶈兘瓒呰繃128锛�');
+        return
+      }
+      if (this.form.remark && this.form.remark.length > 255) {
+        this.$message.error('鎻忚堪闀垮害涓嶈兘瓒呰繃255锛�');
+        return
+      }
+      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
+      }
+      updateOperationType(params).then(res => {
+        if (res.data.code === 200) {
+          this.$message.success(res.data.msg);
+          this.handleRefreshTree('edit');
+          this.editStatus = false;
+        }
+      })
+    },
+
+    // 鍒犻櫎
+    delClickHandler() {
+      this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        delOperationType(this.form).then(res => {
+          if (res.data.code === 200) {
+            this.$message.success(res.data.msg);
+            this.handleRefreshTree('del')
+            this.addStatus = false;
+            this.editStatus = false;
+            this.nodeRow = {};
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '宸插彇娑堝垹闄�'
+        });
+      });
+    },
+
+    // 瀵煎嚭sql
+    sqlClickExportClick() {
+      exportFunctionSql({isFunction: false}).then(res => {
+        func.downloadFileByBlobHandler(res);
+        this.$message.success('瀵煎嚭鎴愬姛');
+      });
+    },
+    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(); // 鍒锋柊宸︿晶鏍�
+        }
+      }
     }
   }
 }
@@ -184,6 +307,7 @@
 
 .btnBox {
   display: flex;
-  justify-content: center;
+  justify-content: left;
+  margin-bottom: 15px;
 }
 </style>

--
Gitblit v1.9.3