From c3086cda662e2b908cf96b6b3ff599713eb924d6 Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期一, 02 九月 2024 16:59:16 +0800 Subject: [PATCH] gongneng --- pages/digitalCourses/digitalCoursesDetails/index.js | 453 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 443 insertions(+), 10 deletions(-) diff --git a/pages/digitalCourses/digitalCoursesDetails/index.js b/pages/digitalCourses/digitalCoursesDetails/index.js index 27e1095..766d579 100644 --- a/pages/digitalCourses/digitalCoursesDetails/index.js +++ b/pages/digitalCourses/digitalCoursesDetails/index.js @@ -1,7 +1,17 @@ // pages/digitalCourses/digitalCoursesDetails/index.js const app = getApp() +import SparkMD5 from 'spark-md5' +import FormData from '../../../utils/formdata/index.js'; +// import Wxml2Canvas from 'wxml2canvas'; +// const Wxml2Canvas = require('Wxml2Canvas') +import { + worksDataBytool +} from "../../../assets/js/toolClass.js"; import moment from 'moment' import Toast from "tdesign-miniprogram/toast"; +import { + loginInfo +} from '../../../assets/js/login'; Page({ /** @@ -44,7 +54,14 @@ onlineQuestioningClick: { name: "/static/images/digitalCourses/tiwen-click@2x.png" }, - + testResourceClickIocn: { + name: "/static/images/digitalTextbooks/link-t-click@3x.png", + }, + testResourceIocn: { + name: "/static/images/digitalTextbooks/link-t@3x.png", + }, + relationTextBook: null, + isTextBookBuy: false, dialogBox: false, lecturerList: [], selectActive: 'learn', @@ -62,6 +79,27 @@ notePage: 1, noteLimit: 6, noteTotalCount: 0, + images: [], + visible: false, + showIndex: false, + closeBtn: false, + deleteBtn: false, + bookId: '', + playerList: [], + worksInfo: [], + isCertificate: {}, + isLearn: false, + isTest: false, + userInfo: { + fullName: '', //鍚嶇О + userPicture: '' //鐢宠璇佷功鐢ㄦ埛鍥剧墖 + }, + pictureMd5: '', + publishingUnit: '', + pubCertificateHide: true, + cbzsImg: '', //鍑虹増璇佷功base64 + rzzsImg: '' //璁よ瘉璇佷功base64 + }, formatDate(dateString) { if (!dateString) { @@ -113,9 +151,13 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 */ onLoad(options) { - console.log(options); + this.setData({ + bookId: options.id + }) this.digitalCoursesDetailsGet(options.id) - + this.getPlayerList() + this.getType() + this.getCertificateList() }, /** @@ -166,6 +208,22 @@ onShareAppMessage() { }, + //鑾峰彇瑙嗛瀛︿範 + getPlayerList() { + app.MG.identity + .getUserKey({ + domain: 'videoPlayer', + keys: [this.data.bookId] + }) + .then((res) => { + if (res.length > 0) { + this.setData({ + playerList: JSON.parse(res[0].value) + }) + console.log(this.data.playerList, "playerList") + } + }) + }, digitalCoursesDetailsGet(digitalTextId) { let query = { path: '*', @@ -204,7 +262,7 @@ //epub璇曡鐧惧垎姣� } } - app.MG.store.getProductDetail(query).then(res => { + app.MG.store.getProductDetail(query).then(async res => { console.log(res); if (res.datas.purchasedSaleMethodIdList.includes(res.datas.defaultSaleMethodId)) { this.setData({ @@ -226,12 +284,15 @@ expire: res.false }) } - res.datas.publicationDate = this.formatDate(res.datas.publicationDate) + res.datas.publicationDate = moment(res.datas.publicationDate).format('YYYY骞碝M鏈圖D鏃�') res.datas.price = res.datas.price.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 => { @@ -249,12 +310,36 @@ } }) } + this.getAboutBook(res.datas.productLinkInfo[res.datas.productLinkInfo.length - 1].LinkPath) this.setData({ lecturerList: lecturer, digitalsData: res.datas, loading: false }) + }) + }, + + //鑾峰彇鍥句功鍑虹増鍗曚綅 + 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) { @@ -265,6 +350,7 @@ console.log(this.data.tabValue); if (this.data.tabValue == 2) { this.getResource() + this.getRelationBook() } if (this.data.tabValue == 3) { this.selectComponent("#note").getNoteList(); @@ -310,17 +396,27 @@ } } app.MG.store.getProductDetail(query).then((res) => { - console.log(res.datas, 1111) let test = [] let learn = [] + let learnItemList = [] if (res.datas.cmsDatas[0].datas.length > 0) { 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) { + item.progress = pItem.progress + } + }) learn.push(item) } + if (item.type == 'productItem') { + learnItemList.push(item) + } + }) + if (this.data.selectActive === 'learn') { let list = [] // 娴嬭瘯 6浣�// 姝e紡 5浣�// 娴嬭瘯璋冪敤浼�20锛屽唴閮�7 姝e紡璋冪敤浼�17 鍐呴儴浼�6 @@ -357,6 +453,24 @@ openTeachids: result, }); } + } + //鍒ゆ柇璧勬簮鏄惁瀛︿範瀹屾垚 + if (learnItemList.length == this.data.playerList.length) { + let data = this.data.playerList.filter((ditem) => ditem.progress != '100') + if (data) { + this.setData({ + isLearn: false, + }); + + } else { + this.setData({ + isLearn: true, + }); + } + } else { + this.setData({ + isLearn: false, + }); } } }) @@ -465,6 +579,99 @@ break } } + }, + + //鑾峰彇鍏宠仈瀛愬晢鍝�/鏁板瓧鏁欐潗 + getRelationBook() { + app.MG.store.getProductList({ + path: '*', + storeInfo: app.config.digitalCourses, + mainProductId: this.data.digitalsData.id, + queryType: 'Related', // 鏌ヨ绫诲瀷锛� Related锛氭煡璇㈠叧鑱斿晢鍝侊紱SubProduct: 鏌ヨ瀛愬晢鍝侊紱 + paging: { + start: 0, + size: 1 + }, + fields: { + author: [], + publicationDate: [], + isbn: [], + content: [], + Creator: [], + probationPage: [] + } + }) + .then((res) => { + this.setData({ + relationTextBook: res.datas[0] + }) + if (this.data.relationTextBook.purchasedSaleMethodIdList.includes(this.data.relationTextBook.defaultSaleMethodId)) { + this.setData({ + isTextBookBuy: true + }) + } else { + this.setData({ + isTextBookBuy: false + }) + } + console.log(this.data.relationTextBook, "jc") + }) + }, + + readTextBook() { + wx.navigateTo({ + url: '/pages/digitalCourses/digitalCoursesDetails/components/digitalRead/index?refCode=' + this.data.relationTextBook.refCode + '&tryPageCount=' + this.data.relationTextBook.probationPage + '&isTextBookBuy=' + this.data.isTextBookBuy + }) + }, + + // 鑾峰彇鐩稿叧璇剧▼ + getAboutBook(path) { + let query = { + path, + queryType: '*', + coverSize: { + width: 260 + }, + paging: { + start: 0, + size: 9 + }, + fields: { + author: [], + publicationDate: [] + } + } + app.MG.store.getProductList(query).then(res => { + const Arr = res.datas.filter( + (item) => item.id != this.data.digitalsData.id + ); + let bookArr = [] + if (Arr.length) { + 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 + } + bookArr.forEach(item => { + if (item.icon == '') { + item.icon = '/static/images/default-book-img.png' + } + }) + this.setData({ + relatedBookData: bookArr + }) + console.log(this.data.relatedBookData); + } else { + this.setData({ + relatedBookData: [] + }) + } + }) }, //瀛︿範绗旇 //鍦ㄧ嚎鎻愰棶 @@ -584,7 +791,85 @@ }); }, //鐢宠璇佷功 + async saveAsImage() { + await nextTick() + let query = wx.createSelectorQuery(); + let value = query.select("#pubCertificate").boundingClientRect(); + 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 + // }) + + pubCertificateHide.value = false + }, + //鑾峰彇瀛楁 + getType() { + app.MG.resource.getCmsTypeByRefCode({ + refCodes: ['jsek_courseCertificate'] + }).then((res) => { + this.setData({ + worksInfo: res[0].cmsTypeLinks[0].children, + }) + }) + }, + getCertificateList() { + const data = { + start: 0, + size: 9999, + topicIdOrRefCode: 'applyCourseCertificate', + 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.bookId) { + 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: "鎮ㄧ敵璇风殑璇佷功姝e湪瀹℃牳涓�", + icon: "none", + duration: 1000, + }); + return false + } + var page = getCurrentPages().pop(); // 鑾峰彇褰撳墠椤甸潰瀹炰緥 page.setData({ // 鍔ㄦ�佽缃姝㈡粴鍔ㄧ殑鏍峰紡 @@ -601,11 +886,134 @@ scrollJudge: true }) }, - confirmM() { + + //濮撳悕 + onFullNameInput(e) { this.setData({ - dialogBox: false, - scrollJudge: true - }) + "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 => { + //鎴愬姛鐨勫洖璋� + console.log(ress.data, 45613489) + 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) { + console.log(md5, "md5555") + 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, + courseLeader: this.data.digitalsData.courseLeader, + name: this.data.digitalsData.name, + ISBN: this.data.digitalsData.isbn, + affiliatedUnit: this.data.digitalsData.affiliatedUnit, + 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, + userPicture: this.data.pictureMd5, + certificate: this.data.rzzsImg + } + 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": "", + }) + }) + } else { + wx.showToast({ + title: "濮撳悕涓嶈兘涓虹┖", + icon: "none", + duration: 1000, + }); + } }, setCoolect() { // 棣栭〉娴嬭瘯鐧诲綍鍔熻兘锛屽悗缁敞閲� @@ -666,4 +1074,29 @@ } } }, + + //璇佷功鏌ョ湅 + onClick1() { + this.setData({ + images: ['https://jsek.bnuic.com/home/certificate/szkc.jpg'], + showIndex: true, + visible: true, + }) + }, + onClick2() { + this.setData({ + images: ['https://jsek.bnuic.com/home/certificate/kczs.jpg'], + showIndex: true, + visible: true, + }) + }, + onClose(e) { + const { + trigger + } = e.detail; + console.log(trigger); + this.setData({ + visible: false, + }); + }, }) \ No newline at end of file -- Gitblit v1.9.1