| | |
| | | const app = getApp() |
| | | import SparkMD5 from 'spark-md5' |
| | | import FormData from '../../../utils/formdata/index.js'; |
| | | // import Wxml2Canvas from 'wxml2canvas'; |
| | | import Wxml2Canvas from 'wxml2canvas'; |
| | | import { |
| | | worksDataBytool |
| | | } from "../../../assets/js/toolClass.js"; |
| | |
| | | closeBtn: false, |
| | | deleteBtn: false, |
| | | bookId: '', |
| | | bookPath: '', |
| | | playerList: [], |
| | | worksInfo: [], |
| | | isCertificate: {}, |
| | |
| | | fullName: '', //名称 |
| | | userPicture: '' //申请证书用户图片 |
| | | }, |
| | | userName: '', |
| | | pictureMd5: '', |
| | | publishingUnit: '', |
| | | pubCertificateHide: true, |
| | | cbzsImg: '', //出版证书base64 |
| | | rzzsImg: '' //认证证书base64 |
| | | |
| | | rzzsImg: '', //认证证书base64 |
| | | imageWidth: '', //画在画布上的图片的宽度 |
| | | imageHeight: '', //画在画布上的图片的高度 |
| | | website: 'https://jsek.bnuic.com', |
| | | }, |
| | | formatDate(dateString) { |
| | | if (!dateString) { |
| | |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | let parentPath = options.path.split('\\'); |
| | | parentPath.pop(); |
| | | this.setData({ |
| | | bookId: options.id |
| | | bookId: options.id, |
| | | bookPath: parentPath.join('\\') |
| | | }) |
| | | const token = wx.getStorageSync(app.config.tokenKey) |
| | | if (!token) { |
| | | loginInfo(app, (data) => { |
| | | if (data) { |
| | | this.digitalCoursesDetailsGet(options.id) |
| | | this.getPlayerList() |
| | | this.getType() |
| | | } else {} |
| | | }) |
| | | } |
| | | this.digitalCoursesDetailsGet(options.id) |
| | | this.getPlayerList() |
| | | this.getType() |
| | | |
| | | this.setData({ |
| | | userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name, |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | |
| | | expire: res.false |
| | | }) |
| | | } |
| | | res.datas.publicationDate = moment(res.datas.publicationDate).format('YYYY年MM月DD日') |
| | | res.datas.publicationDate = moment(res.datas.publicationDate).format('YYYY年MM月') |
| | | res.datas.price = res.datas.price.toFixed(2) |
| | | |
| | | res.datas.oldPrice = res.datas.oldPrice.toFixed(2) |
| | | wx.setNavigationBarTitle({ |
| | | title: res.datas.name, |
| | | }) |
| | | if (res.datas.publishingUnit) { |
| | | await this.getBookPublishUnit(res.datas.publishingUnit) |
| | | } |
| | | let lecturer = [] |
| | | if (res.datas.datas.speaker && res.datas.datas.speaker.length > 0) { |
| | | res.datas.datas.speaker.forEach(item => { |
| | | if (res.datas.subItems && res.datas.subItems.QueryCms.length > 0) { |
| | | res.datas.subItems.QueryCms.forEach(item1 => { |
| | | this.getSpeaker(res.datas.datas.speaker) |
| | | } |
| | | if (this.data.bookPath) { |
| | | this.getAboutBook(this.data.bookPath) |
| | | } else { |
| | | this.getAboutBook(res.datas.productLinkInfo[res.datas.productLinkInfo.length - 1].LinkPath) |
| | | } |
| | | this.getCertificateList() |
| | | res.datas.content = res.datas.content && res.datas.content.replace('../', app.config.requestCtx + '/').replace( |
| | | /\<img/gi, |
| | | '<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"' |
| | | ) |
| | | this.setData({ |
| | | digitalsData: res.datas, |
| | | loading: false |
| | | }) |
| | | }) |
| | | }, |
| | | //获取主讲人 |
| | | getSpeaker(list) { |
| | | let query = { |
| | | path: 'jsek_speaker', |
| | | fields: { |
| | | content: [], |
| | | positionalTitle: [] |
| | | }, |
| | | coverSize: { |
| | | height: 250 |
| | | } |
| | | } |
| | | app.MG.resource.getItem(query).then((res) => { |
| | | let lecturerList = [] |
| | | if (list && res.datas.length > 0) { |
| | | list.forEach((item) => { |
| | | if (res.datas && res.datas.length > 0) { |
| | | res.datas.forEach((item1) => { |
| | | if (JSON.parse(item.Data.Value).items[0] == item1.id) { |
| | | lecturer.push({ |
| | | lecturerList.push({ |
| | | name: item1.name, |
| | | icon: item1.icon ? item1.icon : '', |
| | | description: item1.description ? item1.description : '', |
| | | positionalTitle: item1.positionalTitle, |
| | | icon: item1.icon, |
| | | description: item1.description ? item1.description : '暂无简介' |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }) |
| | | this.getPositionalTitle(lecturerList) |
| | | } |
| | | this.getAboutBook(res.datas.productLinkInfo[res.datas.productLinkInfo.length - 1].LinkPath) |
| | | this.getCertificateList() |
| | | }) |
| | | }, |
| | | async getPositionalTitle(listStr) { |
| | | let list = [] |
| | | let query = { |
| | | refCodes: ['positionalTitle'] |
| | | } |
| | | await app.MG.store.getProductTypeField(query).then((res) => { |
| | | let option = JSON.parse(res[0].config).option |
| | | listStr.forEach((unit) => { |
| | | option.forEach((item) => { |
| | | if (item.value == unit.positionalTitle) { |
| | | unit.positionalName = item.name |
| | | } |
| | | }) |
| | | list.push({ |
| | | name: unit.name, |
| | | positionalTitle: unit.positionalName, |
| | | icon: unit.icon, |
| | | description: unit.description ? unit.description : '暂无简介' |
| | | }) |
| | | }) |
| | | this.setData({ |
| | | lecturerList: lecturer, |
| | | digitalsData: res.datas, |
| | | loading: false |
| | | lecturerList: list |
| | | }) |
| | | }) |
| | | }, |
| | |
| | | tabValue: value |
| | | }) |
| | | if (this.data.tabValue == 1) { |
| | | // this.saveAsImage() |
| | | this.saveAsImage() |
| | | } |
| | | if (this.data.tabValue == 2) { |
| | | this.getResource() |
| | |
| | | i.children = [] |
| | | this.getTreeList(rootList, pathLength + addNum, i.children, i.productLinkPath, addNum) |
| | | if (i.children.length == 0) { |
| | | newArr[0].istry = true |
| | | delete i.children |
| | | } |
| | | } |
| | |
| | | } |
| | | }) |
| | | .then((res) => { |
| | | this.setData({ |
| | | relationTextBook: res.datas[0] |
| | | }) |
| | | if (this.data.relationTextBook.purchasedSaleMethodIdList.includes(this.data.relationTextBook.defaultSaleMethodId)) { |
| | | if (res.datas.length > 0) { |
| | | this.setData({ |
| | | isTextBookBuy: true |
| | | relationTextBook: res.datas[0] |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | isTextBookBuy: false |
| | | }) |
| | | if (this.data.relationTextBook.purchasedSaleMethodIdList.includes(this.data.relationTextBook.defaultSaleMethodId)) { |
| | | this.setData({ |
| | | isTextBookBuy: true |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | isTextBookBuy: false |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | |
| | | answertype == "collectQuestion" ? "我的收藏" : "我的错题" |
| | | }&answerType=${answertype}&storeInfo=${app.config.digitalCourses}`, |
| | | }); |
| | | }, |
| | | |
| | | onCorrelationBook(e) { |
| | | const item = e.currentTarget.dataset.item; |
| | | // this.digitalCoursesDetailsGet(item.id) |
| | | // this.getPlayerList() |
| | | this.onLoad({ |
| | | loading: true, |
| | | id: item.id, |
| | | path: item.idPath |
| | | }) |
| | | }, |
| | | |
| | | // 获取相关课程 |
| | |
| | | } |
| | | }) |
| | | this.setData({ |
| | | relatedBookData: bookArr |
| | | relatedBookData: bookArr.slice(0, 6) |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | |
| | | }, |
| | | //申请证书 |
| | | async saveAsImage() { |
| | | let query = wx.createSelectorQuery().in(this); |
| | | query.select("#pubCertificate").boundingClientRect(); |
| | | query.exec(function (res) { |
| | | console.log("View 的信息:", res[0]); |
| | | }); |
| | | console.log(value, 123) |
| | | let drawImage = new Wxml2Canvas({ |
| | | element: 'pubCertificate', // canvas节点的id, |
| | | obj: that, // 在组件中使用时,需要传入当前组件的this |
| | | width: this.width * 2, // 宽高 |
| | | height: this.height * 2, |
| | | background: '#fff', // 默认背景色 |
| | | progress(percent) { // 绘制进度 |
| | | }, |
| | | const that = this |
| | | const query = wx.createSelectorQuery().in(this) |
| | | query |
| | | .select('#pubCertificate') |
| | | .fields({ |
| | | // 选择需要生成canvas的范围 |
| | | size: true, |
| | | node: true, |
| | | scrollOffset: true, |
| | | }, |
| | | (data) => { |
| | | let width = data.width |
| | | let height = data.height |
| | | that.setData({ |
| | | imageWidth: width, |
| | | imageHeight: height, |
| | | }) |
| | | }, |
| | | ) |
| | | .exec() |
| | | this.drawImage() |
| | | query |
| | | .select('#textCertificate') |
| | | .fields({ |
| | | // 选择需要生成canvas的范围 |
| | | size: true, |
| | | node: true, |
| | | scrollOffset: true, |
| | | }, |
| | | (data) => { |
| | | let width = data.width |
| | | let height = data.height |
| | | that.setData({ |
| | | imageWidth: width, |
| | | imageHeight: height, |
| | | }) |
| | | }, |
| | | ) |
| | | .exec() |
| | | this.drawImage1() |
| | | }, |
| | | drawImage() { |
| | | let that = this; |
| | | let drawMyImage = new Wxml2Canvas({ |
| | | width: that.data.imageWidth, |
| | | height: that.data.imageHeight, |
| | | element: 'myCanvas', |
| | | progress(percent) {}, |
| | | finish(url) { |
| | | console.log("创建的图片", url); |
| | | wx.getFileSystemManager().readFile({ |
| | | filePath: url, |
| | | encoding: 'base64', |
| | | success: (res) => { |
| | | let MyImageBase64 = 'data:image/jpg;base64,' + res.data |
| | | that.setData({ |
| | | cbzsImg: MyImageBase64, |
| | | pubCertificateHide: false, |
| | | }) |
| | | }, |
| | | }) |
| | | }, |
| | | error(res) { |
| | | console.log(res); |
| | | // uni.hideLoading() |
| | | // 画失败的原因 |
| | | console.log("生成的图片失败", res) |
| | | } |
| | | }, this); |
| | | // const canvas = Wxml2Canvas.wxmlToCanvas(value); |
| | | // // 转换为图片 |
| | | // const img = Wxml2Canvas.canvasToTempImage(canvas); |
| | | // const path = Wxml2Canvas.canvasToTempFilePath(canvas); |
| | | // console.log(canvas) |
| | | // Wxml2Canvas(value).then((canvas) => { |
| | | // const img = canvas.toDataURL('image/png') |
| | | // this.setData({ |
| | | // cbzsImg: img, |
| | | // }) |
| | | // }) |
| | | |
| | | // Wxml2Canvas(textCertificate.value).then((canvas1) => { |
| | | // const img1 = canvas1.toDataURL('image/png') |
| | | // rzzsImg.value = img1 |
| | | // }) |
| | | this.setData({ |
| | | pubCertificateHide: false, |
| | | }) |
| | | let data = { |
| | | list: [{ |
| | | type: 'wxml', |
| | | class: '.my_canvas .my_draw_canvas', //.my_draw_canvas每个要绘制元素的类名 |
| | | limit: '.my_canvas', //my_canvas根元素类名 |
| | | x: 0, |
| | | y: 0 |
| | | }] |
| | | } |
| | | drawMyImage.draw(data, that); |
| | | }, |
| | | drawImage1() { |
| | | let that = this; |
| | | let drawMyImage1 = new Wxml2Canvas({ |
| | | width: that.data.imageWidth, |
| | | height: that.data.imageHeight, |
| | | element: 'myCanvas1', |
| | | progress(percent) {}, |
| | | finish(url) { |
| | | wx.getFileSystemManager().readFile({ |
| | | filePath: url, |
| | | encoding: 'base64', |
| | | success: (res) => { |
| | | let MyImageBase641 = 'data:image/jpg;base64,' + res.data |
| | | that.setData({ |
| | | rzzsImg: MyImageBase641, |
| | | pubCertificateHide: false, |
| | | }) |
| | | }, |
| | | }) |
| | | }, |
| | | error(res) { |
| | | console.log("生成的图片失败", res) |
| | | } |
| | | }, this); |
| | | let data = { |
| | | list: [{ |
| | | type: 'wxml', |
| | | class: '.my_canvas1 .my_draw_canvas1', //.my_draw_canvas每个要绘制元素的类名 |
| | | limit: '.my_canvas1', //my_canvas根元素类名 |
| | | x: 0, |
| | | y: 0 |
| | | }] |
| | | } |
| | | drawMyImage1.draw(data, that); |
| | | }, |
| | | //获取字段 |
| | | getType() { |
| | |
| | | }); |
| | | return false |
| | | } |
| | | // if (!this.data.isLearn) { |
| | | // 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: "您申请的证书正在审核中", |
| | |
| | | //证书查看 |
| | | onClick1() { |
| | | this.setData({ |
| | | images: ['https://jsek.bnuic.com/home/certificate/szkc.jpg'], |
| | | images: [this.data.cbzsImg], |
| | | showIndex: true, |
| | | visible: true, |
| | | }) |
| | | }, |
| | | onClick2() { |
| | | this.setData({ |
| | | images: ['https://jsek.bnuic.com/home/certificate/kczs.jpg'], |
| | | images: [this.data.rzzsImg], |
| | | showIndex: true, |
| | | visible: true, |
| | | }) |