| | |
| | | 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 |
| | |
| | | SysType: 'CmsFolder', |
| | | // 资源类型,试读文件,是否允许下载等参数 |
| | | learnSelectType: [], |
| | | selectType: [], |
| | | freeFile: [], |
| | | file: [], |
| | | protectedFile: [], |
| | | resourcesClassification: [], |
| | | isDownload: [], |
| | | jsek_resourceBrief: [], |
| | | jsek_link: [], |
| | | jsek_questionBank: [] |
| | | // freeFile: [], |
| | | // file: [], |
| | | // protectedFile: [], |
| | | // resourcesClassification: [], |
| | | // isDownload: [], |
| | | // jsek_resourceBrief: [], |
| | | // jsek_link: [], |
| | | // jsek_questionBank: [] |
| | | }, |
| | | pading: { |
| | | start: 0, |
| | | size: 999 |
| | | }, |
| | | } |
| | | app.MG.store.getProductDetail(query).then((res) => { |
| | | app.MG.store.getProductDetailNoChildren(query).then((res) => { |
| | | if (!res.datas.cmsDatas[0].datas.length) { |
| | | return this.setData({ |
| | | noResources: 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 |
| | | } |
| | | }, |
| | | |
| | |
| | | // 修改后方法 |
| | | 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, |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 章节勾选方法 |
| | |
| | | const updated = this.findAndUpdateItemsByIds(this.data.learn, ids, state) |
| | | this.setData({ |
| | | learn: updated |
| | | }, () => { |
| | | wx.hideLoading() |
| | | }) |
| | | }, |
| | | // 单个勾选事件 |
| | |
| | | const updated = this.checkResoucrceInfo(this.data.learn, id) |
| | | this.setData({ |
| | | learn: updated |
| | | }, () => { |
| | | wx.hideLoading() |
| | | }) |
| | | }, |
| | | upDateShopCar(id, tree) { |