| | |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 章节勾选方法 |
| | | 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 |
| | | }) |
| | | } |
| | | }); |