| | |
| | | name: "", |
| | | }, |
| | | bookDetail: {}, |
| | | bookClass: [], |
| | | bookItemDetail: {}, |
| | | link: { |
| | | jd: "", |
| | |
| | | icon1: { |
| | | name: "/static/images/bookService/detail/dangdang.png", |
| | | }, |
| | | rowCol: [{ |
| | | width: '50%', |
| | | }, |
| | | { |
| | | width: '100%' |
| | | }, |
| | | { |
| | | width: '80%' |
| | | }, |
| | | { |
| | | width: '100%' |
| | | }, { |
| | | width: '100%' |
| | | }, |
| | | ], |
| | | showIndex: '' |
| | | }, |
| | | |
| | | resetTree: function (e) { |
| | |
| | | name: options.name, |
| | | }, |
| | | }); |
| | | wx.setNavigationBarTitle({ |
| | | title: options.name, |
| | | }) |
| | | this.getBookInfo(options.id); |
| | | this.getResourceClass(); // 获取资源所属分类 |
| | | const token = wx.getStorageSync(app.config.tokenKey); |
| | | if (token) { |
| | | this.getShoppingCartProductGet(); |
| | | this.getApplyInfo(options.id); |
| | | this.getMockData(); |
| | | this.getAlreadyPBookList(); |
| | | this.getAlreadyEBookList(); |
| | | } |
| | |
| | | onShow() { |
| | | if (wx.getStorageSync("paperBookList")) { |
| | | this.setData({ |
| | | paperBookList: wx.getStorageSync("paperBookList"), |
| | | paperBookList: JSON.parse(wx.getStorageSync("paperBookList")), |
| | | }); |
| | | } |
| | | if (wx.getStorageSync("electronicBookList")) { |
| | | this.setData({ |
| | | electronicBookList: wx.getStorageSync("electronicBookList"), |
| | | electronicBookList: JSON.parse(wx.getStorageSync("electronicBookList")), |
| | | }); |
| | | } |
| | | this.setData({ |
| | | num: this.data.paperBookList.length + this.data.electronicBookList.length, |
| | | num: Number(this.data.paperBookList.length) + Number(this.data.electronicBookList.length), |
| | | }); |
| | | }, |
| | | |
| | |
| | | onReachBottom() { |
| | | if (this.data.tabValue == "jsek_note") { |
| | | const child = this.selectComponent("#note"); |
| | | child.onReachBottom(); |
| | | if (!child.data.noList) child.onReachBottom(); |
| | | } |
| | | }, |
| | | |
| | |
| | | }, |
| | | // 返回 |
| | | goBack() { |
| | | wx.navigateBack(); |
| | | let bookPathList = wx.getStorageSync("bookPathList"); |
| | | if (bookPathList && JSON.parse(bookPathList).length) { |
| | | bookPathList = JSON.parse(bookPathList); |
| | | this.setData({ |
| | | pageLoading: true, |
| | | tabValue: "brief", |
| | | }); |
| | | this.onLoad(bookPathList[bookPathList.length - 1]); |
| | | bookPathList.pop(); |
| | | wx.setStorageSync("bookPathList", JSON.stringify(bookPathList)); |
| | | } else { |
| | | wx.navigateBack(); |
| | | } |
| | | }, |
| | | // 获取图书详情 |
| | | getBookInfo(id) { |
| | |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | this.setData({ |
| | | bookDetail: res.datas, |
| | | cmsDatas: res.datas.cmsDatas[0].datas, |
| | | buyIdList: res.datas.purchasedSaleMethodIdList, |
| | | relatedBookPath: JSON.parse(res.datas.datas.ProductLinkInfo)[0] |
| | | .LinkPath, |
| | | |
| | | }); |
| | | if (res.datas.cmsDatas && res.datas.cmsDatas.length) { |
| | | this.setData({ |
| | | cmsDatas: res.datas.cmsDatas[0].datas, |
| | | }) |
| | | } |
| | | if (res.datas.datas.ProductLinkInfo) { |
| | | if (JSON.parse(res.datas.datas.ProductLinkInfo).length) this.setData({ |
| | | relatedBookPath: JSON.parse(res.datas.datas.ProductLinkInfo)[0] |
| | | .LinkPath, |
| | | }) |
| | | } |
| | | this.getSubTtem(); |
| | | // 获取图书分类 |
| | | 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); |
| | | if (res.datas.bookClassification) { |
| | | const bookClassification = JSON.parse(res.datas.bookClassification); |
| | | if (Array.isArray(bookClassification) && bookClassification.length) { |
| | | for (let index = 0; index < bookClassification.length; index++) { |
| | | const element = bookClassification[index]; |
| | | const iconType = element[0]; |
| | | const classType = element[1]; |
| | | await this.getBookClass(iconType, classType); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 获取组卷销售id |
| | | if (res.datas.saleMethod && res.datas.saleMethod.length) { |
| | | res.datas.saleMethod.forEach((item) => { |
| | |
| | | "bookDetail.publicationDate": this.formatDate( |
| | | this.data.bookDetail.publicationDate |
| | | ), |
| | | "bookDetail.class": className, |
| | | "bookDetail.price": this.numFormat(this.data.bookDetail.price), |
| | | "bookDetail.oldPrice": this.numFormat(this.data.bookDetail.oldPrice), |
| | | "bookDetail.paperPrice": this.numFormat( |
| | |
| | | ), |
| | | pageLoading: false, |
| | | }); |
| | | console.log("图书信息", this.data.bookDetail); |
| | | console.log("图书信息", this.data.bookClass); |
| | | }); |
| | | }, |
| | | //请求子商品的文件 |
| | |
| | | }; |
| | | app.MG.store.getProductList(obj).then((res) => { |
| | | if (res.datas && res.datas.length > 0) { |
| | | console.log(res.datas[0], 2) |
| | | this.setData({ |
| | | bookItemDetail: res.datas[0], |
| | | selectedIds: res.datas[0].defaultSaleMethod.id, |
| | |
| | | if (item.value == iconType) { |
| | | item.child.forEach((citem) => { |
| | | if (citem.value == classType) { |
| | | name = citem.name; |
| | | const flag = this.data.bookClass.findIndex((ditem) => ditem == citem.name) |
| | | if (flag == -1) { |
| | | let list = this.data.bookClass |
| | | list.push(citem.name) |
| | | this.setData({ |
| | | bookClass: list |
| | | }) |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | return name; |
| | | }, |
| | | // 收藏 |
| | | setCollect() { |
| | |
| | | // 检查登录状态 |
| | | const token = wx.getStorageSync(app.config.tokenKey); |
| | | const child = this.selectComponent("#suggest-component"); |
| | | if (!token) { |
| | | wx.showLoading({ |
| | | title: "加载中", |
| | | }); |
| | | loginInfo(app, (data) => { |
| | | // 如果不是第一次登录,会执行回调 |
| | | if (data) { |
| | | // 登录成功,自动记录token和用户信息,并返回true |
| | | child.showDialog(); |
| | | wx.hideLoading(); |
| | | } else { |
| | | // 出现错误,返回false |
| | | } |
| | | }); |
| | | } else { |
| | | // 如果是第一次登录,会跳转至绑定用户信息页面,填写完用户信息后进行登录并储存token和用户信息,结束后跳转回当前页面(携带页面参数) |
| | | child.showDialog(); |
| | | } |
| | | if (token) |
| | | // child.showDialog(); |
| | | this.setData({ |
| | | showIndex: '1' |
| | | }) |
| | | }, |
| | | // 跳转网店 |
| | | goShop(e) { |
| | |
| | | }, |
| | | // tag切换 |
| | | onTabsChange(e) { |
| | | const token = wx.getStorageSync(app.config.tokenKey); |
| | | this.setData({ |
| | | tabValue: e.detail.value, |
| | | noResources: false, |
| | |
| | | (e.detail.value == "jsek_cloudLearning" && !this.data.learn.length) || |
| | | (e.detail.value == "questionBank" && !this.data.test.length) |
| | | ) { |
| | | if (e.detail.value == "jsek_teachingResources") { |
| | | wx.setStorageSync('teachResourcesPath', checkData.productLinkPath) |
| | | } |
| | | this.getResourceData(checkData); |
| | | } |
| | | if (e.detail.value == "questionBank" && token) this.getMockData(); |
| | | } else { |
| | | this.setData({ |
| | | noResources: true, |
| | |
| | | if (token) { |
| | | child.changeLoading(); |
| | | child.getNoteList(); |
| | | } else { |
| | | child.changeNoList(); |
| | | } |
| | | } else if (e.detail.label == "电子书") { |
| | | const child = this.selectComponent("#eBook"); |
| | |
| | | const list = await this.getAllResource(res.datas.cmsDatas[0].datas); |
| | | let result = []; |
| | | if (type.refCode == "jsek_teachingResources") { |
| | | console.log("教学资源", list); |
| | | this.findChildIds(list, result); |
| | | this.setData({ |
| | | teach: list, |
| | |
| | | }, |
| | | }; |
| | | let data = await app.MG.store.getProductDetail(query); |
| | | // 如果item层级里有floder,删除floder |
| | | const flag = data.datas.cmsDatas[0].datas.findIndex( |
| | | (item) => item.sysType == "CmsItem" |
| | | ); |
| | |
| | | item.disabled = true; |
| | | } |
| | | } |
| | | if (item.file) { |
| | | if (item.file && item.fileMap && item.fileMap[item.file]) { |
| | | if (item.fileMap[item.file].protectType == "Private") |
| | | item.disabled = true; |
| | | } |
| | |
| | | item.checked = false; |
| | | } else if (this.data.tabValue == "jsek_cloudLearning") { |
| | | item.checked = false; |
| | | item.isbuy = this.resourceIsBuy(item); |
| | | item.isbuy = this.isShowNeedBuy(item); |
| | | item.isShopCar = this.isShoppingCart(item); |
| | | } |
| | | }); |
| | |
| | | }, |
| | | // 获取展开项 |
| | | findChildIds(data, result) { |
| | | let index = 0; |
| | | let index = 0 |
| | | for (let i = 0; i < data.length; i++) { |
| | | if (index < 3) { |
| | | const item = data[i]; |
| | | if (item.children && item.children.length > 0) { |
| | | result.push(item.id); |
| | | const item = data[i] |
| | | if (item.childrenFolderCount > 0) { |
| | | result.push(item.id) |
| | | for (let j = 0; j < item.children.length; j++) { |
| | | if (index < 3) { |
| | | const childrenItme = item.children[j]; |
| | | if (item.children && item.children.length > 0) { |
| | | result.push(childrenItme.id); |
| | | index += 1; |
| | | const childrenItme = item.children[j] |
| | | if (item.childrenCount > 0) { |
| | | result.push(childrenItme.id) |
| | | index += 1 |
| | | } |
| | | } else { |
| | | break; |
| | | break |
| | | } |
| | | } |
| | | } else if (item.children && item.children.length > 0) { |
| | | result.push(item.id); |
| | | index += 1; |
| | | } else if (item.childrenCount > 0) { |
| | | result.push(item.id) |
| | | index += 1 |
| | | } |
| | | } else { |
| | | break; |
| | | break |
| | | } |
| | | } |
| | | }, |
| | |
| | | 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: [{ |
| | |
| | | }, |
| | | |
| | | async buyBook() { |
| | | console.log( |
| | | this.data.bookItemDetail.defaultSaleMethodId, |
| | | "this.data.bookItemDetail.defaultSaleMethodId" |
| | | ); |
| | | if (!this.data.expire) { |
| | | let bookOrdersId = ""; |
| | | let query = { |
| | | remarks: "电子书", |
| | | requests: [{ |
| | | saleMethodId: this.data.bookItemDetail.defaultSaleMethodId ? |
| | | this.data.bookItemDetail.defaultSaleMethodId : |
| | | this.data.bookDetail.defaultSaleMethodId, |
| | | this.data.bookItemDetail.defaultSaleMethodId : this.data.bookDetail.defaultSaleMethodId, |
| | | count: 1, |
| | | }, ], |
| | | }; |
| | | // 发起订单初始化请求并等待结果 |
| | | const res = await app.MG.store.initOrder(query); |
| | | // 获取订单号并赋值给 orderNumber.value |
| | | console.log(res, 'res456'); |
| | | bookOrdersId = res.orderNumber; |
| | | console.log(bookOrdersId); |
| | | // 检查订单号是否存在 |
| | | if (bookOrdersId) { |
| | | if (this.data.bookDetail.price == "0.00") { |
| | | app.MG.store.confirmOrder({ |
| | | orderNum: bookOrdersId |
| | | }).then(res => { |
| | | if (res) { |
| | | wx.showToast({ |
| | | title: "领取成功", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | this.getBookInfo(this.data.bookDetail.id); |
| | | } |
| | | }) |
| | | app.MG.store |
| | | .confirmOrder({ |
| | | orderNum: bookOrdersId, |
| | | }) |
| | | .then((res) => { |
| | | if (res) { |
| | | wx.showToast({ |
| | | title: "领取成功", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | this.getBookInfo(this.data.bookDetail.id); |
| | | } |
| | | }); |
| | | } else { |
| | | const url = "/pages/cart/paymentPage/index?orderNumber=" + bookOrdersId; |
| | | const url = "/pages/cart/paymentPage/index?orderNumber=" + bookOrdersId + '&onNorderSaleMethod=' + res.saleMethodLinks[0].orderSaleMethod.id; |
| | | wx.navigateTo({ |
| | | url, |
| | | }); |
| | |
| | | } else { |
| | | console.log(222); |
| | | } |
| | | |
| | | } else { |
| | | wx.showToast({ |
| | | title: "商品不在有效期", |
| | |
| | | wx.showModal({ |
| | | title: "尊敬的用户,您好!", |
| | | content: "请先进行教师认证!", |
| | | confirmColor: "#ff6c00", |
| | | cancelColor: "#949494", |
| | | complete: (res) => { |
| | | if (res.cancel) {} |
| | | if (res.confirm) { |
| | |
| | | wx.showModal({ |
| | | title: "尊敬的用户,您好!", |
| | | content: "请先进行教师认证!", |
| | | confirmColor: "#ff6c00", |
| | | cancelColor: "#949494", |
| | | complete: (res) => { |
| | | if (res.cancel) {} |
| | | if (res.confirm) { |
| | |
| | | wx.showModal({ |
| | | title: "尊敬的用户,您好!", |
| | | content: "请先进行教师认证!", |
| | | confirmColor: "#ff6c00", |
| | | cancelColor: "#949494", |
| | | complete: (res) => { |
| | | if (res.cancel) {} |
| | | if (res.confirm) { |
| | |
| | | return false; |
| | | } |
| | | }, |
| | | // 云学习资源是否显示锁图标(未购买,且资源售价大于零) |
| | | isShowNeedBuy(data) { |
| | | if (data.saleMethod && data.saleMethod.length) { |
| | | const isSHow = this.data.buyIdList.some( |
| | | (item) => item == data.saleMethod[0].Id |
| | | ); |
| | | if (isSHow) { |
| | | return false; |
| | | } else { |
| | | return data.saleMethod[0].price > 0 ? true : false; |
| | | } |
| | | return !isSHow; |
| | | } else { |
| | | return false; |
| | | } |
| | | }, |
| | | // 获取已购买商品 |
| | | getShoppingCartProductGet() { |
| | | let query = { |
| | |
| | | }, |
| | | |
| | | updateShoppingCartHidden() { |
| | | |
| | | const isSHow = this.data.shoppingCartGetId.some( |
| | | (item) => item == data.saleMethod[0].Id |
| | | ); |
| | | console.log(isSHow); |
| | | return !isSHow; |
| | | }, |
| | | //刷新购物车图标 |
| | | updateCloudLearning() { |
| | | this.getBookInfo() |
| | | this.getShoppingCartProductGet() |
| | | const checkData = this.data.cmsDatas.find( |
| | | (item) => item.refCode == "jsek_cloudLearning" |
| | | ); |
| | | this.getResourceData(checkData); |
| | | debugger; |
| | | console.log(55555); |
| | | |
| | | |
| | | |
| | | }, |
| | | // 遍历树结构转换为数组方法 |
| | | handleTreeData(array) { |
| | |
| | | }, |
| | | // 获取组卷答题数据 |
| | | getMockData() { |
| | | // const child = this.selectComponent("#test-resource"); |
| | | // if (child) child.changeTestLoaidng(true); |
| | | this.setData({ |
| | | "mockData.useCount": 0, |
| | | "mockData.mockList": [], |
| | |
| | | }, |
| | | }; |
| | | app.MG.store.getProductList(query).then((res) => { |
| | | console.log("完整相关图书", res.datas); |
| | | const Arr = res.datas.filter( |
| | | (item) => item.id != this.data.bookDetail.id |
| | | ); |
| | | let bookArr = []; |
| | | // if (Arr.length > 3) { |
| | | // for (var i = 0; i < 3; i++) { |
| | | // var _num = Math.floor(Math.random() * Arr.length); |
| | | // var mm = Arr[_num]; |
| | | // Arr.splice(_num, 1); |
| | | // bookArr.push(mm); |
| | | // } |
| | | // } else { |
| | | // bookArr = Arr; |
| | | // } |
| | | if (Arr.length > 9) { |
| | | for (var i = 0; i < 9; i++) { |
| | | var _num = Math.floor(Math.random() * Arr.length); |
| | | var mm = Arr[_num]; |
| | | Arr.splice(_num, 1); |
| | | bookArr.push(mm); |
| | | } |
| | | } else { |
| | | bookArr = Arr; |
| | | } |
| | | this.setData({ |
| | | relatedBookData: Arr, |
| | | relatedBookData: bookArr, |
| | | relatedBookLoading: false, |
| | | }); |
| | | if (!this.data.relatedBookData.length) |
| | | this.setData({ |
| | | noRelatedBookData: true, |
| | | }); |
| | | console.log("相关图书", this.data.relatedBookData); |
| | | }); |
| | | }, |
| | | goBookDetails(e) { |
| | | console.log(e); |
| | | this.setData({ |
| | | tabValue: "brief", |
| | | pageLoading: true, |
| | | }); |
| | | let bookPathList = wx.getStorageSync("bookPathList"); |
| | | const bookPath = { |
| | | id: this.data.bookDetail.id, |
| | | name: this.data.bookDetail.name, |
| | | }; |
| | | if (bookPathList) { |
| | | bookPathList = JSON.parse(bookPathList); |
| | | if (bookPathList.length > 8) bookPathList.shift(); |
| | | bookPathList.push(bookPath); |
| | | } else { |
| | | bookPathList = [bookPath]; |
| | | } |
| | | |
| | | wx.setStorageSync("bookPathList", JSON.stringify(bookPathList)); |
| | | this.onLoad({ |
| | | id: e.detail.id, |
| | | name: e.detail.name, |
| | |
| | | |
| | | //申请电子样书 |
| | | appplyElectronicBook() { |
| | | console.log(this.data.bookDetail); |
| | | if ( |
| | | this.data.bookDetail.isApplyBook == 2 || |
| | | this.data.bookDetail.isApplyBook == 4 |
| | |
| | | }); |
| | | return false; |
| | | } |
| | | if (this.data.electronicBookList.length >= 2) { |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false; |
| | | } |
| | | |
| | | let isHas = this.data.electronicBookList.find( |
| | | (eitem) => eitem.id == this.data.bookDetail.id |
| | | ); |
| | |
| | | }); |
| | | return false; |
| | | } |
| | | if (this.data.electronicBookList.length >= 2) { |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false; |
| | | } |
| | | this.addBookFun(this.data.bookDetail, "eBook"); |
| | | } else { |
| | | wx.showModal({ |
| | | title: "尊敬的用户,您好!", //提示的标题 |
| | | content: "请先进行教师认证?", //提示的内容 |
| | | confirmColor: "#ff6c00", |
| | | cancelColor: "#949494", |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |
| | |
| | | }); |
| | | return false; |
| | | } |
| | | if (this.data.paperBookList.length >= 2) { |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false; |
| | | } |
| | | let isHas = this.data.paperBookList.find( |
| | | (pitem) => pitem.id == this.data.bookDetail.id |
| | | ); |
| | | if (isHas) { |
| | | wx.showToast({ |
| | | title: "该书已在清单列表中", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false; |
| | | } |
| | | let isApply = this.data.alreadyPaperBookList.find( |
| | | (pitem) => pitem.id == this.data.bookDetail.id |
| | | ); |
| | |
| | | }); |
| | | return false; |
| | | } |
| | | |
| | | let isHas = this.data.paperBookList.find( |
| | | (pitem) => pitem.id == this.data.bookDetail.id |
| | | ); |
| | | if (isHas) { |
| | | wx.showToast({ |
| | | title: "该书已在清单列表中", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false; |
| | | } |
| | | if (this.data.paperBookList.length >= 2) { |
| | | wx.showToast({ |
| | | title: "每次最多只可申请2本样书", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false; |
| | | } |
| | | this.addBookFun(this.data.bookDetail, "pBook"); |
| | | } else { |
| | | wx.showModal({ |
| | | title: "尊敬的用户,您好!", //提示的标题 |
| | | content: "请先进行教师认证?", //提示的内容 |
| | | confirmColor: "#ff6c00", |
| | | cancelColor: "#949494", |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |