From b471803c1a9e4c1452a98a8b3631bde66641b910 Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期三, 25 九月 2024 15:01:50 +0800 Subject: [PATCH] css --- pages/digitalCourses/digitalCoursesDetails/index.js | 1133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 1,082 insertions(+), 51 deletions(-) diff --git a/pages/digitalCourses/digitalCoursesDetails/index.js b/pages/digitalCourses/digitalCoursesDetails/index.js index 4c3d661..aaa522c 100644 --- a/pages/digitalCourses/digitalCoursesDetails/index.js +++ b/pages/digitalCourses/digitalCoursesDetails/index.js @@ -1,6 +1,18 @@ // pages/digitalCourses/digitalCoursesDetails/index.js const app = getApp() +import SparkMD5 from 'spark-md5' +import FormData from '../../../utils/formdata/index.js'; +import Wxml2Canvas from 'wxml2canvas'; +import { + 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({ /** @@ -8,7 +20,9 @@ */ data: { loading: true, - digitalsData: [], + digitalsData: {}, + expire: false, //鍟嗗搧鎴栧瓙鍟嗗搧閿�鍞柟寮忔槸鍚﹁繃鏈� + isBuy: false, tabValue: 0, learnResourceIcon: { name: "/static/images/digitalTextbooks/shengshu-t@2x.png", @@ -41,22 +55,60 @@ 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: [{ - icon: '', - name: '鏋楀磭寰�', - title: '璁插笀', - introduce: '涓浗瀛︾敓鍙戝睍鏍稿績绱犲吇鐮斿埗棣栧腑涓撳锛屽洿缁曞ぇ涓皬瀛︽暀鏉愬缓璁惧紑灞曚簡涓�绯诲垪寮�鍒涙�с�佸鍩烘�у伐浣溿�傚缓绔嬪畬鍠勪簡鎴戝浗鍙戝睍蹇冪悊瀛︽暀鏉愪綋绯汇��' - }, - { - icon: '', - name: '鏋楀磭寰�', - title: '鏁欐巿', - introduce: '涓浗瀛︾敓鍙戝睍鏍稿績绱犲吇鐮斿埗棣栧腑涓撳锛屽洿缁曞ぇ涓皬瀛︽暀鏉愬缓璁惧紑灞曚簡涓�绯诲垪寮�鍒涙�с�佸鍩烘�у伐浣溿�傚缓绔嬪畬鍠勪簡鎴戝浗鍙戝睍蹇冪悊瀛︽暀鏉愪綋绯汇�備腑鍥藉鐢熷彂灞曟牳蹇冪礌鍏荤爺鍒堕甯笓瀹讹紝鍥寸粫澶т腑灏忓鏁欐潗寤鸿寮�灞曚簡涓�绯诲垪寮�鍒涙�с�佸鍩烘�у伐浣溿�傚缓绔嬪畬鍠勪簡鎴戝浗鍙戝睍蹇冪悊瀛︽暀鏉愪綋绯�' - } - ] - + lecturerList: [], + selectActive: 'learn', + learnList: [], + testList: [], + testCount: 0, + openTeachids: [], + onlineQuestionsList: [], + //鍒嗛〉 + page: 1, + limit: 6, + questionTotalCount: 0, + bottomLoading: false, + isMoreData: false, + noteList: [], + notePage: 1, + noteLimit: 6, + noteTotalCount: 0, + images: [], + visible: false, + showIndex: false, + closeBtn: false, + deleteBtn: false, + bookId: '', + bookPath: '', + playerList: [], + worksInfo: [], + isCertificate: {}, + isLearn: false, + isTest: false, + userInfo: { + fullName: '', //鍚嶇О + userPicture: '' //鐢宠璇佷功鐢ㄦ埛鍥剧墖 + }, + userName: '', + pictureMd5: '', + publishingUnit: '', + pubCertificateHide: true, + cbzsImg: '', //鍑虹増璇佷功base64 + rzzsImg: '', //璁よ瘉璇佷功base64 + imageWidth: '', //鐢诲湪鐢诲竷涓婄殑鍥剧墖鐨勫搴� + imageHeight: '', //鐢诲湪鐢诲竷涓婄殑鍥剧墖鐨勯珮搴� + website: 'https://jsek.bnuic.com/home/#/digitalCourses', + wxShareUrl: '', + imgUrl: '', + imgUrl1: '' }, formatDate(dateString) { if (!dateString) { @@ -108,9 +160,25 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 */ onLoad(options) { - console.log(options); + let parentPath = options.path.split('\\'); + parentPath.pop(); + this.setData({ + 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() }, /** @@ -124,6 +192,10 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず */ onShow() { + if (this.data.tabValue == 2) { + this.getPlayerList() + this.getResource() + } }, @@ -158,11 +230,25 @@ /** * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜� */ - onShareAppMessage() { - + onShareAppMessage() {}, + onShareTimeline() {}, + //鑾峰彇瑙嗛瀛︿範 + 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) + }) + } + }) }, digitalCoursesDetailsGet(digitalTextId) { - + let that = this; let query = { path: '*', queryType: '*', @@ -176,6 +262,7 @@ author: [], isbn: [], publicationDate: [], + speaker: [], bookClassification: [], paperPrice: [], JDLink: [], @@ -194,23 +281,172 @@ affiliatedUnit: [], publishingUnit: [], classHours: [], - productLinkPath: [] + productLinkPath: [], + //epub璇曡鐧惧垎姣� } } - app.MG.store.getProductDetail(query).then(res => { - console.log(res); - res.datas.publicationDate = this.formatDate(res.datas.publicationDate) + 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 + }) + } + 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 + }) + } + res.datas.publicationDate = moment(res.datas.publicationDate).format('YYYY骞碝M鏈�') 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) + } + if (res.datas.datas.speaker && res.datas.datas.speaker.length > 0) { + this.getSpeaker(res.datas.datas.speaker) + } else { + this.setData({ + lecturerList: [] + }) + } + 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 + 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 + }) + }) + }, + + //鑾峰彇鍥句功鍑虹増鍗曚綅 + 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) { @@ -218,10 +454,385 @@ this.setData({ tabValue: value }) - console.log(this.data.tabValue); + if (this.data.tabValue == 0) { + this.digitalCoursesDetailsGet(this.data.bookId) + } + if (this.data.tabValue == 1) { + this.saveAsImage() + } + if (this.data.tabValue == 2) { + this.getResource() + this.getRelationBook() + } + if (this.data.tabValue == 3) { + this.selectComponent("#note").getNoteList(); + } + if (this.data.tabValue == 4) { + this.selectComponent("#question").getDataList(); + } }, + selectChange(event) { + const value = event.target.dataset.value + this.setData({ + selectActive: value, + testCount: 0 + }) + this.getResource() + }, + getResource() { + let query = { + storeInfo: app.config.digitalCourses, + path: '*', + queryType: '*', + productId: this.data.digitalsData.id, + cmsPath: this.data.digitalsData.rootCmsItemId + '', + cmsType: '*', + itemFields: { + SysType: 'CmsFolder', + selectType: [], + freeFile: [], + file: [], + protectedFile: [], + resourcesClassification: [], + isDownload: [], + jsek_resourceBrief: [], + jsek_link: [], + jsek_questionBank: [], + learnSelectType: [] + }, + pading: { + start: 99, + size: 0 + } + } + app.MG.store.getProductDetail(query).then((res) => { + 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 + let addNum = query.cmsPath.length > 5 ? 7 : query.cmsPath.length > 6 ? 8 : 6 + const num = query.cmsPath.length + addNum + if (learn.some((item) => item.sysType == 'CmsFolder')) { + this.getTreeList(learn, num, list, '\\', addNum) + list = this.ensureTreeConsistency(list) + } else { + list = learn + } + let result = []; + this.findChildIds(list, result) + if (list.length > 0) { + this.setData({ + learnList: list, + openTeachids: result, + }); + console.log(1, this.data.learnList, this.data.playerList) + } + } else { + const data = test.filter( + (item) => item.type == 'questionBankFolder' && item.childrenFolderCount > 0 + ) + + if (data.length > 0) { + let list = [] + let addNum = query.cmsPath.length > 5 ? 7 : query.cmsPath.length > 6 ? 8 : 6 + const num = query.cmsPath.length + addNum + this.getTreeList(data, num, list, '\\', addNum) + list = this.ensureTreeConsistency(list) + let result = []; + this.findChildIds(list[0].children, result) + this.countLeafNodes(list[0].children) + this.setData({ + testList: list[0].children, + 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, + }); + } + } + }) + }, + // 鎵佸钩鍖栨暟鎹浆鎹ree + getTreeList(rootList, pathLength, newArr, path, addNum) { + for (const item of rootList) { + // 姝ゅ鍘熸湰 item.productLinkPath.length == pathLength 浣� productLinkPath 闀垮害涓埆涔﹀瓨鍦�4銆�5浣嶄氦閿� + if ((pathLength - item.productLinkPath.length >= 0 && pathLength - item.productLinkPath.length <= 3) && item.productLinkPath.includes(path)) { + if (item.sysType == 'CmsItem') { + if (item.selectType == 'webpage') { + item.disabled = true + } else { + if (item.isDownload != 1) { + item.disabled = true + } + } + if (item.file && item.fileMap && item.fileMap[item.file]) { + if (item.fileMap[item.file].protectType == 'Private') item.disabled = true + } + } + // newArr.push(item) + // 鍦ㄦ彃鍏ヨ繃绋嬩腑瀵规暟鎹繘琛屾帓搴� + newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item, addNum) + } + } + //缁欐暟缁勯噷闈㈠啀娣诲姞涓�涓猚hildren鐨勭┖鏁扮粍 + for (const i of newArr) { + i.children = [] + this.getTreeList(rootList, pathLength + addNum, i.children, i.productLinkPath, addNum) + if (i.children.length == 0) { + newArr[0].istry = true + delete i.children + } + } + return newArr + }, + + // 鍘婚櫎鏍戠粨鏋勫浣欓」 + ensureTreeConsistency(tree) { + for (let index = 0; index < tree.length; index++) { + const item = tree[index]; + if (item.children && item.children.length) { + const isFloder = item.children.findIndex(citem => citem.sysType == 'CmsFolder') + const isItem = item.children.findIndex(citem => citem.sysType == 'CmsItem') + if (isFloder > -1 && isItem > -1) { + item.children = item.children.filter(ditem => ditem.sysType == 'CmsItem') + } + this.ensureTreeConsistency(item.children) + } + } + return tree + }, + + // 鎺掑簭鏁扮粍 鎸夌収productLinkPath + insertAndSortObjectsByProductLinkPath(array, newObj, addNum) { + // 鏌ユ壘鏂板璞″簲璇ユ彃鍏ョ殑浣嶇疆 + let insertIndex = array.findIndex(obj => Number(newObj.productLinkPath.substring(newObj.productLinkPath.length - addNum, newObj.productLinkPath.length)) < Number(obj.productLinkPath.substring(obj.productLinkPath.length - addNum, obj.productLinkPath.length))); + + // 濡傛灉娌℃湁鎵惧埌鍚堥�傜殑浣嶇疆锛屽垯鏀惧湪鏁扮粍鏈熬 + if (insertIndex === -1) { + insertIndex = array.length; + } + // 鎻掑叆鏂板璞″埌鏁扮粍 + array.splice(insertIndex, 0, newObj); + // 娴嬭瘯6 姝e紡5 + // 瀵规暟缁勮繘琛屾帓搴� + array.sort((a, b) => { + if (Number(a.productLinkPath.substring(a.productLinkPath.length - addNum, a.productLinkPath.length)) < Number(b.productLinkPath.substring(b.productLinkPath.length - addNum, b.productLinkPath.length))) { + return -1; + } + if (Number(a.productLinkPath.substring(a.productLinkPath.length - addNum, a.productLinkPath.length)) > Number(b.productLinkPath.substring(b.productLinkPath.length - addNum, b.productLinkPath.length))) { + return 1; + } + // a must be equal to b + return 0; + }); + + // 杩斿洖鏇存柊鍚庣殑鏁扮粍 + return array; + }, + + // 鑾峰彇灞曞紑椤� + findChildIds(data, result) { + let index = 0 + for (let i = 0; i < data.length; i++) { + if (index < 3) { + 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.childrenCount > 0) { + result.push(childrenItme.id) + index += 1 + } + } else { + break + } + } + } else if (item.childrenCount > 0) { + result.push(item.id) + index += 1 + } + } else { + break + } + } + }, + + //鍦ㄧ嚎娴嬭瘯鑾峰彇鏈�鍚庝竴涓妭鐐规暟閲� + countLeafNodes(tree) { + + tree.forEach(node => { + if (!node.children || node.children.length === 0) { + this.setData({ + testCount: this.data.testCount + 1 + }) + } else { + this.countLeafNodes(node.children); + } + }); + }, + + //鑾峰彇鍏宠仈瀛愬晢鍝�/鏁板瓧鏁欐潗 + 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) => { + if (res.datas.length > 0) { + 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 + }) + } + } + }) + }, + + readTextBook() { + wx.navigateTo({ + url: '/pages/digitalCourses/digitalCoursesDetails/components/digitalRead/index?refCode=' + this.data.relationTextBook.refCode + '&tryPageCount=' + this.data.relationTextBook.probationPage + '&isTextBookBuy=' + this.data.isTextBookBuy + }) + }, + + //鍦ㄧ嚎娴嬭瘯鎴戠殑鏀惰棌銆佹垜鐨勯敊棰� + goMycollect(e) { + const answertype = e.currentTarget.dataset.answertype; + const token = wx.getStorageSync("jsek-token"); + if (!token) { + return wx.getUserProfile({ + desc: "鐢ㄦ埛鐧诲綍", + success: (res) => { + console.log(res); + }, + }); + } + wx.navigateTo({ + url: `/packageBookService/pages/bookServices/examination/examination?bookId=${ + this.data.digitalsData.id + }&rootCmsItemId=${this.data.digitalsData.rootCmsItemId}&answerTitle=${ + answertype == "collectQuestion" ? "鎴戠殑鏀惰棌" : "鎴戠殑閿欓" + }&answerType=${answertype}&storeInfo=${app.config.digitalCourses}`, + }); + }, + + onCorrelationBook(e) { + const item = e.currentTarget.dataset.item; + this.onLoad({ + loading: true, + id: item.id, + path: item.idPath + }) + }, + + // 鑾峰彇鐩稿叧璇剧▼ + 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.slice(0, 6) + }) + } else { + this.setData({ + relatedBookData: [] + }) + } + }) + }, + //瀛︿範绗旇 + //鍦ㄧ嚎鎻愰棶 // 鍥句功娣诲姞璐墿杞� async addBookShopcCar() { if (!this.data.expire) { @@ -253,7 +864,7 @@ Toast({ context: this, selector: "#t-toast", - message: "璇ヤ功宸插湪璐墿杞︼紝璇峰嬁閲嶅娣诲姞", + message: "璇ヨ绋嬪凡鍦ㄨ喘鐗╄溅锛岃鍕块噸澶嶆坊鍔�", theme: "warning", direction: "column", }); @@ -277,7 +888,6 @@ }, //璐拱鎸夐挳 - async buyBtn() { if (!this.data.expire) { let bookOrdersId = ""; @@ -291,7 +901,6 @@ // 鍙戣捣璁㈠崟鍒濆鍖栬姹傚苟绛夊緟缁撴灉 const res = await app.MG.store.initOrder(query); // 鑾峰彇璁㈠崟鍙峰苟璧嬪�肩粰 orderNumber.value - console.log(res, 'res456'); bookOrdersId = res.orderNumber; // 妫�鏌ヨ鍗曞彿鏄惁瀛樺湪 if (bookOrdersId) { @@ -301,14 +910,14 @@ orderNum: bookOrdersId, }) .then((res) => { - this.digitalTextbooksDetailsGet(this.data.digitalTextId) 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 { @@ -317,9 +926,7 @@ url, }); } - } else { - console.log(222); - } + } else {} } else { wx.showToast({ title: "鍟嗗搧涓嶅湪鏈夋晥鏈�", @@ -328,15 +935,8 @@ }); } }, - showDialog(e) { - const { - key - } = e.currentTarget.dataset; - this.setData({ - [key]: true, - dialogKey: key - }); - }, + + closeDialog() { const { @@ -346,8 +946,184 @@ [dialogKey]: false }); }, - onCertificate() { + //鐢宠璇佷功 + async saveAsImage() { + const that = this + const query = wx.createSelectorQuery().in(this) + query + .select('#pubCertificate') + .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.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) + }, + drawImage() { + let that = this; + let drawMyImage = new Wxml2Canvas({ + width: that.data.imageWidth, + height: that.data.imageHeight, + element: 'myCanvas', + progress(percent) {}, + finish(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) + } + }, this); + 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() { + 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.bookId == this.data.bookId) { + this.setData({ + isCertificate: item, + userName: item.content.userName, + userPicture: app.config.requestCtx + `/file/GetPreViewImage?md5=` + item.content.userPicture + }) + } + }) + }) + }, + + 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({ @@ -365,10 +1141,265 @@ 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 => { + //鎴愬姛鐨勫洖璋� + 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() { + 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({ + 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, + 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, + studyTime: this.data.digitalsData.beginDate + '-' + year + '-' + month + '-' + today, + website: this.data.website, + wxShareUrl: this.data.wxShareUrl + } + + 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": "", + }) + }) + } + } else { + wx.showToast({ + title: "濮撳悕涓嶈兘涓虹┖", + icon: "none", + duration: 1000, + }); + } + }, + setCoolect() { + // 棣栭〉娴嬭瘯鐧诲綍鍔熻兘锛屽悗缁敞閲� + // 妫�鏌ョ櫥褰曠姸鎬� + const token = wx.getStorageSync(app.config.tokenKey) + if (!token) { + loginInfo(app, (data) => { + // 濡傛灉涓嶆槸绗竴娆$櫥褰曪紝浼氭墽琛屽洖璋� + if (data) { + if (this.data.digitalsData.isFavourite) { + app.MG.store + .delProductLink({ + productIds: [this.data.digitalsData.id], + linkType: 'Favoriteclass' + }) + .then(() => { + this.setData({ + "digitalsData.isFavourite": false + }) + }) + } else { + let params = { + productIds: [this.data.digitalsData.id], + linkType: 'Favoriteclass' + } + app.MG.store.addProductLink(params).then((res) => { + this.setData({ + "digitalsData.isFavourite": true + }) + }) + } + } else { + // 鍑虹幇閿欒锛岃繑鍥瀎alse + } + }) + } else { + if (this.data.digitalsData.isFavourite) { + app.MG.store + .delProductLink({ + productIds: [this.data.digitalsData.id], + linkType: 'Favoriteclass' + }) + .then(() => { + this.setData({ + "digitalsData.isFavourite": false + }) + }) + } else { + let params = { + productIds: [this.data.digitalsData.id], + linkType: 'Favoriteclass' + } + app.MG.store.addProductLink(params).then((res) => { + this.setData({ + "digitalsData.isFavourite": true + }) + }) + } + } + }, + + //璇佷功鏌ョ湅 + onClick1() { + this.setData({ + images: [this.data.cbzsImg], + showIndex: true, + visible: true, }) - } + }, + onClick2() { + this.setData({ + images: [this.data.rzzsImg], + showIndex: true, + visible: true, + }) + }, + onClose(e) { + const { + trigger + } = e.detail; + this.setData({ + visible: false, + }); + }, }) \ No newline at end of file -- Gitblit v1.9.1