| | |
| | | rejectCause: "", // 下载拒绝原因 |
| | | buyIdList: [], |
| | | shoppingCartGetId: [], // 已购买id列表 |
| | | shoppingList: [] |
| | | shoppingList: [], |
| | | loading: false, |
| | | isShowTeachDownload: false, // 提示PC下载弹窗状态 |
| | | confirmBtn: { content: '我知道了', variant: 'base' }, |
| | | }, |
| | | |
| | | resetTree: function (e) { |
| | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { }, |
| | | onPullDownRefresh() { |
| | | |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { }, |
| | | onReachBottom() { |
| | | if (this.data.tabValue == 'jesk_note') { |
| | | const child = this.selectComponent('#note') |
| | | child.onReachBottom() |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | |
| | | freeEpubPage: [], //epub试读百分比 |
| | | }, |
| | | }; |
| | | app.MG.store.getProductDetail(query).then((res) => { |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | |
| | | this.setData({ |
| | | bookDetail: res.datas, |
| | | cmsDatas: res.datas.cmsDatas[0].datas, |
| | |
| | | // 获取图书分类 |
| | | const iconType = JSON.parse(res.datas.bookClassification)[0][0]; |
| | | const classType = JSON.parse(res.datas.bookClassification)[0][1]; |
| | | const className = await this.getBookClass(iconType, classType) |
| | | this.setData({ |
| | | 'bookDetail.publicationDate': this.formatDate(this.data.bookDetail.publicationDate), |
| | | 'bookDetail.class': this.getBookClass(iconType, classType), |
| | | 'bookDetail.class': className, |
| | | 'bookDetail.price': this.numFormat(this.data.bookDetail.price), |
| | | 'bookDetail.oldPrice': this.numFormat(this.data.bookDetail.oldPrice), |
| | | 'bookDetail.paperPrice': this.numFormat(this.data.bookDetail.paperPrice), |
| | |
| | | }); |
| | | }, |
| | | // 获取图书分类 |
| | | getBookClass(iconType, classType) { |
| | | async getBookClass(iconType, classType) { |
| | | let name = ''; |
| | | const query = { |
| | | refCodes: ['bookClassification'], |
| | | }; |
| | | app.MG.store.getProductTypeField(query).then((res) => { |
| | | await app.MG.store.getProductTypeField(query).then((res) => { |
| | | JSON.parse(res[0].config).option.forEach((item) => { |
| | | if (item.value == iconType) { |
| | | item.child.forEach((item) => { |
| | | if (item.value == classType) { |
| | | name = item.name; |
| | | item.child.forEach((citem) => { |
| | | if (citem.value == classType) { |
| | | name = citem.name; |
| | | } |
| | | }); |
| | | } |
| | |
| | | || (e.detail.value == 'questionBank' && !this.data.test.length)) { |
| | | this.getResourceData(checkData) |
| | | } |
| | | |
| | | } |
| | | } else if (e.detail.label == '云笔记') { |
| | | const token = wx.getStorageSync('jsek-token') |
| | | const child = this.selectComponent('#note') |
| | | child.handleSubmitTitle() |
| | | if (token) { |
| | | child.changeLoading() |
| | | child.getNoteList() |
| | | } |
| | | |
| | | } |
| | | }, |
| | | // 获取资源所属分类 |
| | |
| | | }, |
| | | // 获取教学资源 云学习 云测试 |
| | | getResourceData(type) { |
| | | this.setData({ |
| | | loading: true |
| | | }) |
| | | let query = { |
| | | path: '*', |
| | | queryType: '*', |
| | |
| | | }) |
| | | const list = await this.getAllResource(res.datas.cmsDatas[0].datas) |
| | | this.setData({ |
| | | teach: list |
| | | teach: list, |
| | | loading: false |
| | | }) |
| | | this.findChildIds(this.data.teach, this.data.openTeachids = []) |
| | | } else if (type.refCode == 'jsek_cloudLearning') { |
| | | const list = await this.getAllResource(res.datas.cmsDatas[0].datas) |
| | | this.setData({ |
| | | learn: list |
| | | learn: list, |
| | | loading: false |
| | | }) |
| | | this.findChildIds(this.data.learn, this.data.openLearnids = []) |
| | | } |
| | |
| | | } else if (type.refCode == 'jsek_questionBank') { |
| | | // const list = await this.getAllResource(res.datas.cmsDatas[0].datas) |
| | | this.setData({ |
| | | test: res.datas.cmsDatas[0].datas |
| | | test: res.datas.cmsDatas[0].datas, |
| | | loading: false |
| | | }) |
| | | // this.findChildIds(this.data.test, this.data.openTestids = []) |
| | | console.log('云测试', this.data.test); |
| | | } else { |
| | | console.log('其他'); |
| | | } |
| | |
| | | const endDate = JSON.parse(applyResource.feedBack).endDate |
| | | // const endDate = new Date(JSON.parse(applyResource.feedBack).endDate + ' 23:59:59').getTime() |
| | | if (endDate == '永久') { |
| | | // deadline.value = '永久' |
| | | this.setData({ |
| | | applyState: 'Normal', |
| | | deadline: '永久', |
| | | }) |
| | | console.log('有效日期', this.data.deadline); |
| | | } else { |
| | | |
| | | let endTime = new Date(endDate + ' 23:59:59').getTime() |
| | | // deadline.value = endDate + ' 23:59:59' |
| | | this.setData({ |
| | | deadline: endDate + ' 23:59:59' |
| | | }) |
| | |
| | | applyState: 'none' |
| | | }) |
| | | } |
| | | console.log('申请通过', this.data.applyState); |
| | | }) |
| | | |
| | | console.log('有效日期', this.data.deadline); |
| | | }, |
| | | // 申请教学资源 |
| | | applyResource() { |
| | |
| | | // // logIn() |
| | | // } |
| | | }, |
| | | // 教学资源下载前往PC提示Diialog |
| | | closeTeachDownload() { |
| | | this.setData({ |
| | | isShowTeachDownload: false |
| | | }) |
| | | }, |
| | | // 下载功能 |
| | | downloadTeach(e) { |
| | | |
| | | const data = e.detail.value |
| | | // const data |
| | | // let role = userStore.userInfo ? userStore.userInfo.role : null |
| | | // if (role) { |
| | | // if (role == 'Teacher') { |
| | | if (this.properties.applyState == 'Normal' || this.properties.applyState == 'none') { |
| | | // 是否允许下载 |
| | | if (data.isDownload == 1) { |
| | | // 申请通过 |
| | | let url = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' |
| | | if (data.file) { |
| | | // 判断是否私有 |
| | | if (data.fileMap[data.file].protectType == 'Private') |
| | | return Message.error({ |
| | | context: this, |
| | | offset: ['20rpx', '32rpx'], |
| | | duration: 5000, |
| | | content: '该文件无法下载' |
| | | this.setData({ |
| | | isShowTeachDownload: true |
| | | }) |
| | | url = url + data.file + '&token=' + wx.getStorageSync('jsek-token') |
| | | } else if (data.freeFile) { |
| | | url = url + data.freeFile + '&token=' + wx.getStorageSync('jsek-token') |
| | | } else { |
| | | Message.error({ |
| | | context: this, |
| | | offset: ['20rpx', '32rpx'], |
| | | duration: 5000, |
| | | content: '暂无资源', |
| | | }) |
| | | } |
| | | this.downloadFile(url) |
| | | } else { |
| | | Message.error({ |
| | | context: this, |
| | | offset: ['20rpx', '32rpx'], |
| | | duration: 5000, |
| | | content: '该资源无法下载', |
| | | }) |
| | | } |
| | | } else if (this.properties.applyState == 'WaitAudit') { |
| | | // ElMessageBox.confirm('请先申请下载!', '尊敬的用户,您好!', { |
| | | // confirmButtonText: '申请', |
| | | // cancelButtonText: '取消', |
| | | // type: 'warning' |
| | | console.log('zhuan', this.data.isShowTeachDownload); |
| | | // const data = e.detail.value |
| | | // // const data |
| | | // // let role = userStore.userInfo ? userStore.userInfo.role : null |
| | | // // if (role) { |
| | | // // if (role == 'Teacher') { |
| | | // if (this.properties.applyState == 'Normal' || this.properties.applyState == 'none') { |
| | | // // 是否允许下载 |
| | | // if (data.isDownload == 1) { |
| | | // // 申请通过 |
| | | // let url = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' |
| | | // if (data.file) { |
| | | // // 判断是否私有 |
| | | // if (data.fileMap[data.file].protectType == 'Private') |
| | | // return Message.error({ |
| | | // context: this, |
| | | // offset: ['20rpx', '32rpx'], |
| | | // duration: 5000, |
| | | // content: '该文件无法下载' |
| | | // }) |
| | | // .then(() => applyBookInfo()) |
| | | // .catch() |
| | | Message.error({ |
| | | context: this, |
| | | offset: ['20rpx', '32rpx'], |
| | | duration: 5000, |
| | | content: '该资源下载申请审核中', |
| | | }) |
| | | } else if (this.properties.applyState == 'Reject') { |
| | | Message.error({ |
| | | context: this, |
| | | offset: ['20rpx', '32rpx'], |
| | | duration: 5000, |
| | | content: '资源下载申请未通过' |
| | | }) |
| | | |
| | | } else { |
| | | // url = url + data.file + '&token=' + wx.getStorageSync('jsek-token') |
| | | // } else if (data.freeFile) { |
| | | // url = url + data.freeFile + '&token=' + wx.getStorageSync('jsek-token') |
| | | // } else { |
| | | // Message.error({ |
| | | // context: this, |
| | | // offset: ['20rpx', '32rpx'], |
| | | // duration: 5000, |
| | | // content: '请先申请下载' |
| | | // content: '暂无资源', |
| | | // }) |
| | | console.log('请先申请下载'); |
| | | } |
| | | // } else { |
| | | // ElMessageBox.confirm('请先进行教师认证!', '尊敬的用户,您好!', { |
| | | // confirmButtonText: '去认证', |
| | | // cancelButtonText: '取消', |
| | | // type: 'warning' |
| | | // }) |
| | | // .then(() => { |
| | | // isShow.value = true |
| | | // }) |
| | | // .catch(() => { }) |
| | | // } |
| | | // this.downloadFile(url) |
| | | // } else { |
| | | // logIn() |
| | | // Message.error({ |
| | | // context: this, |
| | | // offset: ['20rpx', '32rpx'], |
| | | // duration: 5000, |
| | | // content: '该资源无法下载', |
| | | // }) |
| | | // } |
| | | // } else if (this.properties.applyState == 'WaitAudit') { |
| | | // // ElMessageBox.confirm('请先申请下载!', '尊敬的用户,您好!', { |
| | | // // confirmButtonText: '申请', |
| | | // // cancelButtonText: '取消', |
| | | // // type: 'warning' |
| | | // // }) |
| | | // // .then(() => applyBookInfo()) |
| | | // // .catch() |
| | | // Message.error({ |
| | | // context: this, |
| | | // offset: ['20rpx', '32rpx'], |
| | | // duration: 5000, |
| | | // content: '该资源下载申请审核中', |
| | | // }) |
| | | // } else if (this.properties.applyState == 'Reject') { |
| | | // Message.error({ |
| | | // context: this, |
| | | // offset: ['20rpx', '32rpx'], |
| | | // duration: 5000, |
| | | // content: '资源下载申请未通过' |
| | | // }) |
| | | |
| | | // } else { |
| | | // // Message.error({ |
| | | // // context: this, |
| | | // // offset: ['20rpx', '32rpx'], |
| | | // // duration: 5000, |
| | | // // content: '请先申请下载' |
| | | // // }) |
| | | // console.log('请先申请下载'); |
| | | // } |
| | | // // } else { |
| | | // // ElMessageBox.confirm('请先进行教师认证!', '尊敬的用户,您好!', { |
| | | // // confirmButtonText: '去认证', |
| | | // // cancelButtonText: '取消', |
| | | // // type: 'warning' |
| | | // // }) |
| | | // // .then(() => { |
| | | // // isShow.value = true |
| | | // // }) |
| | | // // .catch(() => { }) |
| | | // // } |
| | | // // } else { |
| | | // // logIn() |
| | | // // } |
| | | }, |
| | | downloadFile(url) { |
| | | wx.downloadFile({ |
| | |
| | | shoppingList: res.datas, |
| | | shoppingCartGetId: list |
| | | }) |
| | | console.log('购买', this.data); |
| | | }) |
| | | }, |
| | | // 判断资源加入购物车按钮是否显示 |
| | |
| | | flattenedArray.push(node) |
| | | // 递归处理子节点 |
| | | if (node.children && node.children.length > 0) { |
| | | const childrenArray = handleTreeData(node.children) |
| | | const childrenArray = this.handleTreeData(node.children) |
| | | flattenedArray.push(...childrenArray) |
| | | } |
| | | }) |
| | |
| | | }, |
| | | // 云学习一键领取 |
| | | async getFreeResource() { |
| | | // if (!localStorage.getItem('jsek-token')) { |
| | | // return logIn() |
| | | // } |
| | | let arr = handleTreeData(this.data.learn).filter((item) => resourceIsBuy(item)) |
| | | const child = this.selectComponent('#learn-resource') |
| | | const token = wx.getStorageSync('jsek-token') |
| | | if (!token) { |
| | | return wx.getUserProfile({ |
| | | desc: '用户登录', |
| | | success: (res) => { |
| | | console.log(res); |
| | | } |
| | | }) |
| | | } |
| | | let arr = this.handleTreeData(this.data.learn).filter((item) => this.resourceIsBuy(item)) |
| | | let freeIds = arr.filter((item) => { |
| | | return item.saleMethod[0].Price == 0 |
| | | }) |
| | | if (!freeIds.length) return console.log('暂无免费资源') |
| | | btnLoading.freeBtn = true |
| | | if (!freeIds.length) return wx.showToast({ |
| | | icon: "error", |
| | | title: '暂无免费资源', |
| | | }) |
| | | child.changeReceive(true) |
| | | let requests = [] |
| | | freeIds.forEach((item, index) => { |
| | | if (resourceIsBuy(item)) { |
| | | if (this.resourceIsBuy(item)) { |
| | | requests.push({ |
| | | saleMethodId: item.saleMethod[0].Id, |
| | | count: 1 |
| | |
| | | orderNum: initOrderRes.orderNumber |
| | | } |
| | | // 确认订单 |
| | | const confirmOrderRes = await MG.store.confirmOrder(parameter) |
| | | const confirmOrderRes = await app.MG.store.confirmOrder(parameter) |
| | | if (confirmOrderRes.orderNumber) { |
| | | // btnLoading.freeBtn = false |
| | | console.log('领取成共'); |
| | | child.changeReceive(false) |
| | | wx.showToast({ |
| | | title: '领取成功', |
| | | }) |
| | | this.getBookInfo(this.data.bookId) |
| | | } |
| | | } catch (error) { |
| | | console.log(error) |
| | | } |
| | | }, |
| | | // 云学习一键购买 |
| | | async allAddShoppiingCar() { |
| | | const child = this.selectComponent('#learn-resource') |
| | | const token = wx.getStorageSync('jsek-token') |
| | | if (!token) { |
| | | return wx.getUserProfile({ |
| | | desc: '用户登录', |
| | | success: (res) => { |
| | | console.log(res); |
| | | } |
| | | }) |
| | | } |
| | | let shopList = this.handleTreeData(this.data.learn).filter((item) => this.resourceIsBuy(item)) |
| | | this.getShoppingCartProductGet() |
| | | if (!shopList.length) return wx.showToast({ |
| | | icon: "error", |
| | | title: '已全部购买', |
| | | }) |
| | | child.changeBuy(true) |
| | | let requests = [] |
| | | shopList.forEach((item) => { |
| | | requests.push({ |
| | | saleMethodId: item.saleMethod[0].Id, |
| | | count: 1, |
| | | }) |
| | | }) |
| | | let query = { |
| | | remarks: '云学习', |
| | | requests, |
| | | } |
| | | const initOrderRes = await app.MG.store.initOrder(query) |
| | | child.changeBuy(false) |
| | | // 检查订单号是否存在 |
| | | if (initOrderRes.orderNumber) { |
| | | // bookService: orderNumber.value, 少传这个 ,暂时不知道有什么用 |
| | | wx.navigateTo({ |
| | | url: `/pages/cart/paymentPage/index?&bookId=${this.data.bookDetail.id}&bookName=${this.data.bookDetail.name}&orderNum=${initOrderRes.orderNumber}`, |
| | | }) |
| | | } else { |
| | | // 订单号不存在,显示警告消息 |
| | | wx.showToast({ |
| | | icon: "error", |
| | | title: '请重试', |
| | | }) |
| | | } |
| | | }, |
| | | // 变为所有check true |
| | | findAndUpdateItemsByIds(tree, ids) { |
| | | function findAndUpdate(node) { |
| | | if (ids.includes(node.id)) { |
| | | node.checked = true; // 将目标项的 check 属性设置为 true |
| | | } |
| | | if (node.children && node.children.length > 0) { |
| | | for (let child of node.children) { |
| | | findAndUpdate(child); // 递归处理子节点 |
| | | } |
| | | } |
| | | } |
| | | |
| | | for (let node of tree) { |
| | | findAndUpdate(node); // 对每个顶层节点执行查找和更新操作 |
| | | } |
| | | return tree; // 返回修改后的完整数组 |
| | | }, |
| | | handleTrue() { |
| | | // findAndUpdateItemsByIds(this.date.) |
| | | }, |
| | | |
| | | }) |