| | |
| | | options: { |
| | | id: "", |
| | | name: "", |
| | | storeInfo: '', |
| | | }, |
| | | bookDetail: {}, |
| | | bookClass: [], |
| | |
| | | openTeachids: [], |
| | | openLearnids: [], |
| | | openTestids: [], |
| | | isGoBuyResource: true, |
| | | learnPath: '', |
| | | applyResourceState: false, // 申请教学资源按钮防抖 |
| | | resourceClassList: [], // 资源所属分类 |
| | | applyState: "", // 教学资源申请状态 |
| | |
| | | }, |
| | | ], |
| | | showIndex: '', |
| | | successOrderNumber: '' |
| | | successOrderNumber: '', |
| | | applicationState: '' // 电子样书申请状态 |
| | | }, |
| | | |
| | | resetTree: function (e) { |
| | |
| | | options: { |
| | | id: options.id, |
| | | name: options.name, |
| | | storeInfo: options.storeInfo, |
| | | }, |
| | | }); |
| | | wx.setNavigationBarTitle({ |
| | |
| | | "mockData.count": 0, |
| | | }); |
| | | const query = { |
| | | storeInfo: this.data.options.storeInfo, |
| | | path: "*", |
| | | queryType: "*", |
| | | productId: id, |
| | |
| | | this.setData({ |
| | | showIndex: '1' |
| | | }) |
| | | console.log(this.data.bookDetail.icon, '0111111'); |
| | | console.log(this.data.bookDetail.name, '45688'); |
| | | }, |
| | | // 跳转网店 |
| | | goShop(e) { |
| | |
| | | return num |
| | | }, |
| | | |
| | | // 给·目录添加子项数量 |
| | | // 给目录添加子项数量 |
| | | changeResourceChildren(list) { |
| | | const changeList = (list) => { |
| | | for (let index = 0; index < list.length; index++) { |
| | |
| | | }, |
| | | |
| | | // 扁平化数据转换tree |
| | | getTreeList(rootList, pathLength, newArr, path) { |
| | | getTreeList(rootList, pathLength, newArr, path, addNum) { |
| | | for (const item of rootList) { |
| | | if (item.productLinkPath.length == pathLength && item.productLinkPath.includes(path)) { |
| | | // 此处原本 item.productLinkPath.length == pathLength 但 productLinkPath 长度个别书存在4、5位交错 |
| | | if ((pathLength - item.productLinkPath.length >= 0 && pathLength - item.productLinkPath.length <= 3) && item.productLinkPath.includes(path)) { |
| | | if (item.sysType == 'CmsItem') { |
| | | if (item.selectType == 'webpage') { |
| | | item.disabled = true |
| | |
| | | } |
| | | // newArr.push(item) |
| | | // 在插入过程中对数据进行排序 |
| | | newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item) |
| | | newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item, addNum) |
| | | } |
| | | } |
| | | //给数组里面再添加一个children的空数组 |
| | | for (const i of newArr) { |
| | | i.children = [] |
| | | this.getTreeList(rootList, pathLength + 6, i.children, i.productLinkPath) |
| | | this.getTreeList(rootList, pathLength + addNum, i.children, i.productLinkPath, addNum) |
| | | if (i.children.length == 0) { |
| | | delete i.children |
| | | } |
| | |
| | | }, |
| | | |
| | | // 排序数组 按照productLinkPath |
| | | insertAndSortObjectsByProductLinkPath(array, newObj) { |
| | | insertAndSortObjectsByProductLinkPath(array, newObj, addNum) { |
| | | // 查找新对象应该插入的位置 |
| | | let insertIndex = array.findIndex(obj => Number(newObj.productLinkPath.substring(newObj.productLinkPath.length - 6, newObj.productLinkPath.length)) < Number(obj.productLinkPath.substring(obj.productLinkPath.length - 6, obj.productLinkPath.length))); |
| | | let insertIndex = array.findIndex(obj => Number(newObj.productLinkPath.substring(newObj.productLinkPath.length - addNum, newObj.productLinkPath.length)) < Number(obj.productLinkPath.substring(obj.productLinkPath.length - addNum, obj.productLinkPath.length))); |
| | | |
| | | // 如果没有找到合适的位置,则放在数组末尾 |
| | | if (insertIndex === -1) { |
| | |
| | | // 测试6 正式5 |
| | | // 对数组进行排序 |
| | | array.sort((a, b) => { |
| | | if (Number(a.productLinkPath.substring(a.productLinkPath.length - 5, a.productLinkPath.length)) < Number(b.productLinkPath.substring(b.productLinkPath.length - 5, b.productLinkPath.length))) { |
| | | if (Number(a.productLinkPath.substring(a.productLinkPath.length - addNum, a.productLinkPath.length)) < Number(b.productLinkPath.substring(b.productLinkPath.length - addNum, b.productLinkPath.length))) { |
| | | return -1; |
| | | } |
| | | if (Number(a.productLinkPath.substring(a.productLinkPath.length - 5, a.productLinkPath.length)) > Number(b.productLinkPath.substring(b.productLinkPath.length - 5, b.productLinkPath.length))) { |
| | | if (Number(a.productLinkPath.substring(a.productLinkPath.length - addNum, a.productLinkPath.length)) > Number(b.productLinkPath.substring(b.productLinkPath.length - addNum, b.productLinkPath.length))) { |
| | | return 1; |
| | | } |
| | | // a must be equal to b |
| | |
| | | let query = { |
| | | path: '*', |
| | | queryType: '*', |
| | | storeInfo: this.data.options.storeInfo, |
| | | productId: this.data.bookDetail.id, |
| | | cmsPath: type.productLinkPath, |
| | | cmsType: '*', |
| | |
| | | SysType: 'CmsFolder', |
| | | // 资源类型,试读文件,是否允许下载等参数 |
| | | selectType: [], |
| | | learnSelectType: [], |
| | | freeFile: [], |
| | | file: [], |
| | | protectedFile: [], |
| | |
| | | } |
| | | } |
| | | }); |
| | | this.getTreeList(res.datas.cmsDatas[0].datas, 17, list, '\\') |
| | | if (type.refCode == "jsek_cloudLearning") { |
| | | this.setData({ |
| | | learnPath: type.productLinkPath |
| | | }) |
| | | const dataList = res.datas.cmsDatas[0].datas |
| | | if (dataList.length) { |
| | | const tag = dataList.findIndex(item => item.saleMethod.length && item.saleMethod[0].Price > 0) |
| | | this.setData({ |
| | | isGoBuyResource: tag > -1 ? true : false |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | isGoBuyResource: false |
| | | }) |
| | | } |
| | | } |
| | | const addNum = query.cmsPath.length > 12 ? 7 : query.cmsPath.length > 14 ? 8 : 6 |
| | | const num = query.cmsPath.length + addNum |
| | | this.getTreeList(res.datas.cmsDatas[0].datas, num, list, '\\', addNum) |
| | | list = this.ensureTreeConsistency(list) |
| | | list = this.changeResourceChildren(list) |
| | | console.log('修改后云', list); |
| | |
| | | let query = { |
| | | path: "*", |
| | | queryType: "*", |
| | | storeInfo: this.data.options.storeInfo, |
| | | productId: this.data.bookDetail.id, |
| | | cmsPath: type.productLinkPath, |
| | | cmsType: '*', |
| | | itemFields: { |
| | | SysType: "CmsFolder", |
| | | // 资源类型,试读文件,是否允许下载等参数 |
| | |
| | | } |
| | | // 云测试,递归请求里层数据 |
| | | if (type.refCode == "questionBank") { |
| | | const data = res.datas.cmsDatas[0].datas.filter( |
| | | (item) => item.refCode == "jsek_questionBank" |
| | | ); |
| | | if (data.length) return this.getResourceData(data[0]); |
| | | } |
| | | //教学资源 云学习 |
| | | if ( |
| | | type.refCode == "jsek_teachingResources" || |
| | | type.refCode == "jsek_cloudLearning" |
| | | ) { |
| | | if (res.datas.cmsDatas[0].datas.length > 0) { |
| | | res.datas.cmsDatas[0].datas.forEach((item) => { |
| | | item.checked = false; |
| | | }); |
| | | const list = await this.getAllResource(res.datas.cmsDatas[0].datas); |
| | | const data = res.datas.cmsDatas[0].datas.filter((item) => item.type == 'questionBankFolder' && item.childrenFolderCount > 0); |
| | | if (data.length > 0) { |
| | | let list = [] |
| | | console.log(query.cmsPath, query.cmsPath.length) |
| | | // 测试 6位// 正式 5位// 测试调用传20,内部7 正式调用传17 内部传6 |
| | | const addNum = query.cmsPath.length > 12 ? 7 : query.cmsPath.length > 14 ? 8 : 6 |
| | | const num = query.cmsPath.length + addNum |
| | | this.getTreeList(data, num, list, '\\', addNum) |
| | | list = this.ensureTreeConsistency(list) |
| | | let result = []; |
| | | if (type.refCode == "jsek_teachingResources") { |
| | | this.findChildIds(list, result); |
| | | this.setData({ |
| | | teach: list, |
| | | loading: false, |
| | | openTeachids: result, |
| | | }); |
| | | } else if (type.refCode == "jsek_cloudLearning") { |
| | | let arr = this.handleTreeData(list).filter( |
| | | (item) => item.saleMethod[0] |
| | | ); |
| | | let freeIds = arr.filter((item) => { |
| | | return item.saleMethod[0].Price == 0; |
| | | }); |
| | | if (!freeIds.length) |
| | | this.setData({ |
| | | isshowDrawBtn: false, |
| | | }); |
| | | this.findChildIds(list, result); |
| | | this.setData({ |
| | | learn: list, |
| | | loading: false, |
| | | openLearnids: result, |
| | | }); |
| | | } |
| | | console.log(list, '云學習789'); |
| | | } else { |
| | | // 无数据 |
| | | this.findChildIds(list[0].children, result); |
| | | this.setData({ |
| | | test: list[0].children, |
| | | loading: false, |
| | | openTeachids: result, |
| | | }); |
| | | console.log(this.data.test, "test") |
| | | } |
| | | } else if (type.refCode == "jsek_questionBank") { |
| | | // const list = await this.getAllResource(res.datas.cmsDatas[0].datas) |
| | | this.setData({ |
| | | test: res.datas.cmsDatas[0].datas, |
| | | loading: false, |
| | | }); |
| | | } else { |
| | | console.log("其他"); |
| | | } |
| | | }) |
| | | .catch((e) => { |
| | |
| | | let query = { |
| | | path: "*", |
| | | queryType: "*", |
| | | storeInfo: this.data.options.storeInfo, |
| | | productId: this.data.bookDetail.id, |
| | | cmsPath: path, |
| | | itemFields: { |
| | |
| | | // 发起订单初始化请求并等待结果 |
| | | const res = await app.MG.store.initOrder(query); |
| | | // 获取订单号并赋值给 orderNumber.value |
| | | console.log(res, 'res456'); |
| | | bookOrdersId = res.orderNumber; |
| | | // 检查订单号是否存在 |
| | | if (bookOrdersId) { |
| | |
| | | }, |
| | | // 申请教学资源 |
| | | applyResource() { |
| | | |
| | | // if (this.data.applyResourceState) { |
| | | // return wx.showToast({ |
| | | // icon: "error", |
| | |
| | | if (isSHow) { |
| | | return false; |
| | | } else { |
| | | return data.saleMethod[0].price > 0 ? true : false; |
| | | return data.saleMethod[0].Price > 0 ? true : false; |
| | | } |
| | | return !isSHow; |
| | | } else { |
| | |
| | | }, |
| | | |
| | | updateShoppingCartHidden() { |
| | | |
| | | const isSHow = this.data.shoppingCartGetId.some( |
| | | (item) => item == data.saleMethod[0].Id |
| | | ); |
| | |
| | | }; |
| | | // 确认订单 |
| | | const confirmOrderRes = await app.MG.store.confirmOrder(parameter); |
| | | console.log(confirmOrderRes.orderNumber, 'confirmOrderRes.orderNumber'); |
| | | |
| | | if (confirmOrderRes.orderNumber) { |
| | | child.changeReceive(false); |
| | | wx.showToast({ |
| | | title: "领取成功", |
| | | }); |
| | | this.getBookInfo(this.data.bookId); |
| | | this.getResourceDataList({ |
| | | refCode: 'jsek_cloudLearning', |
| | | productLinkPath: this.data.learnPath |
| | | }) |
| | | this.setData({ |
| | | successOrderNumber: confirmOrderRes.orderNumber |
| | | }) |
| | | |
| | | |
| | | } |
| | | } catch (error) { |
| | | console.log(error); |
| | |
| | | this.data.bookBuy + |
| | | "&bookId=" + |
| | | this.data.bookDetail.id, |
| | | |
| | | }); |
| | | }, |
| | | |
| | |
| | | list.push(item); |
| | | } |
| | | }); |
| | | const smBook = list.find(item => item.content[0].id == this.data.bookDetail.id) |
| | | console.log('已申请', smBook); |
| | | if (smBook && smBook.state == 'Normal') { |
| | | const flag = new Date(smBook.feedBack.endDate + '23:59:59').getTime() > new Date().getTime() |
| | | if (flag) { |
| | | this.setData({ |
| | | applicationState: 'Normal' |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | applicationState: 'overdue' |
| | | }) |
| | | } |
| | | } |
| | | this.setData({ |
| | | alreadyElectronicBookList: list, |
| | | }); |
| | |
| | | return false; |
| | | } |
| | | let isApply = this.data.alreadyElectronicBookList.find( |
| | | (eitem) => eitem.id == this.data.bookDetail.id |
| | | (eitem) => eitem.content[0].id == this.data.bookDetail.id |
| | | ); |
| | | if (isApply) { |
| | | wx.showToast({ |
| | | title: "该书已申请!", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false; |
| | | if (isApply.state == 'WaitAudit') { |
| | | wx.showToast({ |
| | | title: "该书已申请!", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false; |
| | | } else if (isApply.state == 'Normal') { |
| | | const flag = new Date(isApply.feedBack.endDate + '23:59:59').getTime() > new Date().getTime() |
| | | if (flag) { |
| | | wx.showToast({ |
| | | title: "该书已申请!", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | if (this.data.electronicBookList.length >= 2) { |
| | | wx.showToast({ |
| | |
| | | return false; |
| | | } |
| | | let isApply = this.data.alreadyPaperBookList.find( |
| | | (pitem) => pitem.id == this.data.bookDetail.id |
| | | (pitem) => pitem.content[0].id == this.data.bookDetail.id |
| | | ); |
| | | if (isApply) { |
| | | wx.showToast({ |