From c2c0c9370a72d253c624ff11d630d27c9cd0040d Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 09 十月 2023 15:34:25 +0800
Subject: [PATCH] 主数据排序改为按id排序

---
 Source/UBCS-WEB/src/views/integration/systemInfo.vue |  102 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 63 insertions(+), 39 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/integration/systemInfo.vue b/Source/UBCS-WEB/src/views/integration/systemInfo.vue
index 2cad431..aea7794 100644
--- a/Source/UBCS-WEB/src/views/integration/systemInfo.vue
+++ b/Source/UBCS-WEB/src/views/integration/systemInfo.vue
@@ -33,8 +33,6 @@
                      v-model="TreeForm"
                      :data="TreeData"
                      :option="TreeOption"
-                     node-key="id"
-                     :default-checked-keys="[5]"
                      @check-change="checkChange">
           </avue-tree>
         </el-col>
@@ -144,15 +142,17 @@
   methods: {
     empower() {
       batchAddSave(this.checkAll.oid, this.checkAll.id, this.ParentList).then(res => {
-        console.log(res)
-        if(res.data.data.code === 200){
-          this.$message.success(res.data.data.msg)
+        // console.log(res.data)
+        if(res.data.code === 200){
+          this.$message.success(res.data.msg)
           this.dialogVisible=false;
         }
       })
     },
     //鍒嗙被鎺堟潈澶氶�夊洖璋�
     checkChange(row, checked) {
+      // this.ParentList=[]
+      // console.log('row',row)
       if (checked) {
         if (!row.parentId) {
           const parentRecord = {
@@ -220,50 +220,75 @@
           }
         }
       }
-      console.log(this.ParentList);
+      console.log('this.ParentList',this.ParentList);
     },
     //鍒嗙被鎺堟潈
     classifyHandler(row) {
       this.loading = true;
       this.checkAll = row
       sysInfoTree({systemOid: row.oid, systemId: row.id}).then(res => {
-        this.TreeData = res.data;
-        var List=[]
-        this.TreeData.forEach((item,index)=>{
-          const parentRecord = {
-            label: item.text,
-            children:  [], // 鍒濆鍖朿hildren涓虹┖鏁扮粍
+        let List = [];
+        let value = 0;
+        let NumberList= [];
+        function traverse(obj, parent) {
+          //閲嶆柊鏋勫缓涓�娆¢�変腑褰撳墠row鐨勬暟鎹�
+          const record = {
+            label: obj.text,
+            oid: obj.oid,
+            attributes:{
+              classifyId: obj.attributes.classifyId,
+              classifyOid: obj.attributes.classifyOid,
+              selected:obj.attributes.selected
+            },
+            classParentOid: obj.parentId,
+            value: value,
+            children: []
           };
-          List.push(parentRecord);
-          // 濡傛灉item鐨刢hildren涓嶄负绌� 缁х画寰幆children涓殑姣忎釜瀵硅薄
-          if (item.children && item.children.length > 0) {
-            for (let child of item.children) {
-              const childRecord = {
-                label: child.text, // 浣跨敤child鐨則ext灞炴�т綔涓簂abel
-                children:  [], // 鍒濆鍖朿hildren涓虹┖鏁扮粍
-              };
-              parentRecord.children.push(childRecord); // 灏哻hildRecord娣诲姞鍒皃arentRecord鐨刢hildren鏁扮粍涓�
-              // 濡傛灉瀛愬璞$殑children涓嶄负绌� 缁х画寰幆鑾峰彇鏁版嵁
-              if (child.children && child.children.length > 0) {
-                for (let subChild of child.children) {
-                  const subRecord = {
-                    label: subChild.text, // 浣跨敤subChild鐨則ext灞炴�т綔涓簂abel
-                    children:  [], // 鍒濆鍖朿hildren涓虹┖鏁扮粍
-                  };
-                  childRecord.children.push(subRecord); // 灏唖ubRecord娣诲姞鍒癱hildRecord鐨刢hildren鏁扮粍涓�
-                }
-              }
+          //褰撳墠宸查�夋嫨鏁版嵁鍥炲~
+          if (record.attributes.selected == 'true') {
+            NumberList.push(record.value);
+          }
+          if (parent) {
+            const stingChild = parent.children.find(child => child.label === record.label);
+            if (stingChild) {
+              record.value = stingChild.value; // 浣跨敤宸插瓨鍦ㄧ殑瀛愯妭鐐圭殑value鍊�
+            } else {
+              parent.children.push(record);
+              value++;
+            }
+          } else {
+            const stingRecord = List.find(item => item.label === record.label);
+            if (stingRecord) {
+              record.value = stingRecord.value; // 浣跨敤宸插瓨鍦ㄧ殑椤跺眰鑺傜偣鐨剉alue鍊�
+            } else {
+              List.push(record);
+              value++;
             }
           }
-        })
-        console.log('list',List)
-        this.ModifyProperties(this.TreeData, 'text', 'label');
-        // 鏍规嵁 this.TreeData 鐨勯暱搴﹁绠楀欢杩熸椂闂�
+          if (obj.children && obj.children.length > 0) {
+            for (let child of obj.children) {
+              traverse(child, record);
+            }
+          }
+        }
+        for (let item of res.data) {
+          traverse(item, null);
+        }
+        // console.log('list', List);
+        this.TreeData = List;
+        // this.ModifyProperties(this.TreeData, 'text', 'label');
+        // 鏍规嵁this.TreeData鐨勯暱搴﹁绠楀欢杩熸椂闂�
         const delayTime = this.TreeData.length * 1;
         setTimeout(() => {
           this.loading = false;
-          this.reload = Math.random()
+          this.reload = Math.random();
           this.dialogVisible = true;
+
+          this.$nextTick(() => {
+            if (this.$refs.tree) {
+              this.$refs.tree.setCheckedKeys(NumberList);
+            }
+          });
         }, delayTime);
       });
     },
@@ -281,7 +306,6 @@
     },
     async getDataList() {
       this.loading = true;
-      console.log(this.search);
       const {pageSize, currentPage} = this.page;
       const conditions = {};
       if (Object.keys(this.search).length > 0) {
@@ -293,7 +317,7 @@
       }
       const response = await getSysInfoList(pageSize, currentPage, conditions);
       if (response.status === 200) {
-        console.log(response);
+        // console.log(response);
         this.loading = false;
         const data = response.data.data;
         this.data = data.records;
@@ -362,7 +386,7 @@
       }).then(async () => {
         const response = await sysInfoDel(param)
         if (response.status === 200) {
-          console.log(response)
+          // console.log(response)
           this.$message({
             type: 'success',
             message: '鍒犻櫎鎴愬姛!'

--
Gitblit v1.9.3