| | |
| | | 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 { |
| | | 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 |
| | |
| | | loading: false, |
| | | }); |
| | | } |
| | | this.setData({ |
| | | cacheData: res.datas.cmsDatas[0].datas |
| | | }) |
| | | let list = [] |
| | | res.datas.cmsDatas[0].datas.forEach((item) => { |
| | | item.checked = false; |
| | |
| | | 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] |
| | |
| | | }, |
| | | // 判断资源是否购买 |
| | | 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 |
| | | } |
| | | }, |
| | | |