From 6c1d86f4e4c43024a9214752cfeb5f315744f4b2 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期日, 08 十月 2023 10:44:23 +0800
Subject: [PATCH] 分类授权-构建已选择数据多选回填
---
Source/UBCS-WEB/src/views/integration/systemInfo.vue | 88 ++++++++++++++++++++++++++++----------------
1 files changed, 56 insertions(+), 32 deletions(-)
diff --git a/Source/UBCS-WEB/src/views/integration/systemInfo.vue b/Source/UBCS-WEB/src/views/integration/systemInfo.vue
index 2cad431..215d713 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>
@@ -153,6 +151,7 @@
},
//鍒嗙被鎺堟潈澶氶�夊洖璋�
checkChange(row, checked) {
+ console.log('row',row)
if (checked) {
if (!row.parentId) {
const parentRecord = {
@@ -227,43 +226,68 @@
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) {
+ NumberList.push(record.value);
+ }
+ if (parent) {
+ const existingChild = parent.children.find(child => child.label === record.label);
+ if (existingChild) {
+ record.value = existingChild.value; // 浣跨敤宸插瓨鍦ㄧ殑瀛愯妭鐐圭殑value鍊�
+ } else {
+ parent.children.push(record);
+ value++;
+ }
+ } else {
+ const existingRecord = List.find(item => item.label === record.label);
+ if (existingRecord) {
+ record.value = existingRecord.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);
});
},
--
Gitblit v1.9.3