From f2036f82c20767036fe8c4d627e5694e28e6ab73 Mon Sep 17 00:00:00 2001 From: QYF-GitLab1 <1940665526@qq.com> Date: 星期二, 29 七月 2025 18:29:33 +0800 Subject: [PATCH] 修复资源移动目录产生的BUG --- packageBookService/pages/bookServices/detail/buyResource/index.js | 234 ++++++++++++++++++++++++++++----------------------------- 1 files changed, 115 insertions(+), 119 deletions(-) diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js index aa65579..423f6e6 100644 --- a/packageBookService/pages/bookServices/detail/buyResource/index.js +++ b/packageBookService/pages/bookServices/detail/buyResource/index.js @@ -209,32 +209,52 @@ return flattenedArray; }, // 閫掑綊鏍戠粨鏋勶紝濡傛灉鐖剁骇鏈夐攢鍞柟寮�(鏈夋晥鏈�)锛屽幓鎺夋墍鏈夊瓙闆嗙殑閿�鍞柟寮� - clearTreeSealmethod(clearSaleMethod, tree) { + clearTreeSealmethod(tree, data, parent) { for (let item of tree) { - const saleData = item.saleMethod && - item.saleMethod.length ? - item.saleMethod.find((citem) => citem.SaleType == 'Normal') : null - if ( - ((saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) || - clearSaleMethod) && item.children && item.children.length - ) { - item.children.forEach((ditem) => (ditem.saleMethod = [])) + // 鏄惁鏄剧ず鎸夐挳 + item.isShowIcon = false; + if (item.sysType == 'CmsItem') { + // 鏌ユ壘鐩綍涓嬭祫婧愰攢鍞柟寮忥紝鐩綍涓嬭祫婧愭病鏈夐攢鍞柟寮� + if (item.saleMethod?.length == 0) { + // 鏌ョ湅鍏剁埗绾ф槸鍚︽湁閿�鍞柟寮� + if (parent.saleMethod?.length > 0) { + // 鐖剁骇鏄湁閿�鍞柟寮忕洿鎺ユ樉绀烘寜閽� + // const index = data.findIndex(i => i.id == parent.id) + parent.isShowIcon = true + } + // else { + // // 鐖剁骇娌℃湁閿�鍞柟寮忥紝鏌ユ壘璇ヨ祫婧愮埗绾� + // const arr = parent.productLinkPath.split('\\') + // const linkData = arr[arr.length - 1] // arr[arr.length - 1] 鎺掗櫎鑷繁 + // linkData.reverse() + // const dataList = linkData.map(ritem => { + // const parentData = data.find(citem => citem.id == ritem); + // if (parentData) return parentData; + // }) + // if (dataList?.length > 0) { + // const index = data.findIndex(i => i.id == dataList[0].id) + // data[index].isShowIcon = true + // } + // } + } else { + item.isShowIcon = true + } + } else { + if (item.children?.length > 0) { + this.clearTreeSealmethod(item.children, data, item) + } } - if (item.children && item.children.length) - this.clearTreeSealmethod( - saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime(), - item.children - ) } return tree }, // 鍕鹃�夌鐢� handleTreeCheck(tree) { for (const item of tree) { + const isbuy = this.resourceIsBuy(item) const saleData = item.saleMethod && item.saleMethod.length ? item.saleMethod.find((citem) => citem.SaleType == 'Normal') : undefined - if (saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) { + if (saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime() && !isbuy && item.isShowIcon) { item.disabled = false } else { item.disabled = true @@ -258,8 +278,7 @@ itemFields: { SysType: 'CmsFolder', // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁� - // learnSelectType: [], - // selectType: [], + learnSelectType: [], // freeFile: [], // file: [], // protectedFile: [], @@ -281,6 +300,9 @@ loading: false, }); } + this.setData({ + cacheData: res.datas.cmsDatas[0].datas + }) let list = [] res.datas.cmsDatas[0].datas.forEach((item) => { item.checked = false; @@ -293,13 +315,13 @@ this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath) list = this.ensureTreeConsistency(list) list = this.changeResourceChildren(list) - list = this.clearTreeSealmethod(false, list) + list = this.clearTreeSealmethod(list, list, null) list = this.handleTreeCheck(list) this.handleTreeData(list).forEach(item => { item.isbuy = this.resourceIsBuy(item); item.isShopCar = this.isShoppingCart(item); }) - console.log('淇敼鍚庝簯', list); + // console.log('淇敼鍚庝簯', list); let result = []; let arr = res.datas.cmsDatas[0].datas.filter( (item) => item.saleMethod[0] @@ -386,28 +408,55 @@ }, // 鍒ゆ柇璧勬簮鏄惁璐拱 resourceIsBuy(data) { - if (data.saleMethod && data.saleMethod.length) { - const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal') - if (saleData.State == 'Disable') return false - const isShow = this.data.buyIdList.some( - (item) => item == saleData.Id - ); - // 宸茬粡璐拱 - if (isShow) return false - // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈� - if (!isShow) { - const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() && - new Date(saleData.BeginDate).getTime() <= new Date().getTime() - if (flag) { - // 涓鸿繃鏈� 锛岄渶瑕佽喘涔� - return true - } else { - // 宸茶繃鏈� 鏃犻渶璐拱 - return false + // if (data.saleMethod && data.saleMethod.length) { + // const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal') + // if (saleData.State == 'Disable') return false + // const isShow = this.data.buyIdList.some( + // (item) => item == saleData.Id + // ); + // // 宸茬粡璐拱 + // if (isShow) return false + // // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈� + // if (!isShow) { + // const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() && + // new Date(saleData.BeginDate).getTime() <= new Date().getTime() + // if (flag) { + // // 涓鸿繃鏈� 锛岄渶瑕佽喘涔� + // return true + // } else { + // // 宸茶繃鏈� 鏃犻渶璐拱 + // return false + // } + // } + // } else { + // return false; + // } + let linkData = data.productLinkPath.split("\\"); + linkData.reverse() + let dataList = linkData.map(item => { + let data = this.data.cacheData.find(citem => citem.id == item); + if (data) return data; + }) + let isBuy = 1; + for (let i = 0; i < dataList.length; i++) { + const dataItem = dataList[i]; + if (dataItem) { + if (dataItem.saleMethod.length > 0) { + isBuy = 2; + if (this.data.bookDetail.purchasedSaleMethodIdList.indexOf(dataItem.saleMethod[0].Id) > -1 || dataItem.saleMethod[0].Price == 0) { + isBuy = 3; + break; + } else { + break; + } } } + } + if (isBuy == 2) { + // 鏈喘涔� + return false } else { - return false; + return true } }, @@ -501,87 +550,30 @@ // 淇敼鍚庢柟娉� const checkData = this.handleTreeData(this.data.learn).filter(item => item.checked == true) console.log('閫変腑', checkData); - // let saleMethodIds = []; - // let requests = []; - // let item = []; - // let selectAllId = []; - // const child = this.selectComponent("#tree"); - // item = child.data.superiorPurchaseSaleMethodId; - // const sonItem = child.data.sonPurchaseSaleMethodId; - // let selectAll = child.data.selectAll; - // if (selectAll.length) { - // selectAll.forEach((item) => { - // if (item.saleMethod != 0) { - // selectAllId.push(item.saleMethod[0].Id); - // } - // }); - // app.MG.store - // .initOrder({ - // requests: selectAllId.map((id) => ({ - // saleMethodId: id, - // count: 1, - // })), - // }) - // .then((res) => { - // if (res) { - // wx.navigateTo({ - // url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, - // }); - // selectAllId = []; - // child.setData({ - // selectAll: [], - // }); - // } - // }); - // } - // if (item) { - // // 鎷垮埌id - // item.forEach((items) => { - // if (items.saleMethod != 0) { - // saleMethodIds.push(items.saleMethod[0].Id); - // } - // }); - // app.MG.store - // .initOrder({ - // requests: saleMethodIds.map((id) => ({ - // saleMethodId: id, - // count: 1, - // })), - // }) - // .then((res) => { - // if (res) { - // wx.navigateTo({ - // url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, - // }); - - // child.setData({ - // superiorPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁 - // }); - // } - // }); - // } - // if (item.length == 0 && sonItem) { - // app.MG.store - // .initOrder({ - // requests: sonItem.map((id) => ({ - // saleMethodId: id, - // count: 1, - // })), - // }) - // .then((res) => { - // if (res) { - // wx.navigateTo({ - // url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, - // }); - // this.setData({ - // paymentPage: true, - // }); - // child.setData({ - // sonPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁 - // }); - // } - // }); - // } + if (!checkData.length) return wx.showToast({ + icon: 'error', + title: '璇峰嬀閫夎祫婧�', + }) + let saleMethodIds = []; + checkData.forEach((items) => { + if (items.saleMethod.length) { + saleMethodIds.push(items.saleMethod.find(citem => citem.SaleType == 'Normal').Id); + } + }); + app.MG.store + .initOrder({ + requests: saleMethodIds.map((id) => ({ + saleMethodId: id, + count: 1, + })), + }) + .then((res) => { + if (res) { + wx.navigateTo({ + url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, + }); + } + }); }, // 绔犺妭鍕鹃�夋柟娉� @@ -627,6 +619,8 @@ const updated = this.findAndUpdateItemsByIds(this.data.learn, ids, state) this.setData({ learn: updated + }, () => { + wx.hideLoading() }) }, // 鍗曚釜鍕鹃�変簨浠� @@ -635,6 +629,8 @@ const updated = this.checkResoucrceInfo(this.data.learn, id) this.setData({ learn: updated + }, () => { + wx.hideLoading() }) }, upDateShopCar(id, tree) { -- Gitblit v1.9.1