From bd3c5bd24f0d5c5b8669bb034a75d46d7a10599d Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期三, 10 四月 2024 11:15:39 +0800 Subject: [PATCH] 资源购买页tree组件勾选联通上下级功能完善 --- packageBookService/pages/bookServices/detail/buyResource/index.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 54 insertions(+), 0 deletions(-) diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js index a6385ef..34db152 100644 --- a/packageBookService/pages/bookServices/detail/buyResource/index.js +++ b/packageBookService/pages/bookServices/detail/buyResource/index.js @@ -455,4 +455,58 @@ }); } }, + + // 绔犺妭鍕鹃�夋柟娉� + findAndUpdateItemsByIds(tree, ids, state) { + function findAndUpdate(node) { + if (ids.includes(node.id)) { + // console.log(node, 'node'); + node.checked = state; // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true + } + if (node.children && node.children.length > 0) { + for (let child of node.children) { + findAndUpdate(child); // 閫掑綊澶勭悊瀛愯妭鐐� + } + } + } + for (let node of tree) { + findAndUpdate(node); // 瀵规瘡涓《灞傝妭鐐规墽琛屾煡鎵惧拰鏇存柊鎿嶄綔 + } + // console.log(tree, 'tree345'); + return tree; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍 + }, + // 鍗曚釜鍕鹃�夋柟娉� + checkResoucrceInfo(tree, id) { + function findAndUpdate(node) { + if (node.sysType == "CmsFolder" && node.children.length > 0) { + for (let index = 0; index < node.children.length; index++) { + const element = node.children[index]; + findAndUpdate(element); + } + } else if (id == node.id && node.sysType == "CmsItem") { + node.checked = !node.checked; // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true + } + } + for (let node of tree) { + findAndUpdate(node); // 瀵规瘡涓《灞傝妭鐐规墽琛屾煡鎵惧拰鏇存柊鎿嶄綔 + } + return tree; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍 + }, + // 绔犺妭鍕鹃�変簨浠� + changeListChecked(e) { + const ids = e.detail.ids + const state = e.detail.flag + const updated = this.findAndUpdateItemsByIds(this.data.learn, ids, state) + this.setData({ + learn: updated + }) + }, + // 鍗曚釜鍕鹃�変簨浠� + changeResourceChecked(e) { + const id = e.detail.id + const updated = this.checkResoucrceInfo(this.data.learn, id) + this.setData({ + learn: updated + }) + } }); \ No newline at end of file -- Gitblit v1.9.1