From dc934dfd63fecff84d0bf996418e041b9bd4ea59 Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期二, 30 四月 2024 18:16:13 +0800 Subject: [PATCH] bug修改 --- packageBookService/pages/bookServices/detail/components/tree/index.js | 295 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 232 insertions(+), 63 deletions(-) diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.js b/packageBookService/pages/bookServices/detail/components/tree/index.js index 21163eb..f8e88e0 100644 --- a/packageBookService/pages/bookServices/detail/components/tree/index.js +++ b/packageBookService/pages/bookServices/detail/components/tree/index.js @@ -4,10 +4,12 @@ } from "../../../../../../assets/js/login"; const app = getApp(); Component({ - // checked: false, - properties: { treeList: { + type: Array, + value: [], + }, + learnList: { type: Array, value: [], }, @@ -46,6 +48,9 @@ checkAllState: { type: Boolean, }, + deadline: { + type: String, + }, }, data: { sonPurchaseSaleMethodId: "", @@ -56,6 +61,8 @@ selectAll: [], shoppingCart: true, stop: false, + cart: true, + canExecute: true }, ready() {}, @@ -63,10 +70,6 @@ this.setData({ sonPurchaseSaleMethodId: [], }); - console.log( - this.data.sonPurchaseSaleMethodId, - "sonPurchaseSaleMethodId789" - ); }, observers: { treeList: function (newValue) { @@ -133,18 +136,13 @@ goPlayer(e) { // 妫�鏌ョ櫥褰曠姸鎬� const token = wx.getStorageSync(app.config.tokenKey); - if (!token) { - loginInfo(app, (data) => { - // 濡傛灉涓嶆槸绗竴娆$櫥褰曪紝浼氭墽琛屽洖璋� - if (data) { - // 鐧诲綍鎴愬姛锛岃嚜鍔ㄨ褰晅oken鍜岀敤鎴蜂俊鎭紝骞惰繑鍥瀟rue - } else { - // 鍑虹幇閿欒锛岃繑鍥瀎alse - } - }); - } else { + if (token) { const item = e.currentTarget.dataset.item; const parent = e.currentTarget.dataset.parent; + const parentProductLinkPath = parent ? + parent.productLinkPath : + wx.getStorageSync("teachResourcesPath"); + const parentName = parent ? parent.name : "鏁欏璧勬簮"; let url; if (this.properties.isShowCheck && this.resourceIsBuy(item)) { return false; @@ -166,22 +164,67 @@ return wx.showToast({ icon: "error", title: item.saleMethod[0].Price > 0 ? - "璇峰厛璐拱璇ヨ祫婧�" : - "璇峰厛鐐瑰嚮棰嗗彇鏌ョ湅鎸夐挳", + "璇峰厛璐拱璇ヨ祫婧�" : "璇峰厛鐐瑰嚮棰嗗彇鏌ョ湅鎸夐挳", }); } + if ( + item.saleMethod.length == 0 && + item.sysType == "CmsItem" && + this.properties.tab == "jsek_cloudLearning" + ) { + return wx.showToast({ + icon: "error", + title: "鏆傛湭寮�濮嬮攢鍞紝璇疯仈绯荤鐞嗗憳", + }); + } + if (this.properties.tab == "jsek_teachingResources" && item.fileMap) { + let file = item.fileMap[item.file] ? item.fileMap[item.file] : item.fileMap[item.freeFile] + debugger + if (file && file.protectType !== "Public") { + return wx.showToast({ + icon: "error", + title: "璧勬簮涓嶅彲鐢紝璇疯仈绯荤鐞嗗憳", + }); + } + } else { + return wx.showToast({ + icon: 'error', + title: '鏆傛棤璧勬簮', + }) + } 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}`, + url: `${url}?productLinkPath=${item.productLinkPath}&parentProductLinkPath=${parentProductLinkPath}&parentName=${parentName}&activeId=${item.id}&bookId=${this.properties.bookInfo.id}&bookName=${this.properties.bookInfo.name}&cmsId=${this.properties.bookInfo.rootCmsItemId}&formPath=${this.properties.tab}&applyState=${this.properties.applyState}&deadline=${this.properties.deadline}`, }); - if (item.selectType == "document" || item.selectType == "pdf") { - const fileLink = - app.config.requestCtx + "/file/api/ApiDownload?md5=" + item.file; + if (item.selectType == "pdf") { + const fileLink = item.file ? item.file : item.freeFile + console.log(fileLink); + wx.navigateTo({ + url: "/packageBookService/pages/components/webView/index?md5=" + + fileLink + + "&fileName=" + + item.name + + "&fileType=" + + item.selectType + "&bookBuy=true" + }); + } + if (item.selectType == "document") { + // freeFile + if (item.selectType == "document") { + item.selectType = "pptx"; + } + const fileLink = item.file ? + app.config.requestCtx + "/file/api/ApiDownload?md5=" + item.file : + app.config.requestCtx + + "/file/api/ApiDownload?md5=" + + item.freeFile; console.log(fileLink, "fileLink"); //鎻愮ず鍔犺浇涓� util.showLoading(); // 鍗曟涓嬭浇鍏佽鐨勬渶澶ф枃浠朵负 200MB wx.downloadFile({ - url: fileLink, // 鍦板潃宸叉墦鐮侊紝鑷繁鎹釜鍏朵粬鐨勫湴鍧�锛�"https://www.xxxxx.com/file/娴嬭瘯閫氱煡.pdf"锛� + url: fileLink, + // filePath: wx.env.USER_DATA_PATH + `/${item.name}.${item.selectType}`, + filePath: wx.env.USER_DATA_PATH + `/${item.name}.${item.selectType}`, success: function (res) { console.log(res, "wx.downloadFile success res"); if (res.statusCode != 200) { @@ -189,8 +232,9 @@ return false; } var Path = res.tempFilePath; //杩斿洖鐨勬枃浠朵复鏃跺湴鍧�锛岀敤浜庡悗闈㈡墦寮�鏈湴棰勮鎵�鐢� + let data = res.filePath; wx.openDocument({ - filePath: Path, + filePath: data, showMenu: true, success: function (res) { console.log("鎵撳紑鎴愬姛"); @@ -208,10 +252,10 @@ this.setData({ webpageSrc: item.jsek_link, }); - console.log(this.data.webpageSrc, "webpageSrc"); } } }, + // 鎷垮埌鎵�鏈夐」 getAllChildren(id) { let result = []; @@ -275,7 +319,6 @@ for (let node of tree) { findAndUpdate(node); // 瀵规瘡涓《灞傝妭鐐规墽琛屾煡鎵惧拰鏇存柊鎿嶄綔 } - // console.log(tree, 'tree345'); return tree; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍 }, @@ -312,20 +355,30 @@ // const flag = // list.findIndex((item) => item.checked == false) > -1 ? true : false; const flag = this.properties.checkAllState; - const updataList = this.findAndUpdateItemsByIds( - this.properties.treeList, + // const updataList = this.findAndUpdateItemsByIds( + // this.properties.treeList, + // ids, + // flag + // ); + // this.setData({ + // treeList: updataList, + // }); + + var myEventDetail = { ids, - flag - ); - console.log(checked, "list"); + flag, + }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟 + var myEventOption = { + bubbles: true, + composed: true, + }; // 瑙﹀彂浜嬩欢鐨勯�夐」 + this.triggerEvent("changeListChecked", myEventDetail, myEventOption); + if (!checked) { this.setData({ selectAll: list, }); } - this.setData({ - treeList: updataList, - }); var myEventDetail = { value: !flag, }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟 @@ -342,27 +395,48 @@ // 杩欎釜鏃跺�檆hecked鐨勫�兼槸fals let checkResourceTitleList = []; const item = e.currentTarget.dataset.item; - // + const parent = this.findParentById(this.properties.learnList, item.id); + let childrenList; + let flagNum; + if (parent) + childrenList = parent.children.filter((citem) => citem.id !== item.id); + if (childrenList) + flagNum = childrenList.findIndex((item) => item.checked == false); let list = this.flattenTree([item]); let ids = []; list.forEach((item) => { - ids.push(item.id); + if ( + item.sysType == "CmsFolder" || + (item.sysType == "CmsItem" && item.saleMethod.length) + ) + ids.push(item.id); }); - const updatedTreeList = this.findAndUpdateItemsByIds( - this.properties.treeList, + var myEventDetail = { ids, - flag - ); - this.setData({ - treeList: updatedTreeList, // 鏇存柊 treeList 鏁版嵁 - }); - console.log(list, "list.checked"); + flag, + }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟 + var myEventOption = { + bubbles: true, + composed: true, + }; // 瑙﹀彂浜嬩欢鐨勯�夐」 + this.triggerEvent("changeListChecked", myEventDetail, myEventOption); + if (flagNum == -1) { + let checkedState; + var myEventDetail = { + ids: [parent.id], + flag, + }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟 + var myEventOption = { + bubbles: true, + composed: true, + }; // 瑙﹀彂浜嬩欢鐨勯�夐」 + this.triggerEvent("changeListChecked", myEventDetail, myEventOption); + } if (!list.checked) { this.setData({ superiorPurchaseSaleMethodId: list, }); } - // console.log(this.data.superiorPurchaseSaleMethodId, 'superiorPurchaseSaleMethodId'); list.forEach((items) => { console.log(items.checked, "itesasd"); if (!items.checked) { @@ -378,11 +452,71 @@ // 瀛愰」鍕鹃�� checkResource(e) { const citem = e.currentTarget.dataset.item; - console.log(citem, "5648"); - const updataList = this.checkResoucrceInfo( - this.properties.treeList, - citem.id + const parent = e.currentTarget.dataset.parent; + let outermost; + if (parent) + outermost = this.findParentById(this.properties.learnList, parent.id); + const childrenList = parent.children.filter( + (item) => item.id !== citem.id && item.saleMethod.length ); + const flag = childrenList.findIndex((item) => item.checked == false); + // 鏀瑰彉璇ラ」checked + var myEventDetail = { + id: citem.id, + }; + var myEventOption = { + bubbles: true, + composed: true, + }; + this.triggerEvent("changeResourceChecked", myEventDetail, myEventOption); + // 閫氳繃鍒ゆ柇,鑱旈�氱埗绾hecked + if (flag == -1) { + let checkedState; + citem.checked == false ? (checkedState = true) : (checkedState = false); + var myEventDetail = { + ids: [parent.id], + flag: checkedState, + }; + var myEventOption = { + bubbles: true, + composed: true, + }; + this.triggerEvent("changeListChecked", myEventDetail, myEventOption); + } + // 鑱旈�氭渶澶栧眰绾hecked ,濡傛灉鏈変竴涓彇娑堝嬀閫�,涓斿綋鍓嶆渶澶栧眰鍕鹃��,鍒欏彇娑堟渶澶栧眰鐨勫嬀閫� + if (citem.checked && outermost && outermost.checked) { + var myEventDetail = { + ids: [outermost.id], + flag: false, + }; + var myEventOption = { + bubbles: true, + composed: true, + }; + this.triggerEvent("changeListChecked", myEventDetail, myEventOption); + } + // 鑱旈�氭渶澶栧眰绾hecked, 濡傛灉鎵�鏈夊瓙椤瑰嬀閫�, 涓斿綋鍓嶆渶澶栧眰鏈嬀閫�, 鍒欏姞涓婃渶澶栧眰鐨勫嬀閫� + if (!citem.checked && outermost) { + let allchildren = this.flattenTree([outermost]); + allchildren = allchildren.filter( + (item) => + item.sysType == "CmsItem" && + item.id !== citem.id && + item.saleMethod.length + ); + const satate = allchildren.findIndex((item) => item.checked == false); + if (satate == -1) { + var myEventDetail = { + ids: [outermost.id], + flag: true, + }; + var myEventOption = { + bubbles: true, + composed: true, + }; + this.triggerEvent("changeListChecked", myEventDetail, myEventOption); + } + } if (!citem.checked) { //閫変腑鐨勬椂鍊欐坊鍔爄d let sonPurchaseSaleMethodId = this.data.sonPurchaseSaleMethodId || []; @@ -396,17 +530,16 @@ this.setData({ sonPurchaseSaleMethodId: sonPurchaseSaleMethodId, }); - console.log(this.data.sonPurchaseSaleMethodId); } else { // 鍙栨秷閫変腑鐨勬椂鍊欏垹闄d } - this.setData({ - treeList: updataList, - }); }, // 鍔犲叆璐墿杞� async onCloudShoppingCart(e) { let shoppingCartGetId = []; + + const item = e.currentTarget.dataset.item; + console.log(item.isShopCar); const saleMethodId = e.currentTarget.dataset.item.saleMethod[0].Id; console.log(saleMethodId); let query = { @@ -415,16 +548,13 @@ filterList: [], searchList: [], }; - const res = await app.MG.store.getShoppingCartProductList(query); res.datas.forEach((item) => { shoppingCartGetId.push(item.saleMethod.id); }); if (shoppingCartGetId.includes(saleMethodId)) { - console.log(111); // this.data.updateShoppingCartHidden(); // this.data.updateCloudLearning(); - wx.showToast({ icon: "error", title: "宸叉坊鍔�", @@ -442,18 +572,57 @@ }; const addRes = await app.MG.store.addShoppingCart(query); console.log(addRes, "addRes"); - wx.showToast({ - icon: "success", - title: "娣诲姞鎴愬姛", - }); + if (addRes) { + wx.showToast({ + icon: "success", + title: "娣诲姞鎴愬姛", + }); + item.isShopCar = false; + this.triggerEvent("updateCloudLearning"); + } } }, sadd() { this.triggerEvent("updateShoppingCartHidden"); this.triggerEvent("updateCloudLearning"); - console.log(789); + }, + findParentById(arr, id) { + for (let i = 0; i < arr.length; i++) { + const item = arr[i]; + // 妫�鏌ュ綋鍓嶉」鏄惁鍖归厤锛堝嵆瀹冩槸涓嶆槸鎴戜滑瑕佹壘鐨勯」锛� + if (item.id === id) { + // 濡傛灉褰撳墠椤瑰氨鏄垜浠鎵剧殑椤癸紝鍒欏畠娌℃湁鐖剁骇锛岃繑鍥� null + return null; + } + // 閫掑綊鏌ユ壘褰撳墠椤圭殑瀛愰」 + const child = this.findChildById(item.children, id); + if (child) { + // 濡傛灉鍦ㄥ瓙椤逛腑鎵惧埌鍖归厤鐨勯」锛岃繑鍥炲綋鍓嶉」浣滀负鐖剁骇 + return item; + } + } + // 濡傛灉娌℃湁鎵惧埌鍖归厤鐨勭埗椤癸紝杩斿洖 null + return null; + }, + // 杈呭姪鍑芥暟锛岀敤浜庨�掑綊鏌ユ壘瀛愰」 + findChildById(children, id) { + if (!children) { + return null; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.id === id) { + // 濡傛灉鎵惧埌鍖归厤鐨勯」锛岃繑鍥炲畠 + return child; + } + // 閫掑綊妫�鏌ュ瓙椤圭殑瀛愰」 + const subChild = this.findChildById(child.children, id); + if (subChild) { + return subChild; + } + } + // 濡傛灉娌℃湁鎵惧埌鍖归厤鐨勯」锛岃繑鍥� null + return null; }, }, - - catchtap() {}, }); \ No newline at end of file -- Gitblit v1.9.1