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 | 126 ++++++++++++++++++++++++++++++------------ 1 files changed, 90 insertions(+), 36 deletions(-) diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js index 58ce970..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 @@ -280,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; @@ -292,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] @@ -385,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 } }, @@ -569,6 +619,8 @@ const updated = this.findAndUpdateItemsByIds(this.data.learn, ids, state) this.setData({ learn: updated + }, () => { + wx.hideLoading() }) }, // 鍗曚釜鍕鹃�変簨浠� @@ -577,6 +629,8 @@ const updated = this.checkResoucrceInfo(this.data.learn, id) this.setData({ learn: updated + }, () => { + wx.hideLoading() }) }, upDateShopCar(id, tree) { -- Gitblit v1.9.1