From b125d3ea74d61fb8e4d7238c83906aeea52c6b4c Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期二, 12 三月 2024 14:39:55 +0800 Subject: [PATCH] 更新代码 --- pages/bookServices/detail/components/tree/index.js | 143 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 134 insertions(+), 9 deletions(-) diff --git a/pages/bookServices/detail/components/tree/index.js b/pages/bookServices/detail/components/tree/index.js index b0107f9..c7c1b33 100644 --- a/pages/bookServices/detail/components/tree/index.js +++ b/pages/bookServices/detail/components/tree/index.js @@ -1,3 +1,4 @@ + import Message from 'tdesign-miniprogram/message/message'; const app = getApp() Component({ @@ -5,6 +6,10 @@ treeList: { type: Array, value: [] + }, + bookInfo: { + type: Object, + value: {} }, buyIds: { type: Array, @@ -17,6 +22,14 @@ applyState: { type: String, value: '' + }, + openTeachids: { + type: Array, + value: '' + }, + openLearnids: { + type: Array, + value: "" } }, data: { @@ -43,7 +56,6 @@ } }, downloadTeach(e) { - console.log('鐐瑰嚮浜�', e); const value = e.currentTarget.dataset.value var myEventDetail = { value, @@ -53,15 +65,128 @@ composed: true } // 瑙﹀彂浜嬩欢鐨勯�夐」 this.triggerEvent('downloadTeach', myEventDetail, myEventOption) + }, // 鍒ゆ柇璧勬簮鏄惁璐拱 -resourceIsBuy (data) { - if (data.saleMethod && data.saleMethod.length) { - const isSHow = buyIdList.value.some((item) => item == data.saleMethod[0].Id) - return !isSHow - } else { - return false - } -} + resourceIsBuy(data) { + if (data.saleMethod && data.saleMethod.length) { + const isSHow = buyIdList.value.some((item) => item == data.saleMethod[0].Id) + return !isSHow + } else { + return false + } + }, + // 璺宠浆闊宠棰戞挱鏀惧櫒 + goPlayer(e) { + const item = e.currentTarget.dataset.item + const parent = e.currentTarget.dataset.parent + // "pages/resourceDetails/myAudio/index", + // "pages/resourceDetails/myVideo/index", + // "pages/resourceDetails/document/index", + let url + if (item.selectType == 'video') { + url = '/pages/resourceDetails/myVideo/index' + } else if (item.selectType == 'audio') { + url = '/pages/resourceDetails/myAudio/index' + } else { + url = '/pages/resourceDetails/document/index' + } + wx.navigateTo({ + url: `${url}?productLinkPath=${item.productLinkPath}&parentProductLinkPath=${parent.productLinkPath}&parentName=${parent.name}&activeId=${item.id}&bookId=${this.properties.bookInfo.id}&bookName=${this.properties.bookInfo.name}&cmsId=${this.properties.bookInfo.rootCmsItemId}`, + }) + }, + // 鎷垮埌鎵�鏈夐」 + getAllChildren(id) { + let result = []; + function findChildren(item) { + if (item.id === id) { + if (item.children && item.children.length > 0) { + item.children.forEach(child => { + findChildren(child); + }); + } + } else { + if (item.children && item.children.length > 0) { + item.children.forEach(child => { + findChildren(child); + }); + } + } + if (item.children && item.children.length > 0) { + result.push(...item.children); + } + } + this.properties.treeList.forEach(item => { + findChildren(item); + }); + return result; + }, + // 鎷垮埌褰撳墠椤瑰瓙椤� + flattenTree(tree) { + let result = []; + function flatten(node) { + result.push(node); + if (node.children && node.children.length > 0) { + node.children.forEach(child => { + flatten(child); + }); + } + } + tree.forEach(node => { + flatten(node); + }); + return result + }, + findAndUpdateItemById(tree, id) { + function findAndUpdate(node) { + if (node.id === id) { + node.check = true; // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true + return true; // 杩斿洖 true 琛ㄧず鎵惧埌浜嗙洰鏍囬」 + } + if (node.children && node.children.length > 0) { + for (let child of node.children) { + if (findAndUpdate(child)) { + return true; // 濡傛灉鍦ㄥ瓙鑺傜偣涓壘鍒颁簡鐩爣椤癸紝鍒欑洿鎺ヨ繑鍥� true + } + } + } + return false; // 琛ㄧず鏈壘鍒扮洰鏍囬」 + } + + for (let node of tree) { + if (findAndUpdate(node)) { + break; // 濡傛灉鍦ㄩ《灞傝妭鐐逛腑鎵惧埌浜嗙洰鏍囬」锛岀洿鎺ラ��鍑哄惊鐜� + } + } + }, + // 鍙樹负true + findAndUpdateItemsByIds(tree, ids) { + function findAndUpdate(node) { + if (ids.includes(node.id)) { + node.checked = true; // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true + } + if (node.children && node.children.length > 0) { + for (let child of node.children) { + findAndUpdate(child); // 閫掑綊澶勭悊瀛愯妭鐐� + } + } + } + + for (let node of tree) { + findAndUpdate(node); // 瀵规瘡涓《灞傝妭鐐规墽琛屾煡鎵惧拰鏇存柊鎿嶄綔 + } + return tree; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍 + }, + // 绔犺妭鍕鹃�� + checkResourceTitle(e) { + const item = e.currentTarget.dataset.item + let list = this.flattenTree([item]) + let ids = [] + list.forEach(item => { + ids.push(item.id) + }) + const tab = this.findAndUpdateItemsByIds([item], ids) + console.log(ids, tab); + } } }) \ No newline at end of file -- Gitblit v1.9.1