From 5f06c56fd6273a34a502ea730382296cf1c1707f Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 22 九月 2023 14:45:54 +0800
Subject: [PATCH] 单点登录-解密插件js库

---
 Source/UBCS-WEB/src/views/integration/systemInfo.vue |  149 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 124 insertions(+), 25 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/integration/systemInfo.vue b/Source/UBCS-WEB/src/views/integration/systemInfo.vue
index 392d645..0826c26 100644
--- a/Source/UBCS-WEB/src/views/integration/systemInfo.vue
+++ b/Source/UBCS-WEB/src/views/integration/systemInfo.vue
@@ -19,16 +19,59 @@
                   :size="size" clearable style="width:300px;margin-left: 10px;"
                   @clear="handleClear" @keyup.enter.native="handleEnter"></el-input>
       </template>
+      <template #menu="{row,index,size}">
+        <el-button icon="el-icon-menu" size="small" type="text" @click="classifyHandler(row)">鍒嗙被鎺堟潈</el-button>
+
+      </template>
     </avue-crud>
+    <el-dialog :visible.sync="dialogVisible" append-to-body class="avue-dialog avue-dialog--top" title="鍒嗙被鎺堟潈"
+               top="-50px">
+
+      <el-row>
+        <el-col :span="10">
+          <avue-tree ref="tree"
+                     v-model="TreeForm"
+                     :data="TreeData"
+                     :option="TreeOption"
+                     @check-change="checkChange">
+          </avue-tree>
+        </el-col>
+      </el-row>
+      <div slot="footer" class="dialog-footer" style="height: 50px;line-height: 50px">
+        <el-button icon="el-icon-plus" size="small" type="primary" @click="empower">鎺� 鏉�</el-button>
+        <el-button icon="el-icon-close" size="small" type="danger">閲� 缃�</el-button>
+      </div>
+    </el-dialog>
   </basic-container>
 </template>
 <script>
-import {getSysInfoList, sysInfoAdd, sysInfoEdit, sysInfoDel} from '@/api/integration/sysInfo.js'
+import {
+  getSysInfoList,
+  sysInfoAdd,
+  sysInfoEdit,
+  sysInfoDel,
+  sysInfoTree,
+  batchAddSave
+} from '@/api/integration/sysInfo.js'
 
 export default {
   data() {
     return {
+      checkAll: {},
+      ParentList: [],
+      //閬垮厤缂撳瓨
+      reload: Math.random(),
+      TreeLoading: false,
+      TreeOption: {
+        defaultExpandAll: false,
+        multiple: true,
+        addBtn: false,
+        filter: false
+      },
+      TreeData: [],
+      TreeForm: {},
       loading: false,
+      dialogVisible: false,
       page: {
         currentPage: 1,
         pageSize: 10,
@@ -92,29 +135,88 @@
       },
     }
   },
+  created() {
+  },
   methods: {
-    // 鑾峰彇鍒楄〃
-    // async getDataList() {
-    //     this.loading = true
-    //     console.log(this.search)
-    //     const { pageSize, currentPage } = this.page
-    //     let param = { size: pageSize, current: currentPage }
-    //     this.search = Object.keys(this.search)
-    //         .filter((key) => this.search[key] !== null && this.search[key] !== undefined && this.search[key] !== "")
-    //         .reduce((acc, key) => ({ ...acc, [key]: this.search[key] }), {});
-    //     const response = await getSysInfoList(pageSize,currentPage,{...param})
-    //     if (response.status === 200) {
-    //         console.log(response)
-    //         this.loading = false
-    //         const data = response.data.data
-    //         this.data = data.records
-    //         this.page.total = data.total
-    //     } else this.loading = false
-    // },
+    empower() {
+      batchAddSave(this.checkAll.oid, this.checkAll.id, this.ParentList).then(res => {
+        console.log(res)
+      })
+    },
+    //鍒嗙被鎺堟潈澶氶�夊洖璋�
+    checkChange(row, checked) {
+      if (checked) {
+        if (!row.parentId && row.children) {
+          const parentRecord = {
+            oid: row.oid,
+            classifyId: row.attributes.classifyId,
+            classifyOid: row.attributes.classifyOid,
+            classParentOid: row.parentId,
+          };
+          this.ParentList.push(parentRecord);
+          // 濡傛灉row鐨刢hildren涓嶄负绌猴紝缁х画寰幆children涓殑姣忎釜瀵硅薄
+          if (row.children && row.children.length > 0) {
+            for (let child of row.children) {
+              const childRecord = {
+                oid: child.oid,
+                classifyId: child.attributes.classifyId,
+                classifyOid: child.attributes.classifyOid,
+                classParentOid: child.parentId,
+              };
+              this.ParentList.push(childRecord);
+              // 濡傛灉瀛愬璞$殑children涓嶄负绌猴紝缁х画寰幆鑾峰彇鏁版嵁
+              if (child.children && child.children.length > 0) {
+                for (let subChild of child.children) {
+                  const subRecord = {
+                    oid: subChild.oid,
+                    classifyId: subChild.attributes.classifyId,
+                    classifyOid: subChild.attributes.classifyOid,
+                    classParentOid: subChild.parentId,
+                  };
+                  this.ParentList.push(subRecord);
+                }
+              }
+            }
+          }
+          console.log(this.ParentList);
+        }
+      } else {
+        this.ParentList = this.ParentList.filter(res => res.classifyId !== row.classifyId);
+        console.log(this.ParentList);
+      }
+    },
+    //鍒嗙被鎺堟潈
+    classifyHandler(row) {
+      this.loading = true;
+      this.checkAll = row
+      sysInfoTree({systemOid: row.oid, systemId: row.id}).then(res => {
+        this.TreeData = res.data;
+        this.ModifyProperties(this.TreeData, 'text', 'label');
+        // 鏍规嵁 this.TreeData 鐨勯暱搴﹁绠楀欢杩熸椂闂�
+        const delayTime = this.TreeData.length * 1;
+        setTimeout(() => {
+          this.loading = false;
+          this.reload = Math.random()
+          this.dialogVisible = true;
+        }, delayTime);
+      });
+    },
+    //瀹氫箟涓�涓慨鏀规暟鎹睘鎬у悕鐨勬柟娉�
+    ModifyProperties(obj, oldName, newName) {
+      for (let key in obj) {
+        if (key === oldName) {
+          obj[newName] = obj[key];
+          delete obj[key];
+        }
+        if (typeof obj[key] === 'object') {
+          this.ModifyProperties(obj[key], oldName, newName);
+        }
+      }
+    },
     async getDataList() {
       this.loading = true;
       console.log(this.search);
-      const { pageSize, currentPage } = this.page;
+      const {pageSize, currentPage} = this.page;
       const conditions = {};
       if (Object.keys(this.search).length > 0) {
         for (const key in this.search) {
@@ -216,9 +318,7 @@
     },
     // enter鎼滅储
     handleEnter() {
-      if (this.search[this.selectValue] === '') return
-      else this.getDataList()
-
+      this.getDataList()
     },
     // 杈撳叆妗嗘竻绌�
     handleClear() {
@@ -241,13 +341,12 @@
     },
     // 澶氶��
     selectionChange(list) {
-      console.log(list)
       let newData = list.map(item => {
         const {oid} = item
         return oid
       })
       this.delIds = {oids: newData.toString()}
-      console.log(this.delIds)
+      // console.log(this.delIds)
     },
   }
 }

--
Gitblit v1.9.3