| | |
| | | // pages/digitalTextbooks/digitalTextbooksDetails/index.js |
| | | import Toast from "tdesign-miniprogram/toast"; |
| | | import moment from 'moment' |
| | | import { |
| | | loginInfo |
| | | } from '../../../assets/js/login'; |
| | | import { |
| | | worksDataBytool |
| | | } from "../../../assets/js/toolClass.js"; |
| | | import SparkMD5 from 'spark-md5' |
| | | import FormData from '../../../utils/formdata/index.js'; |
| | | const app = getApp() |
| | | Page({ |
| | | |
| | |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | |
| | | |
| | | type: 'basicInformation', |
| | | |
| | | |
| | | digitalTextId: '', |
| | | digitalsData: {}, |
| | | |
| | | richStyle: 'font-size: 28rpx;color: #333; line-height: 48rpx;text-align: justify;margin: 20rpx; ', |
| | | expire: false, //商品或子商品销售方式是否过期 |
| | | tabValue: "brief", |
| | | relatedBookData: [], |
| | | publicationDate: '', |
| | |
| | | name: "/static/images/digitalTextbooks/jibenxinxi-t@2x.png", |
| | | }, |
| | | briefIconClick: { |
| | | name: "/static/images/digitalTextbooks/jibenxinxi @2x.png", |
| | | name: "/static/images/digitalTextbooks/jibenxinxi-t-click@3x.png", |
| | | }, |
| | | eBookIcon: { |
| | | name: "/static/images/digitalTextbooks/zuozhejianjie-t@2x.png", |
| | |
| | | name: "/static/images/digitalTextbooks/zuozhejianjie-t@2x.png", |
| | | }, |
| | | teachResourcesClickIcon: { |
| | | name: "/static/images/digitalTextbooks/zuozhejianjie@2x.png", |
| | | name: "/static/images/digitalTextbooks/zuozhejianjie-t-click@3x.png", |
| | | }, |
| | | learnResourceIcon: { |
| | | name: "/static/images/digitalTextbooks/shengshu-t@2x.png", |
| | | }, |
| | | learnResourceClickIcon: { |
| | | name: "/static/images/digitalTextbooks/zhengshu@2x.png", |
| | | name: "/static/images/digitalTextbooks/zhengshu-t-click@3x.png", |
| | | }, |
| | | testResourceIocn: { |
| | | name: "/static/images/digitalTextbooks/link-t@2x.png", |
| | | name: "/static/images/digitalTextbooks/link-t@3x.png", |
| | | }, |
| | | testResourceClickIocn: { |
| | | name: "/static/images/digitalTextbooks/Link@2x.png", |
| | | name: "/static/images/digitalTextbooks/link-t-click@3x.png", |
| | | }, |
| | | |
| | | showIndex1: '', |
| | | catalogue: { |
| | | name: "/static/images/digitalTextbooks/mulu@2x.png", |
| | | name: "/static/images/digitalTextbooks/mulu-t@3x.png", |
| | | }, |
| | | catalogueClickIcon: { |
| | | name: "/static/images/digitalTextbooks/mulu@2x.png", |
| | | name: "/static/images/digitalTextbooks/mulu-t-click@3x.png", |
| | | }, |
| | | |
| | | userInfo: { |
| | | fullName: '', //名称 |
| | | userPicture: '' //申请证书用户图片 |
| | | }, |
| | | pictureMd5: '', |
| | | worksInfo: [], |
| | | isCertificate: {}, |
| | | isLearn: false, |
| | | isTest: false, |
| | | publishingUnit: '', |
| | | cbzsImg: '', //出版证书base64 |
| | | rzzsImg: '', //认证证书base64 |
| | | visible: false, |
| | | showIndex: false, |
| | | closeBtn: false, |
| | | deleteBtn: false, |
| | | images: [], |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | console.log(options.id); |
| | | console.log(options); |
| | | this.setData({ |
| | | digitalTextId: options.id |
| | | }) |
| | | const token = wx.getStorageSync(app.config.tokenKey) |
| | | if (!token) { |
| | | loginInfo(app, (data) => { |
| | | if (data) { |
| | | this.digitalTextbooksDetailsGet(this.data.digitalTextId) |
| | | this.getType() |
| | | this.getCertificateList() |
| | | } else { |
| | | |
| | | } |
| | | }) |
| | | } |
| | | this.digitalTextbooksDetailsGet(this.data.digitalTextId) |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | this.getType() |
| | | this.getCertificateList() |
| | | }, |
| | | // 格式化日期 |
| | | // 格式化日期 |
| | |
| | | seriesName: [], |
| | | author: [], |
| | | isbn: [], |
| | | editorUnit: [], |
| | | publicationDate: [], |
| | | publishingUnit: [], |
| | | bookClassification: [], |
| | | paperPrice: [], |
| | | JDLink: [], |
| | |
| | | //epub试读百分比 |
| | | } |
| | | } |
| | | app.MG.store.getProductDetail(query).then(res => { |
| | | |
| | | // console.log(res); |
| | | app.MG.store.getProductDetail(query).then(async res => { |
| | | if (res.datas.purchasedSaleMethodIdList.includes(res.datas.defaultSaleMethodId)) { |
| | | |
| | | this.setData({ |
| | | isBuy: true |
| | | }) |
| | | |
| | | } else { |
| | | this.setData({ |
| | | isBuy: false |
| | | }) |
| | | } |
| | | // res.datas.publicationDate = |
| | | res.datas.publicationDate = moment(res.datas.publicationDate).format('YYYY年MM月') |
| | | if (res.datas.icon == '') { |
| | | res.datas.icon = '/static/images/default-book-img.png' |
| | | } |
| | | this.setData({ |
| | | publicationDate: this.formatDate(res.datas.publicationDate) |
| | | }) |
| | | res.datas.price = res.datas.price.toFixed(2) |
| | | |
| | | this.setData({ |
| | | digitalsData: res.datas |
| | | }) |
| | | |
| | | let times = new Date(res.datas.defaultSaleMethod.endDate).getTime() |
| | | let startTime = new Date(res.datas.defaultSaleMethod.beginDate).getTime() |
| | | if (times < new Date().getTime() || new Date().getTime() < startTime) { |
| | | this.setData({ |
| | | expire: true |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | expire: res.false |
| | | }) |
| | | } |
| | | wx.setNavigationBarTitle({ |
| | | title: res.datas.name, |
| | | }) |
| | | if (res.datas.publishingUnit) { |
| | | await this.getBookPublishUnit(res.datas.publishingUnit) |
| | | } |
| | | |
| | | this.getAboutBook(res.datas.productLinkInfo[res.datas.productLinkInfo.length - 1].LinkPath) |
| | | |
| | | console.log(this.data.isBuy); |
| | | this.setData({ |
| | | loading: false, |
| | |
| | | }); |
| | | |
| | | // this.onCe() |
| | | |
| | | }) |
| | | }, |
| | | //获取图书出版单位 |
| | | async getBookPublishUnit(listStr) { |
| | | let query = { |
| | | refCodes: ['publishingUnit'] |
| | | } |
| | | await app.MG.store.getProductTypeField(query).then((res) => { |
| | | const list = JSON.parse(listStr) |
| | | let dataList = [] |
| | | list.forEach((unit) => { |
| | | JSON.parse(res[0].config).option.forEach((item) => { |
| | | if (item.value == unit) { |
| | | dataList.push(item.name) |
| | | } |
| | | }) |
| | | }) |
| | | if (dataList.length == list.length) { |
| | | this.setData({ |
| | | publishingUnit: dataList.join(' '), |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | onTabsChange(event) { |
| | | |
| | | this.setData({ |
| | | tabValue: event.detail.value, |
| | | }) |
| | | |
| | | |
| | | console.log(this.data.tabValue); |
| | | }, |
| | | |
| | | onTabsClick(event) { |
| | | // console.log(`Click tab, tab-panel value is ${event.detail.value}.`); |
| | | }, |
| | | |
| | | // 获取相关教材 |
| | | getAboutBook(path) { |
| | | let query = { |
| | |
| | | } else { |
| | | bookArr = Arr |
| | | } |
| | | |
| | | bookArr.forEach(item => { |
| | | if (item.icon == '') { |
| | | item.icon = '/static/images/default-book-img.png' |
| | |
| | | }) |
| | | }, |
| | | onCorrelationBook(e) { |
| | | |
| | | |
| | | |
| | | const item = e.currentTarget.dataset.item |
| | | |
| | | console.log(item); |
| | | this.digitalTextbooksDetailsGet(item.id) |
| | | // const event = { |
| | | // detail: { |
| | | // value: "brief" |
| | | // } |
| | | // } |
| | | // this.onTabsChange(event) |
| | | // this.digitalTextbooksDetailsGet(item.id) |
| | | this.onLoad({ |
| | | id: item.id |
| | | }) |
| | | }, |
| | | // 图书添加购物车 |
| | | async addBookShopcCar() { |
| | |
| | | |
| | | |
| | | //购买按钮 |
| | | |
| | | async buyBtn() { |
| | | if (!this.data.expire) { |
| | | let bookOrdersId = ""; |
| | |
| | | // console.log(item, app.config.textReaderUrl); |
| | | // console.log(token); |
| | | goRead() { |
| | | |
| | | // 首页测试登录功能,后续注释 |
| | | // 检查登录状态 |
| | | const token = wx.getStorageSync(app.config.tokenKey) |
| | |
| | | // 如果不是第一次登录,会执行回调 |
| | | if (data) { |
| | | // 登录成功,自动记录token和用户信息,并返回true |
| | | |
| | | const item = this.data.digitalsData |
| | | wx.navigateTo({ |
| | | url: '/pages/digitalTextbooks/digitalTextbooksDetails/components/webView/index?refCode=' + item.refCode + "&tryPageCount=" + item.probationPage |
| | |
| | | |
| | | }, |
| | | onTabClick(e) { |
| | | // debugger |
| | | console.log(e); |
| | | let tab = e.currentTarget.dataset.tab; |
| | | |
| | |
| | | app.MG.store |
| | | .delProductLink({ |
| | | productIds: [this.data.digitalsData.id], |
| | | linkType: 'FavoriteBookCity' |
| | | linkType: 'FavoriteTextBooks' |
| | | }) |
| | | .then(() => { |
| | | this.setData({ |
| | |
| | | } else { |
| | | let params = { |
| | | productIds: [this.data.digitalsData.id], |
| | | linkType: 'FavoriteBookCity' |
| | | linkType: 'FavoriteTextBooks' |
| | | } |
| | | app.MG.store.addProductLink(params).then((res) => { |
| | | this.setData({ |
| | |
| | | app.MG.store |
| | | .delProductLink({ |
| | | productIds: [this.data.digitalsData.id], |
| | | linkType: 'FavoriteBookCity' |
| | | linkType: 'FavoriteTextBooks' |
| | | }) |
| | | .then(() => { |
| | | this.setData({ |
| | |
| | | } else { |
| | | let params = { |
| | | productIds: [this.data.digitalsData.id], |
| | | linkType: 'FavoriteBookCity' |
| | | linkType: 'FavoriteTextBooks' |
| | | } |
| | | app.MG.store.addProductLink(params).then((res) => { |
| | | this.setData({ |
| | |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | // 我要建议 |
| | | suggestBtn() { |
| | | // 检查登录状态 |
| | | const token = wx.getStorageSync(app.config.tokenKey); |
| | | console.log(465); |
| | | const child = this.selectComponent("#suggest-component1"); |
| | | if (token) |
| | | // child.showDialog(); |
| | | this.setData({ |
| | | showIndex1: '1' |
| | | }) |
| | | }, |
| | | |
| | | //申请证书 |
| | | //获取字段 |
| | | getType() { |
| | | app.MG.resource.getCmsTypeByRefCode({ |
| | | refCodes: ['jsek_textbookCertificate'] |
| | | }).then((res) => { |
| | | this.setData({ |
| | | worksInfo: res[0].cmsTypeLinks[0].children, |
| | | }) |
| | | }) |
| | | }, |
| | | getCertificateList() { |
| | | const data = { |
| | | start: 0, |
| | | size: 9999, |
| | | topicIdOrRefCode: 'applyTextbookCertificate', |
| | | appRefCode: app.config.appRefCode, |
| | | sort: { |
| | | type: 'Desc', |
| | | field: 'CreateDate' |
| | | } |
| | | } |
| | | app.MG.ugc.getTopicMessageList(data).then((res) => { |
| | | res.datas.map((item) => { |
| | | item.content = JSON.parse(item.content) |
| | | if (item.content.id == this.data.digitalsData.id) { |
| | | this.setData({ |
| | | isCertificate: item |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | onCertificate() { |
| | | if (!this.data.isBuy) { |
| | | wx.showToast({ |
| | | title: "请先购买,体验完整服务", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false |
| | | } |
| | | // if (!this.data.isLearn) { |
| | | // wx.showToast({ |
| | | // title: "您的学习任务还未完成,暂不能申请证书,加油哦!", |
| | | // icon: "none", |
| | | // duration: 1000, |
| | | // }); |
| | | // return false |
| | | // } |
| | | if (this.data.isCertificate && this.data.isCertificate.state == 'WaitAudit') { |
| | | wx.showToast({ |
| | | title: this.data.isCertificate.state == 'WaitAudit' ? "您申请的证书正在审核中" : this.data.isCertificate.state == 'Normal' ? '您已申请证书' : '', |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false |
| | | } |
| | | |
| | | var page = getCurrentPages().pop(); // 获取当前页面实例 |
| | | page.setData({ |
| | | // 动态设置禁止滚动的样式 |
| | | disableScrollStyle: 'overflow: hidden;' |
| | | }); |
| | | this.setData({ |
| | | dialogBox: true, |
| | | scrollJudge: '' |
| | | }) |
| | | }, |
| | | closeDialog() { |
| | | this.setData({ |
| | | dialogBox: false, |
| | | scrollJudge: true |
| | | }) |
| | | }, |
| | | |
| | | //姓名 |
| | | onFullNameInput(e) { |
| | | this.setData({ |
| | | "userInfo.fullName": e.detail.value, |
| | | }); |
| | | }, |
| | | uploadPicture() { |
| | | var that = this; |
| | | wx.chooseMedia({ |
| | | count: 1, // 默认9 |
| | | sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 |
| | | sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 |
| | | success: function (res) { |
| | | wx.getFileSystemManager().readFile({ |
| | | filePath: res.tempFiles[0].tempFilePath, //选择图片返回的相对路径 |
| | | // encoding: 'binary', //编码格式 |
| | | success: ress => { |
| | | //成功的回调 |
| | | let spark = new SparkMD5.ArrayBuffer(); |
| | | spark.append(ress.data); |
| | | let md5 = spark.end(false); |
| | | let formData = new FormData(); |
| | | formData.append('Md5', md5); |
| | | formData.append('FileName', md5); |
| | | formData.append('FileType', res.tempFiles[0].fileType); |
| | | formData.appendFile("file", res.tempFiles[0].tempFilePath); |
| | | const data = formData.getData(); |
| | | let _token = wx.getStorageSync(app.config.tokenKey); |
| | | let header = {}; |
| | | if (_token == null) { |
| | | header["Authorization"] = `Basic ${Base64.encode(website.clientId + ":" + website.clientSecret)}`; |
| | | } else { |
| | | header["Authorization"] = `Bearer ` + _token; |
| | | } |
| | | new Promise((resolve, reject) => { |
| | | wx.request({ |
| | | url: app.config.requestCtx + '/file/api/ApiUpload', |
| | | method: 'POST', |
| | | header: { |
| | | 'content-type': data.contentType, |
| | | ...header |
| | | }, |
| | | data: data.buffer, |
| | | success(res) { |
| | | if (res.statusCode == 200) { |
| | | resolve(res.data); |
| | | if (res.data) { |
| | | that.setData({ |
| | | 'userInfo.userPicture': app.config.requestCtx + `/file/GetPreViewImage?md5=` + md5, |
| | | pictureMd5: md5 |
| | | }); |
| | | } |
| | | } else { |
| | | reject('运行时错误,请稍后再试'); |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | confirmM() { |
| | | if (this.data.userInfo.fullName) { |
| | | if (this.data.pictureMd5 == '') { |
| | | wx.showToast({ |
| | | title: "请上传照片", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | return false |
| | | } |
| | | let data = {} |
| | | let bookInfo = { |
| | | bookId: this.data.digitalsData.id, |
| | | icon: this.data.digitalsData.icon, |
| | | name: this.data.digitalsData.name, |
| | | author: this.data.digitalsData.author, |
| | | ISBN: this.data.digitalsData.isbn, |
| | | publicationDate: this.data.digitalsData.publicationDate, |
| | | userPicture: this.data.pictureMd5, |
| | | certificate: this.data.rzzsImg |
| | | } |
| | | data = { |
| | | topicIdOrRefCode: 'applyTextbookCertificate', |
| | | name: this.data.userInfo.fullName, |
| | | content: JSON.stringify(bookInfo), |
| | | state: 'WaitAudit', |
| | | cmsTypeRefCode: 'jsek_textbookCertificate', |
| | | type: 'applyTextbook', |
| | | newDataListRequest: worksDataBytool(this.data.worksInfo, this.data.userInfo) |
| | | } |
| | | app.MG.ugc |
| | | .newTopicMessage(data) |
| | | .then((res) => { |
| | | wx.showToast({ |
| | | title: "已提交申请", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | this.setData({ |
| | | "userInfo.fullName": "", |
| | | dialogBox: false, |
| | | scrollJudge: true |
| | | }) |
| | | this.getCertificateList() |
| | | }) |
| | | .catch(() => { |
| | | this.setData({ |
| | | "userInfo.fullName": "", |
| | | }) |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | title: "姓名不能为空", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | //证书查看 |
| | | onClick1() { |
| | | this.setData({ |
| | | images: ['https://jsek.bnuic.com/home/certificate/szjc.jpg'], |
| | | showIndex: true, |
| | | visible: true, |
| | | }) |
| | | }, |
| | | onClick2() { |
| | | this.setData({ |
| | | images: ['https://jsek.bnuic.com/home/certificate/jczs.jpg'], |
| | | showIndex: true, |
| | | visible: true, |
| | | }) |
| | | }, |
| | | onClose(e) { |
| | | const { |
| | | trigger |
| | | } = e.detail; |
| | | this.setData({ |
| | | visible: false, |
| | | }); |
| | | } |
| | | |
| | | }) |