From 820dde03b508f1ca6436cacf517ff197e1875f4f Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 10 十月 2023 16:05:31 +0800
Subject: [PATCH] 集成系统信息管理-分类授权-重置、展开所有节点多选父节点增删
---
Source/UBCS-WEB/src/views/integration/systemInfo.vue | 126 ++++++++++++++++++++----------------------
1 files changed, 60 insertions(+), 66 deletions(-)
diff --git a/Source/UBCS-WEB/src/views/integration/systemInfo.vue b/Source/UBCS-WEB/src/views/integration/systemInfo.vue
index aea7794..f7e2560 100644
--- a/Source/UBCS-WEB/src/views/integration/systemInfo.vue
+++ b/Source/UBCS-WEB/src/views/integration/systemInfo.vue
@@ -40,7 +40,7 @@
<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>
+ <el-button icon="el-icon-close" size="small" type="danger" @click="resetting">閲� 缃�</el-button>
</div>
</el-dialog>
</basic-container>
@@ -140,6 +140,11 @@
created() {
},
methods: {
+ //閲嶇疆
+ resetting(){
+ this.$refs.tree.setCheckedKeys([])
+ // console.log(this.ParentList)
+ },
empower() {
batchAddSave(this.checkAll.oid, this.checkAll.id, this.ParentList).then(res => {
// console.log(res.data)
@@ -151,76 +156,65 @@
},
//鍒嗙被鎺堟潈澶氶�夊洖璋�
checkChange(row, checked) {
- // this.ParentList=[]
- // console.log('row',row)
if (checked) {
- if (!row.parentId) {
- 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);
- }
- }
- }
- }
- }
+ this.addAllChildren(row.children);
+ this.addToParentList(row);
+ // 鍕鹃�夎鏃讹紝灏嗗綋鍓嶈浠ュ強鍏舵墍鏈夊瓙鑺傜偣娣诲姞鍒癙arentList涓�
} else {
- // 鍙栨秷鍕鹃�夌殑鑺傜偣鏄埗鑺傜偣
- if (!row.parentId) {
- // 鎵惧埌鐖惰妭鐐瑰湪ParentList涓殑绱㈠紩
- const parentIndex = this.ParentList.findIndex(item => item.oid === row.oid);
- if (parentIndex !== -1) {
- const parentOid = this.ParentList[parentIndex].classifyOid;
+ this.removeAllChildren(row.children);
+ this.removeFromParentList(row);
+ // 鍙栨秷鍕鹃�夎鏃讹紝灏嗗綋鍓嶈浠ュ強鍏舵墍鏈夊瓙鑺傜偣浠嶱arentList涓Щ闄�
+ }
- // 鏌ユ壘鎵�鏈夐渶瑕佸垹闄ょ殑瀛愯妭鐐圭殑绱㈠紩
- const childIndexes = this.ParentList.reduce((indexes, item, index) => {
- if (item.classParentOid === parentOid && item.classifyOid !== parentOid) {
- indexes.push(index);
- }
- return indexes;
- }, []);
-
- // 浠庡悗寰�鍓嶅垹闄ゅ瓙鑺傜偣鐨勬暟鎹紝淇濊瘉绱㈠紩鐨勬纭��
- for (let i = childIndexes.length - 1; i >= 0; i--) {
- this.ParentList.splice(childIndexes[i], 1);
- }
-
- // 鍒犻櫎鐖惰妭鐐圭殑鏁版嵁
- this.ParentList.splice(parentIndex, 1);
- }
- } else {
- // 鍙栨秷鍕鹃�夌殑鑺傜偣鏄瓙鑺傜偣
- const childIndex = this.ParentList.findIndex(item => item.oid === row.oid);
- if (childIndex !== -1) {
- // 鍒犻櫎瀛愯妭鐐圭殑鏁版嵁
- this.ParentList.splice(childIndex, 1);
- }
+ // console.table(this.ParentList);
+ },
+ addAllChildren(children) {
+ for (let child of children) {
+ this.addToParentList(child);
+ // 灏嗗瓙鑺傜偣娣诲姞鍒� ParentList 涓�
+ if (child.children && child.children.length > 0) {
+ this.addAllChildren(child.children);
+ // 閫掑綊璋冪敤缁х画娣诲姞瀛愯妭鐐圭殑瀛愯妭鐐�
}
}
- console.log('this.ParentList',this.ParentList);
+ },
+ removeAllChildren(children) {
+ for (let child of children) {
+ this.removeFromParentList(child);
+ // 灏嗗瓙鑺傜偣浠� ParentList 涓Щ闄�
+ if (child.children && child.children.length > 0) {
+ this.removeAllChildren(child.children);
+ // 閫掑綊璋冪敤缁х画绉婚櫎瀛愯妭鐐圭殑瀛愯妭鐐�
+ }
+ }
+ },
+ addToParentList(item) {
+ const classifyOid = item.attributes.classifyOid;
+ if (!this.isClassifyOidExists(classifyOid)) {
+ const record = {
+ oid: item.oid,
+ classifyId: item.attributes.classifyId,
+ classifyOid: classifyOid,
+ };
+ this.ParentList.push(record);
+ // 灏嗚妭鐐规坊鍔犲埌ParentList涓�
+ }
+ },
+ removeFromParentList(item) {
+ const classifyOid = item.attributes.classifyOid;
+ if (this.isClassifyOidExists(classifyOid)) {
+ const index = this.findIndexByClassifyOid(classifyOid);
+ if (index !== -1) {
+ this.ParentList.splice(index, 1);
+ }
+ // 灏嗚妭鐐逛粠ParentList涓Щ闄�
+ }
+ },
+ isClassifyOidExists(classifyOid) {
+ return this.ParentList.some(item => item.classifyOid === classifyOid);
+ },
+ findIndexByClassifyOid(classifyOid) {
+ return this.ParentList.findIndex(item => item.classifyOid === classifyOid);
},
//鍒嗙被鎺堟潈
classifyHandler(row) {
--
Gitblit v1.9.3