| | |
| | | name: '', |
| | | }, |
| | | bookDetail: {}, |
| | | bookItemDetail: {}, |
| | | link: { |
| | | jd: '', |
| | | tamll: '', |
| | |
| | | }, |
| | | flag: true, |
| | | applyResourceLoading: false, |
| | | noResources: false |
| | | noResources: false, |
| | | selectedIds: "",//商品或子商品销售方式 |
| | | bookBuy: false, //商品或子商品是否购买 |
| | | expire: false,//商品或子商品销售方式是否过期 |
| | | noFile: false, //商品或子商有无电子书文件 |
| | | num: 0, //样书申请单数量 |
| | | alreadyPaperBookList: [], //已申请纸质样书 |
| | | alreadyElectronicBookList: [], //已申请电子样书 |
| | | paperBookList: [], //样书单纸质书 |
| | | electronicBookList: [], //样书单电子书 |
| | | paperBookCount: 0, //纸质书剩余次数 |
| | | ebookCount: 0, //电子书剩余次数 |
| | | userInfo: {}, |
| | | }, |
| | | |
| | | |
| | |
| | | name: options.name, |
| | | }, |
| | | }); |
| | | |
| | | this.getBookInfo(options.id); |
| | | this.getResourceClass() // 获取资源所属分类 |
| | | const token = wx.getStorageSync('jsek-token') |
| | |
| | | this.getApplyInfo(options.id) |
| | | this.getMockData() |
| | | } |
| | | if (wx.getStorageSync(app.config.userInfoKey)) { |
| | | this.setData({ |
| | | userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey)) |
| | | }) |
| | | } |
| | | if (wx.getStorageSync("paperBookList")) { |
| | | this.setData({ |
| | | paperBookList: wx.getStorageSync("paperBookList"), |
| | | }) |
| | | } |
| | | if (wx.getStorageSync("electronicBookList")) { |
| | | this.setData({ |
| | | electronicBookList: wx.getStorageSync("electronicBookList"), |
| | | }) |
| | | } |
| | | this.setData({ |
| | | num: this.data.paperBookList.length + this.data.electronicBookList.length |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | |
| | | cmsDatas: res.datas.cmsDatas[0].datas, |
| | | buyIdList: res.datas.purchasedSaleMethodIdList |
| | | }); |
| | | this.getSubTtem(); |
| | | // 获取图书分类 |
| | | const iconType = JSON.parse(res.datas.bookClassification)[0][0]; |
| | | const classType = JSON.parse(res.datas.bookClassification)[0][1]; |
| | |
| | | console.log('图书信息', this.data.bookDetail); |
| | | }); |
| | | |
| | | }, |
| | | //请求子商品的文件 |
| | | getSubTtem() { |
| | | const obj = { |
| | | path: '*', |
| | | queryType: 'SubProduct', |
| | | sort: { |
| | | type: 'Desc', |
| | | field: 'CreateDate' |
| | | }, |
| | | paging: { |
| | | start: 0, |
| | | size: 6 |
| | | }, |
| | | mainProductId: this.data.bookDetail.id, |
| | | fields: { |
| | | author: [], |
| | | bookshelf_pdf: [], |
| | | bookshelf_protectedEpub: [], |
| | | bookshelf_freeEpub: [], //epub试读百分比 |
| | | bookshelf_probationPage: [] //pdf试读页数 |
| | | } |
| | | } |
| | | app.MG.store.getProductList(obj).then((res) => { |
| | | if (res.datas && res.datas.length > 0) { |
| | | this.setData({ |
| | | bookItemDetail: res.datas[0], |
| | | selectedIds: res.datas[0].defaultSaleMethod.id, |
| | | bookBuy: res.datas[0].purchasedSaleMethodIdList.indexOf(res.datas[0].defaultSaleMethodId) > -1 |
| | | }); |
| | | console.log(this.data.bookItemDetail, 'bookItemData.value'); |
| | | let times = new Date(res.datas[0].defaultSaleMethod.endDate).getTime() |
| | | let startTime = new Date(res.datas[0].defaultSaleMethod.beginDate).getTime() |
| | | if (times < new Date().getTime() || new Date().getTime() < startTime) { |
| | | this.setData({ |
| | | expire: true |
| | | }); |
| | | } else { |
| | | this.setData({ |
| | | expire: false |
| | | }); |
| | | } |
| | | if (res.datas[0].bookshelf_pdf || res.datas[0].bookshelf_protectedEpub) { |
| | | this.setData({ |
| | | noFile: true |
| | | }); |
| | | } |
| | | } else { |
| | | if (this.data.bookDetail.pdf || this.data.bookDetail.protectedEpub) { |
| | | this.setData({ |
| | | noFile: true |
| | | }); |
| | | } |
| | | this.setData({ |
| | | selectedIds: this.data.bookDetail.defaultSaleMethodId, |
| | | bookBuy: this.data.bookDetail.purchasedSaleMethodIdList.indexOf(this.data.bookDetail.defaultSaleMethodId) > -1 |
| | | }); |
| | | let times = new Date(this.data.bookDetail.defaultSaleMethod.endDate).getTime() |
| | | let startTime = new Date(this.data.bookDetail.defaultSaleMethod.beginDate).getTime() |
| | | if (times < new Date().getTime() || new Date().getTime() < startTime) { |
| | | this.setData({ |
| | | expire: true |
| | | }); |
| | | } else { |
| | | this.setData({ |
| | | expire: false |
| | | }); |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // 获取图书分类 |
| | | async getBookClass(iconType, classType) { |
| | |
| | | |
| | | // 图书添加购物车 |
| | | async addBookShopcCar() { |
| | | |
| | | const token = wx.getStorageSync('jsek-token') |
| | | if (!token) { |
| | | return wx.getUserProfile({ |
| | |
| | | shoppingCartGetId.push(item.saleMethod.id) |
| | | }) |
| | | console.log(shoppingCartGetId, 'shoppingCartGetId'); |
| | | console.log(this.data.bookDetail.defaultSaleMethodId, 'this.data.bookDetail.defaultSaleMethodId'); |
| | | const determine = shoppingCartGetId.some((item) => item == this.data.bookDetail.defaultSaleMethodId) |
| | | 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.bookDetail.defaultSaleMethodId, |
| | | saleMethodId: this.data.selectedIds, |
| | | storeEventId: null, |
| | | agentCode: '电子书' |
| | | } |
| | |
| | | |
| | | |
| | | async buyBook() { |
| | | if (!this.data.expire) { |
| | | let bookOrdersId = '' |
| | | let query = { |
| | | remarks: '电子书', |
| | | requests: [ |
| | | { |
| | | saleMethodId: this.data.bookDetail.defaultSaleMethodId, |
| | | saleMethodId: this.data.bookItemDetail.defaultSaleMethodId ? this.data.bookItemDetail.defaultSaleMethodId : this.data.bookDetail.defaultSaleMethodId, |
| | | count: 1 |
| | | } |
| | | ] |
| | |
| | | } else { |
| | | console.log(222); |
| | | } |
| | | |
| | | } else { |
| | | wx.showToast({ |
| | | title: "商品不在有效期", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 获取教学资源下载是否申请通过 |
| | |
| | | } |
| | | else if (this.data.tabValue == 'jsek_cloudLearning') { |
| | | const tree = this.selectComponent('#tree') |
| | | |
| | | tree.onCloudShoppingCart() |
| | | |
| | | |
| | | } else if (this.data.tabValue == 'questionBank') { |
| | | this.buyMock() |
| | | } else { |
| | |
| | | } |
| | | }, |
| | | |
| | | //样书申请 |
| | | //申请电子样书 |
| | | 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') { |
| | | if (this.data.noFile) { |
| | | this.getSelectBookCount() |
| | | } else { |
| | | wx.showToast({ |
| | | title: "暂无电子书文件,请联系管理员!", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | } else { |
| | | wx.showModal({ |
| | | title: '尊敬的用户,您好!', //提示的标题 |
| | | content: '请先进行教师认证?', //提示的内容 |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |
| | | url: "/packageDomain/pages/teacherCertification/index", |
| | | }); |
| | | } else if (res.cancel) { |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | //申请纸质样书 |
| | | appplyPaperBook() { |
| | | if (this.data.bookDetail.isApplyBook == 3 || this.data.bookDetail.isApplyBook == 4) { |
| | | let role = this.data.userInfo != null ? this.data.userInfo.role : null |
| | | if (role) { |
| | | if (role == 'Teacher') { |
| | | this.getSelectPaperBookCount() |
| | | } else { |
| | | wx.showModal({ |
| | | title: '尊敬的用户,您好!', //提示的标题 |
| | | content: '请先进行教师认证?', //提示的内容 |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |
| | | url: "/packageDomain/pages/teacherCertification/index", |
| | | }); |
| | | } else if (res.cancel) { |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | //获取当前已申请次数(纸质) |
| | | getSelectPaperBookCount() { |
| | | app.MG.app |
| | | .getTicketResult({ |
| | | ticketRefCodeOrGuid: 'paperSampleBookapplyNum', |
| | | roleId: this.data.userInfo.roleId |
| | | }) |
| | | .then((res) => { |
| | | this.setData({ |
| | | paperBookCount: res.totalCount - res.usedCount |
| | | }) |
| | | this.getAlreadyBookList(this.data.bookDetail, 'pBook') |
| | | }) |
| | | }, |
| | | //获取当前已申请次数(电子) |
| | | getSelectBookCount() { |
| | | app.MG.app |
| | | .getTicketResult({ |
| | | ticketRefCodeOrGuid: 'electronicSampleBookapplyNum', |
| | | roleId: this.data.userInfo.roleId |
| | | }) |
| | | .then((res) => { |
| | | this.setData({ |
| | | ebookCount: res.totalCount - res.usedCount |
| | | }) |
| | | this.getAlreadyBookList(this.data.bookDetail, 'eBook') |
| | | }) |
| | | }, |
| | | //获取已申请的样书列表 |
| | | getAlreadyBookList(item, type) { |
| | | let topicIdOrRefCode = null |
| | | if (type == 'eBook') { |
| | | topicIdOrRefCode = 'applyBook' |
| | | } else { |
| | | topicIdOrRefCode = 'applyEntityBook' |
| | | } |
| | | const data = { |
| | | start: 0, |
| | | size: 9999, |
| | | topicIdOrRefCode, |
| | | appRefCode: app.config.appRefCode, |
| | | sort: { |
| | | type: 'Desc', |
| | | field: 'CreateDate' |
| | | } |
| | | } |
| | | app.MG.ugc.getTopicMessageList(data).then((res) => { |
| | | let itemAttr = null |
| | | let isHas = false |
| | | itemAttr = { |
| | | id: item.id, |
| | | title: item.name || '--', |
| | | icon: item.icon, |
| | | checked: false, |
| | | defaultSaleMethodId: item.defaultSaleMethodId, |
| | | md5: item.datas.Icon, |
| | | author: item.author || '--', |
| | | price: item.price || '--', |
| | | isbn: item.isbn || '--', |
| | | publicationDate: item.publicationDate |
| | | } |
| | | res.datas.map((item) => { |
| | | if (item.feedBack) { |
| | | item.feedBack = JSON.parse(item.feedBack) |
| | | if (item.feedBack.endDate) { |
| | | const currentDate = new Date() |
| | | let times = new Date(item.feedBack.endDate + ' 23:59:59').getTime() |
| | | if (times < currentDate.getTime()) { |
| | | item.isExpiry = true |
| | | } |
| | | } |
| | | } |
| | | if (item.content) { |
| | | item.content = JSON.parse(item.content) |
| | | item.content.map((e) => (item.productId = e.id)) |
| | | } |
| | | }) |
| | | let objVal = null |
| | | if (type != 'eBook') { |
| | | objVal = res.datas.find( |
| | | (i) => i.productId == item.id && i.state != 'Reject' && i.state == 'WaitAudit' |
| | | ) |
| | | } else { |
| | | objVal = res.datas.find((i) => i.productId == item.id && i.state != 'Reject') |
| | | } |
| | | if (objVal && !objVal.isExpiry && type == 'eBook') { |
| | | wx.showToast({ |
| | | title: "您已申请该样书", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } else if (objVal && type != 'eBook') { |
| | | wx.showToast({ |
| | | title: "您已申请该样书", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } else { |
| | | if (type == 'eBook') { |
| | | if (this.data.ebookCount > 0) { |
| | | const eBookData = this.data.electronicBookList |
| | | if (eBookData.length == 2) { |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | return false |
| | | } |
| | | if (eBookData.length > 0) { |
| | | for (let i = 0; i < eBookData.length; i++) { |
| | | if (eBookData[i].id == item.id) { |
| | | isHas = true |
| | | } |
| | | } |
| | | if (!isHas) { |
| | | wx.showToast({ |
| | | title: "添加成功,在样书申请单等您哦~", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | electronicBookList: [...this.data.electronicBookList, ...[itemAttr]], |
| | | num: this.data.electronicBookList.length + this.data.paperBookList.length |
| | | }) |
| | | wx.setStorageSync("electronicBookList", this.data.electronicBookList); |
| | | } else { |
| | | wx.showToast({ |
| | | title: "该书已在清单列表中", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: "添加成功,在样书申请单等您哦~", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | electronicBookList: [itemAttr], |
| | | num: 1 + this.data.paperBookList.length |
| | | }) |
| | | wx.setStorageSync("electronicBookList", [itemAttr]); |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: "您的电子样书申请次数已用尽,若要继续,请联系管理员!", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | } else { |
| | | if (this.data.paperBookCount > 0) { |
| | | const pBookData = this.data.paperBookList |
| | | if (pBookData.length == 2) { |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | return false |
| | | } |
| | | if (pBookData.length > 0) { |
| | | for (let i = 0; i < pBookData.length; i++) { |
| | | if (pBookData[i].id == item.id) { |
| | | isHas = true |
| | | } |
| | | } |
| | | if (!isHas) { |
| | | wx.showToast({ |
| | | title: "添加成功,在样书申请单等您哦~", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | paperBookList: [...this.data.paperBookList, ...[itemAttr]], |
| | | num: this.data.paperBookList.lenght + this.data.electronicBookList.length |
| | | }) |
| | | wx.setStorageSync("paperBookList", this.data.paperBookList); |
| | | } else { |
| | | wx.showToast({ |
| | | title: "该书已在清单列表中", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: "添加成功,在样书申请单等您哦~", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | this.setData({ |
| | | paperBookList: [itemAttr], |
| | | num: 1 + this.data.electronicBookList.length |
| | | }) |
| | | wx.setStorageSync("paperBookList", [itemAttr]); |
| | | } |
| | | } else { |
| | | wx.showToast({ |
| | | title: "您的纸质样书申请次数已用尽,若要继续,请联系管理员!", |
| | | icon: 'none', |
| | | duration: 1000, |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | //去样书申请单 |
| | | goApply() { |
| | | wx.navigateTo({ |
| | | url: "/packageDomain/pages/sampleBookList/applicationForm/index", |
| | | }); |
| | | }, |
| | | |
| | | }) |