| | |
| | | openTeachids: [], |
| | | openLearnids: [], |
| | | openTestids: [], |
| | | applyResourceState: false, // 申请教学资源按钮防抖 |
| | | resourceClassList: [], // 资源所属分类 |
| | | applyState: "", // 教学资源申请状态 |
| | | deadline: "", // 教学资源申请有效日期 |
| | |
| | | mockList: [] // 用户组卷提交信息 |
| | | }, |
| | | flag: true, |
| | | applyResourceLoading: false, |
| | | noResources: false, |
| | | selectedIds: "",//商品或子商品销售方式 |
| | | bookBuy: false, //商品或子商品是否购买 |
| | |
| | | paperBookCount: 0, //纸质书剩余次数 |
| | | ebookCount: 0, //电子书剩余次数 |
| | | userInfo: {}, |
| | | fileInfo: { |
| | | bookName: "", |
| | | fileType: "", |
| | | md5: "", |
| | | freePage: "" |
| | | }, //阅读器数据 |
| | | buyResourceData: { |
| | | productLinkPath: '', |
| | | refCode: '', |
| | | }, |
| | | briefIcon: { |
| | | name: "/static/images/bookService/detail/tushujianjie-g.png" |
| | | }, |
| | | briefIconClick: { |
| | | name: '/static/images/bookService/detail/tushujianjie-click.png' |
| | | }, |
| | | eBookIcon: { |
| | | name: '/static/images/bookService/detail/ebook-g.png' |
| | | }, |
| | | eBookClickIcon: { |
| | | name: '/static/images/bookService/detail/ebook-click.png' |
| | | }, |
| | | teachResourcesIcon: { |
| | | name: '/static/images/bookService/detail/jiaoxueziyuan.png' |
| | | }, |
| | | teachResourcesClickIcon: { |
| | | name: '/static/images/bookService/detail/jiaoxueziyuan-click.png' |
| | | }, |
| | | learnResourceIcon: { |
| | | name: '/static/images/bookService/detail/yunxuexi.png' |
| | | }, |
| | | learnResourceClickIcon: { |
| | | name: '/static/images/bookService/detail/yunxuexi-click.png' |
| | | }, |
| | | testResourceIocn: { |
| | | name: '/static/images/bookService/detail/test-icon-g.png' |
| | | }, |
| | | testResourceClickIocn: { |
| | | name: '/static/images/bookService/detail/test-click-icon.png' |
| | | }, |
| | | noteIcon: { |
| | | name: '/static/images/bookService/detail/biji-icon-g.png' |
| | | }, |
| | | noteClickIcon: { |
| | | name: '/static/images/bookService/detail/biji-click-icon.png' |
| | | }, |
| | | icon1: { |
| | | name: "/static/images/bookService/detail/dangdang.png" |
| | | } |
| | | }, |
| | | |
| | | |
| | |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { |
| | | if (this.data.tabValue == 'jesk_note') { |
| | | if (this.data.tabValue == 'jsek_note') { |
| | | const child = this.selectComponent('#note') |
| | | child.onReachBottom() |
| | | } |
| | |
| | | // 格式化日期 |
| | | formatDate(dateString) { |
| | | if (!dateString) { |
| | | return 'Invalid date'; |
| | | return ''; |
| | | } |
| | | const match = dateString.match(/^(\d{4})\/(\d{1,2})\/(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/); |
| | | if (!match) { |
| | |
| | | }, |
| | | }; |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | console.log(res.datas); |
| | | this.setData({ |
| | | bookDetail: res.datas, |
| | | cmsDatas: res.datas.cmsDatas[0].datas, |
| | |
| | | }); |
| | | this.getSubTtem(); |
| | | // 获取图书分类 |
| | | 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) |
| | | let className = '' |
| | | if (Array.isArray(res.datas.bookClassification) && res.datas.bookClassification.length) { |
| | | const iconType = JSON.parse(res.datas.bookClassification)[0][0]; |
| | | const classType = JSON.parse(res.datas.bookClassification)[0][1]; |
| | | className = await this.getBookClass(iconType, classType) |
| | | } |
| | | // 获取组卷销售id |
| | | if (res.datas.saleMethod && res.datas.saleMethod.length) { |
| | | res.datas.saleMethod.forEach((item) => { |
| | |
| | | this.setData({ |
| | | noFile: true |
| | | }); |
| | | if (res.datas[0].bookshelf_pdf) { |
| | | this.setData({ |
| | | "fileInfo.bookName": this.data.bookDetail.name, |
| | | "fileInfo.fileType": 'pdf', |
| | | "fileInfo.md5": res.datas[0].bookshelf_pdf, |
| | | "fileInfo.freePage": res.datas[0].bookshelf_probationPage, |
| | | }); |
| | | } else if (res.datas[0].bookshelf_protectedEpub) { |
| | | this.setData({ |
| | | "fileInfo.bookName": this.data.bookDetail.name, |
| | | "fileInfo.fileType": 'epub', |
| | | "fileInfo.md5": res.datas[0].bookshelf_protectedEpub, |
| | | "fileInfo.freePage": res.datas[0].bookshelf_freeEpub, |
| | | }); |
| | | } |
| | | } |
| | | } else { |
| | | if (this.data.bookDetail.pdf || this.data.bookDetail.protectedEpub) { |
| | | this.setData({ |
| | | noFile: true |
| | | }); |
| | | if (this.data.bookDetail.pdf) { |
| | | this.setData({ |
| | | "fileInfo.bookName": this.data.bookDetail.name, |
| | | "fileInfo.fileType": 'pdf', |
| | | "fileInfo.md5": this.data.bookDetail.pdf, |
| | | "fileInfo.freePage": this.data.bookDetail.probationPage, |
| | | }); |
| | | } else if (this.data.bookDetail.protectedEpub) { |
| | | this.setData({ |
| | | "fileInfo.bookName": this.data.bookDetail.name, |
| | | "fileInfo.fileType": 'epub', |
| | | "fileInfo.md5": this.data.bookDetail.protectedEpub, |
| | | "fileInfo.freePage": this.data.bookDetail.freeEpubPage, |
| | | }); |
| | | } |
| | | } |
| | | this.setData({ |
| | | selectedIds: this.data.bookDetail.defaultSaleMethodId, |
| | |
| | | if (e.detail.label == '教学资源' || e.detail.label == '云学习' || e.detail.label == '云测试') { |
| | | const checkData = this.data.cmsDatas.find(item => item.refCode == e.detail.value) |
| | | if (checkData) { |
| | | if (e.detail.value == 'jsek_cloudLearning') { |
| | | this.setData({ |
| | | 'buyResourceData.productLinkPath': checkData.productLinkPath, |
| | | 'buyResourceData.refCode': checkData.refCode |
| | | }) |
| | | } |
| | | if ((e.detail.value == 'jsek_teachingResources' && !this.data.teach.length) |
| | | || (e.detail.value == 'jsek_cloudLearning' && !this.data.learn.length) |
| | | || (e.detail.value == 'questionBank' && !this.data.test.length)) { |
| | |
| | | if (token) { |
| | | child.changeLoading() |
| | | child.getNoteList() |
| | | } |
| | | |
| | | } else if (e.detail.label == '电子书') { |
| | | const child = this.selectComponent('#eBook') |
| | | if (child) { |
| | | child.getProgress() |
| | | } |
| | | |
| | | } |
| | |
| | | item.checked = false |
| | | }) |
| | | const list = await this.getAllResource(res.datas.cmsDatas[0].datas) |
| | | let result = [] |
| | | if (type.refCode == 'jsek_teachingResources') { |
| | | this.findChildIds(list, result) |
| | | this.setData({ |
| | | teach: list, |
| | | loading: false |
| | | loading: false, |
| | | openTeachids: result |
| | | }) |
| | | this.findChildIds(this.data.teach, this.data.openTeachids = []) |
| | | console.log('教学资源', this.data.teach, this.data.applyState); |
| | | } else if (type.refCode == 'jsek_cloudLearning') { |
| | | res.datas.cmsDatas[0].datas.forEach(item => { |
| | | item.checked = false |
| | | }) |
| | | const list = await this.getAllResource(res.datas.cmsDatas[0].datas) |
| | | // res.datas.cmsDatas[0].datas.forEach(item => { |
| | | // item.checked = false |
| | | // }) |
| | | // const list = await this.getAllResource(res.datas.cmsDatas[0].datas) |
| | | this.findChildIds(list, result) |
| | | this.setData({ |
| | | learn: list, |
| | | loading: false |
| | | loading: false, |
| | | openLearnids: result |
| | | }) |
| | | this.findChildIds(this.data.learn, this.data.openLearnids = []) |
| | | } |
| | | } else { |
| | | // 无数据 |
| | |
| | | isDownload: [], |
| | | jsek_resourceBrief: [], |
| | | jsek_link: [], |
| | | accessType: [] |
| | | accessType: [], |
| | | learnSelectType: [] |
| | | }, |
| | | pading: { |
| | | start: 0, |
| | |
| | | for (let i = 0; i < data.length; i++) { |
| | | if (index < 3) { |
| | | const item = data[i] |
| | | if (item.childrenFolderCount > 0) { |
| | | if (item.children && item.children.length > 0) { |
| | | result.push(item.id) |
| | | for (let j = 0; j < item.children.length; j++) { |
| | | if (index < 3) { |
| | | const childrenItme = item.children[j] |
| | | if (item.childrenCount > 0) { |
| | | if (item.children && item.children.length > 0) { |
| | | result.push(childrenItme.id) |
| | | index += 1 |
| | | } |
| | |
| | | break |
| | | } |
| | | } |
| | | } else if (item.childrenCount > 0) { |
| | | } else if (item.children && item.children.length > 0) { |
| | | result.push(item.id) |
| | | index += 1 |
| | | } |
| | |
| | | |
| | | // 图书添加购物车 |
| | | async addBookShopcCar() { |
| | | const token = wx.getStorageSync('jsek-token') |
| | | if (!token) { |
| | | return wx.getUserProfile({ |
| | | desc: '用户登录', |
| | | success: (res) => { |
| | | console.log(res); |
| | | |
| | | if (!this.data.expire) { |
| | | |
| | | const token = wx.getStorageSync('jsek-token') |
| | | if (!token) { |
| | | return wx.getUserProfile({ |
| | | desc: '用户登录', |
| | | success: (res) => { |
| | | console.log(res); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const shoppingCartGetId = [] |
| | | |
| | | let query = { |
| | | start: 0, |
| | | size: 9999, |
| | | filterList: [], |
| | | searchList: [] |
| | | } |
| | | const res = await app.MG.store.getShoppingCartProductList(query) |
| | | res.datas.forEach((item) => { |
| | | shoppingCartGetId.push(item.saleMethod.id) |
| | | }) |
| | | console.log(shoppingCartGetId, 'shoppingCartGetId'); |
| | | console.log(this.data.selectedIds, '销售方式id'); |
| | | const determine = shoppingCartGetId.some((item) => item == this.data.selectedIds) |
| | | console.log(determine); |
| | | if (!determine) { |
| | | let query = { |
| | | requests: [ |
| | | { |
| | | saleMethodId: this.data.selectedIds, |
| | | storeEventId: null, |
| | | agentCode: '电子书' |
| | | } |
| | | ] |
| | | } |
| | | const addRes = app.MG.store.addShoppingCart(query) |
| | | this.showSuccessToast() |
| | | |
| | | } else { |
| | | Toast({ |
| | | context: this, |
| | | selector: '#t-toast', |
| | | message: '已添加', |
| | | theme: 'success', |
| | | direction: 'column', |
| | | }); |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: "商品不在有效期", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | |
| | | const shoppingCartGetId = [] |
| | | |
| | | let query = { |
| | | start: 0, |
| | | size: 999, |
| | | filterList: [], |
| | | searchList: [] |
| | | } |
| | | const res = await app.MG.store.getShoppingCartProductList(query) |
| | | res.datas.forEach((item) => { |
| | | shoppingCartGetId.push(item.saleMethod.id) |
| | | }) |
| | | console.log(shoppingCartGetId, 'shoppingCartGetId'); |
| | | console.log(this.data.selectedIds, '销售方式id'); |
| | | const determine = shoppingCartGetId.some((item) => item == this.data.selectedIds) |
| | | console.log(determine); |
| | | if (!determine) { |
| | | let query = { |
| | | requests: [ |
| | | { |
| | | saleMethodId: this.data.selectedIds, |
| | | storeEventId: null, |
| | | agentCode: '电子书' |
| | | } |
| | | ] |
| | | } |
| | | const addRes = app.MG.store.addShoppingCart(query) |
| | | this.showSuccessToast() |
| | | |
| | | } else { |
| | | Toast({ |
| | | context: this, |
| | | selector: '#t-toast', |
| | | message: '已添加', |
| | | theme: 'success', |
| | | direction: 'column', |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | |
| | |
| | | }); |
| | | }, |
| | | |
| | | |
| | | |
| | | async buyBook() { |
| | | console.log(this.data.bookItemDetail.defaultSaleMethodId, 'this.data.bookItemDetail.defaultSaleMethodId'); |
| | | if (!this.data.expire) { |
| | | let bookOrdersId = '' |
| | | let query = { |
| | |
| | | }, |
| | | |
| | | // 获取教学资源下载是否申请通过 |
| | | getApplyInfo(id) { |
| | | async getApplyInfo(id) { |
| | | // 获取当前时间 |
| | | const currentDate = new Date() |
| | | let query = { |
| | |
| | | appRefCode: app.config.appRefCode, |
| | | topicIdOrRefCode: 'productDownLoad' |
| | | } |
| | | app.MG.ugc.getTopicMessageList(query).then((res) => { |
| | | await app.MG.ugc.getTopicMessageList(query).then((res) => { |
| | | const applyResource = res.datas.find((item) => { |
| | | let content = [] |
| | | try { |
| | |
| | | } |
| | | }) |
| | | this.setData({ |
| | | applyResourceLoading: false |
| | | applyResourceState: false, |
| | | }) |
| | | wx.hideLoading() |
| | | }, |
| | | // 申请教学资源 |
| | | applyResource() { |
| | | if (this.data.applyResourceState) { |
| | | return wx.showToast({ |
| | | icon: 'error', |
| | | title: '请勿重复点击', |
| | | }) |
| | | } |
| | | this.setData({ |
| | | applyResourceLoading: true |
| | | applyResourceState: true |
| | | }) |
| | | wx.showLoading({ |
| | | title: '加载中', |
| | | }) |
| | | // let role = userStore.userInfo ? userStore.userInfo.role : null |
| | | // if (role) { |
| | |
| | | } |
| | | ]) |
| | | } |
| | | app.MG.ugc.newTopicMessage(query).then((res) => { |
| | | app.MG.ugc.newTopicMessage(query).then(async (res) => { |
| | | if (res) { |
| | | wx.showToast({ |
| | | title: '申请已提交,请待审核通过后下载', |
| | | }) |
| | | } |
| | | this.getApplyInfo(this.data.bookDetail.id) |
| | | await this.getApplyInfo(this.data.bookDetail.id) |
| | | }) |
| | | // } else { |
| | | // ElMessageBox.confirm('请先进行教师认证!', '尊敬的用户,您好!', { |
| | |
| | | keys: [this.data.bookId] |
| | | }) |
| | | .then((res) => { |
| | | console.log(JSON.parse(res[0].value)); |
| | | if (res && res.length) { |
| | | const mock = JSON.parse(res[0].value) |
| | | mock.forEach(item => { |
| | |
| | | } |
| | | }, |
| | | |
| | | goRead() { |
| | | if (!this.data.noFile) { |
| | | wx.showToast({ |
| | | title: '暂无阅读文件', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }) |
| | | return false; |
| | | } |
| | | wx.navigateTo({ |
| | | url: '/packageBookService/pages/components/webView/index?md5=' + this.data.fileInfo.md5 + '&fileName=' + this.data.fileInfo.bookName + '&fileType=' + this.data.fileInfo.fileType + '&freePage=' + this.data.fileInfo.freePage |
| | | }) |
| | | |
| | | }, |
| | | |
| | | //样书申请 |
| | | //申请电子样书 |
| | | appplyElectronicBook() { |
| | | console.log(this.data.bookDetail) |
| | | if (this.data.bookDetail.isApplyBook == 2 || this.data.bookDetail.isApplyBook == 4) { |
| | | |
| | | let role = this.data.userInfo != null ? this.data.userInfo.role : null |
| | | if (role) { |
| | | if (role == 'Teacher') { |
| | |
| | | }) |
| | | } |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: "该书不能申请电子样书", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | }, |
| | | //申请纸质样书 |
| | |
| | | }) |
| | | } |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: "该书不能申请纸质样书", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | }, |
| | | //获取当前已申请次数(纸质) |
| | |
| | | url: "/packageDomain/pages/sampleBookList/applicationForm/index", |
| | | }); |
| | | }, |
| | | |
| | | handleTree() { |
| | | // const child = this.selectComponent('#teach-tree') |
| | | let tree |
| | | // let openIds = child.data.openIds |
| | | if (this.data.tabValue == 'jsek_teachingResources') { |
| | | tree = this.data.teach |
| | | } else { |
| | | tree = this.data.learn |
| | | } |
| | | for (let index = 0; index < tree.length; index++) { |
| | | const item = tree[index]; |
| | | if (item.children && item.children.length > 0) { |
| | | const num = this.data.openTeachids.findIndex(citem => item.id == citem) |
| | | if (num >= 0) { |
| | | item.open = true |
| | | } else { |
| | | item.open = false |
| | | } |
| | | this.handleTree(item.children) |
| | | } |
| | | } |
| | | this.setData({ |
| | | teach: tree |
| | | }) |
| | | }, |
| | | }) |