From 2abf00efb6d83426ad84342f17252a36aeb5a4e1 Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期五, 27 九月 2024 16:09:29 +0800 Subject: [PATCH] rwd --- pages/digitalCourses/digitalCoursesDetails/index.js | 364 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 280 insertions(+), 84 deletions(-) diff --git a/pages/digitalCourses/digitalCoursesDetails/index.js b/pages/digitalCourses/digitalCoursesDetails/index.js index 594d290..f1ea6fd 100644 --- a/pages/digitalCourses/digitalCoursesDetails/index.js +++ b/pages/digitalCourses/digitalCoursesDetails/index.js @@ -4,13 +4,15 @@ import FormData from '../../../utils/formdata/index.js'; import Wxml2Canvas from 'wxml2canvas'; import { - worksDataBytool + worksDataBytool, + UpdateworksDataBytool } from "../../../assets/js/toolClass.js"; import moment from 'moment' import Toast from "tdesign-miniprogram/toast"; import { loginInfo } from '../../../assets/js/login'; +import wxbarcode from 'wxbarcode' Page({ /** @@ -103,7 +105,10 @@ rzzsImg: '', //璁よ瘉璇佷功base64 imageWidth: '', //鐢诲湪鐢诲竷涓婄殑鍥剧墖鐨勫搴� imageHeight: '', //鐢诲湪鐢诲竷涓婄殑鍥剧墖鐨勯珮搴� - website: 'https://jsek.bnuic.com', + website: 'https://jsek.bnuic.com/home/#/digitalCourses', + wxShareUrl: '', + imgUrl: '', + imgUrl1: '' }, formatDate(dateString) { if (!dateString) { @@ -174,6 +179,9 @@ this.digitalCoursesDetailsGet(options.id) this.getPlayerList() this.getType() + // this.setData({ + // userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name, + // }) }, /** @@ -187,7 +195,11 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず */ onShow() { - + if (this.data.tabValue == 2 && this.data.selectActive == 'learn') { + this.getPlayerList() + this.getResource() + this.getRelationBook() + } }, /** @@ -221,17 +233,17 @@ /** * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜� */ - onShareAppMessage() { - - }, + onShareAppMessage() {}, + onShareTimeline() {}, //鑾峰彇瑙嗛瀛︿範 getPlayerList() { app.MG.identity .getUserKey({ domain: 'videoPlayer', - keys: [this.data.bookId] + keys: [this.data.bookId + ''] }) .then((res) => { + console.log(1, res); if (res.length > 0) { this.setData({ playerList: JSON.parse(res[0].value) @@ -240,6 +252,7 @@ }) }, digitalCoursesDetailsGet(digitalTextId) { + let that = this; let query = { path: '*', queryType: '*', @@ -278,7 +291,6 @@ } } app.MG.store.getProductDetail(query).then(async res => { - console.log('淇℃伅', res); if (res.datas.purchasedSaleMethodIdList.includes(res.datas.defaultSaleMethodId)) { this.setData({ isBuy: true @@ -308,21 +320,11 @@ 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 => { - if (JSON.parse(item.Data.Value).items[0] == item1.id) { - lecturer.push({ - name: item1.name, - icon: item1.icon ? item1.icon : '', - description: item1.description ? item1.description : '', - }) - } - }) - - } + this.getSpeaker(res.datas.datas.speaker) + } else { + this.setData({ + lecturerList: [] }) } if (this.data.bookPath) { @@ -336,9 +338,95 @@ '<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"' ) this.setData({ - lecturerList: lecturer, digitalsData: res.datas, - loading: false + loading: false, + wxShareUrl: app.config.shareUrl + '?id=' + res.datas.id + '&path=' + this.data.bookPath + '&type=course' + }) + if (this.data.wxShareUrl) { + wxbarcode.qrcode('qrcode', this.data.wxShareUrl, 160, 160); + wxbarcode.qrcode('qrcode1', this.data.wxShareUrl, 160, 160); + setTimeout(() => { + wx.canvasToTempFilePath({ + canvasId: 'qrcode', + success: function (res) { + // res.tempFilePath 鍖呭惈鐢熸垚鐨勫浘鐗囨枃浠惰矾寰� + that.setData({ + imgUrl: res.tempFilePath + }) + } + }); + wx.canvasToTempFilePath({ + canvasId: 'qrcode1', + success: function (res) { + // res.tempFilePath 鍖呭惈鐢熸垚鐨勫浘鐗囨枃浠惰矾寰� + + that.setData({ + imgUrl1: res.tempFilePath + }) + } + }); + }, 1000) + } + }) + }, + //鑾峰彇涓昏浜� + getSpeaker(list) { + this.setData({ + lecturerList: [] + }) + 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) { + lecturerList.push({ + name: item1.name, + positionalTitle: item1.positionalTitle, + icon: item1.icon, + description: item1.description ? item1.description : '鏆傛棤绠�浠�' + }) + } + }) + } + }) + this.getPositionalTitle(lecturerList) + } + }) + }, + 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: list }) }) }, @@ -370,6 +458,9 @@ this.setData({ tabValue: value }) + if (this.data.tabValue == 0) { + this.digitalCoursesDetailsGet(this.data.bookId) + } if (this.data.tabValue == 1) { this.saveAsImage() } @@ -388,7 +479,8 @@ selectChange(event) { const value = event.target.dataset.value this.setData({ - selectActive: value + selectActive: value, + testCount: 0 }) this.getResource() }, @@ -427,7 +519,6 @@ res.datas.cmsDatas[0].datas.forEach((item) => { if (item.type == 'questionBankFolder' || item.type == 'questionBankItem') { test.push(item) - } else if (item.type != "resourceItem") { this.data.playerList.forEach(pItem => { if (pItem.cmsItemId == item.id) { @@ -439,9 +530,7 @@ if (item.type == 'productItem') { learnItemList.push(item) } - }) - if (this.data.selectActive === 'learn') { let list = [] // 娴嬭瘯 6浣�// 姝e紡 5浣�// 娴嬭瘯璋冪敤浼�20锛屽唴閮�7 姝e紡璋冪敤浼�17 鍐呴儴浼�6 @@ -611,6 +700,7 @@ //鍦ㄧ嚎娴嬭瘯鑾峰彇鏈�鍚庝竴涓妭鐐规暟閲� countLeafNodes(tree) { + tree.forEach(node => { if (!node.children || node.children.length === 0) { this.setData({ @@ -689,8 +779,11 @@ onCorrelationBook(e) { const item = e.currentTarget.dataset.item; - this.digitalCoursesDetailsGet(item.id) - this.getPlayerList() + this.onLoad({ + loading: true, + id: item.id, + path: item.idPath + }) }, // 鑾峰彇鐩稿叧璇剧▼ @@ -732,7 +825,7 @@ } }) this.setData({ - relatedBookData: bookArr + relatedBookData: bookArr.slice(0, 6) }) } else { this.setData({ @@ -774,7 +867,7 @@ Toast({ context: this, selector: "#t-toast", - message: "璇ヤ功宸插湪璐墿杞︼紝璇峰嬁閲嶅娣诲姞", + message: "璇ヨ绋嬪凡鍦ㄨ喘鐗╄溅锛岃鍕块噸澶嶆坊鍔�", theme: "warning", direction: "column", }); @@ -821,12 +914,13 @@ }) .then((res) => { if (res) { + this.digitalCoursesDetailsGet(this.data.digitalsData.id); wx.showToast({ title: "棰嗗彇鎴愬姛", icon: "none", duration: 1000, }); - this.getBookInfo(this.data.bookDetail.id); + this.digitalCoursesDetailsGet(this.data.bookId); } }); } else { @@ -870,7 +964,6 @@ (data) => { let width = data.width let height = data.height - console.log(width, height) that.setData({ imageWidth: width, imageHeight: height, @@ -878,26 +971,44 @@ }, ) .exec() - this.drawImage1() - + setTimeout(() => { + this.drawImage() + }, 500) + query + .select('#textCertificate') + .fields({ + // 閫夋嫨闇�瑕佺敓鎴恈anvas鐨勮寖鍥� + size: true, + node: true, + scrollOffset: true, + }, + (data) => { + let width = data.width + let height = data.height + that.setData({ + imageWidth: width, + imageHeight: height, + }) + }, + ) + .exec() + setTimeout(() => { + this.drawImage1() + }, 500) }, - drawImage1() { + drawImage() { let that = this; let drawMyImage = new Wxml2Canvas({ - // width: 230, - // height: 325, 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 - console.log('MyImageBase64', MyImageBase64) that.setData({ cbzsImg: MyImageBase64, pubCertificateHide: false, @@ -919,6 +1030,41 @@ }] } 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() { @@ -945,17 +1091,16 @@ app.MG.ugc.getTopicMessageList(data).then((res) => { res.datas.map((item) => { item.content = JSON.parse(item.content) - if (item.content.id == this.data.bookId) { + if (item.content.bookId == this.data.bookId) { this.setData({ - isCertificate: item + isCertificate: item, + userName: item.content.userName, + userPicture: app.config.requestCtx + `/file/GetPreViewImage?md5=` + item.content.userPicture }) } }) - }) }, - - onCertificate() { if (!this.data.isBuy) { @@ -966,14 +1111,14 @@ }); 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: "鎮ㄧ敵璇风殑璇佷功姝e湪瀹℃牳涓�", @@ -1065,6 +1210,10 @@ }, confirmM() { + let currentDate = new Date() + let year = currentDate.getFullYear() + let month = currentDate.getMonth() + 1 + let today = currentDate.getDate() if (this.data.userInfo.fullName) { if (this.data.pictureMd5 == '') { wx.showToast({ @@ -1082,42 +1231,89 @@ name: this.data.digitalsData.name, ISBN: this.data.digitalsData.isbn, affiliatedUnit: this.data.digitalsData.affiliatedUnit, + publishingUnit: this.data.publishingUnit, publicationDate: this.data.digitalsData.publicationDate, classHours: this.data.digitalsData.classHours, lecturerList: this.data.lecturerList.length > 0 ? this.data.lecturerList[0].name : this.data.digitalsData.courseLeader, + userName: this.data.userInfo.fullName, userPicture: this.data.pictureMd5, - certificate: this.data.rzzsImg + studyTime: this.data.digitalsData.beginDate + '-' + year + '-' + month + '-' + today, + website: this.data.website, + wxShareUrl: this.data.wxShareUrl } - data = { - topicIdOrRefCode: 'applyCourseCertificate', - name: this.data.userInfo.fullName, - content: JSON.stringify(bookInfo), - state: 'WaitAudit', - cmsTypeRefCode: 'jsek_courseCertificate', - type: 'applyCourse', - newDataListRequest: worksDataBytool(this.data.worksInfo, this.data.userInfo) + + if (this.data.isCertificate.id) { + let dataRequests = UpdateworksDataBytool( + this.data.worksInfo, + [this.data.isCertificate], + this.data.userInfo + ) + + data = { + id: this.data.isCertificate.id, + topicIdOrRefCode: 'applyCourseCertificate', + name: this.data.userInfo.fullName, + content: JSON.stringify(bookInfo), + state: 'WaitAudit', + cmsTypeRefCode: 'jsek_courseCertificate', + type: 'applyCourse', + newDataRequests: dataRequests.newData, + updateDataRequests: dataRequests.updateData, + delDataRequest: { + ids: [] + } + } + app.MG.ugc + .updateTopicMessage(data) + .then((res) => { + wx.showToast({ + title: "宸叉彁浜ょ敵璇�", + icon: "none", + duration: 1000, + }); + this.setData({ + "userInfo.fullName": "", + dialogBox: false, + scrollJudge: true + }) + this.getCertificateList() + }) + .catch(() => { + btnLoading.value = false + }) + + } else { + data = { + topicIdOrRefCode: 'applyCourseCertificate', + name: this.data.userInfo.fullName, + content: JSON.stringify(bookInfo), + state: 'WaitAudit', + cmsTypeRefCode: 'jsek_courseCertificate', + type: 'applyCourse', + 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": "", + }) + }) } - 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: "濮撳悕涓嶈兘涓虹┖", @@ -1196,7 +1392,7 @@ }, onClick2() { this.setData({ - images: ['https://jsek.bnuic.com/home/certificate/kczs.jpg'], + images: [this.data.rzzsImg], showIndex: true, visible: true, }) -- Gitblit v1.9.1