From b97bfcb85b2ded3b1f380e9a98b54b836faabba5 Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期五, 28 三月 2025 14:26:35 +0800 Subject: [PATCH] 除过数字教材外的页面的登录迁移 --- pages/digitalCourses/digitalCoursesDetails/index.js | 526 +++++++++++++++++++++++++++++++++------------------------- 1 files changed, 297 insertions(+), 229 deletions(-) diff --git a/pages/digitalCourses/digitalCoursesDetails/index.js b/pages/digitalCourses/digitalCoursesDetails/index.js index 21b05e9..36a5698 100644 --- a/pages/digitalCourses/digitalCoursesDetails/index.js +++ b/pages/digitalCourses/digitalCoursesDetails/index.js @@ -4,13 +4,16 @@ 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 +106,10 @@ rzzsImg: '', //璁よ瘉璇佷功base64 imageWidth: '', //鐢诲湪鐢诲竷涓婄殑鍥剧墖鐨勫搴� imageHeight: '', //鐢诲湪鐢诲竷涓婄殑鍥剧墖鐨勯珮搴� - website: 'https://jsek.bnuic.com', + website: 'https://jsek.bnuic.com/home/#/digitalCourses', + wxShareUrl: '', + imgUrl: '', + imgUrl1: '' }, formatDate(dateString) { if (!dateString) { @@ -161,25 +167,20 @@ 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, - }) - console.log('1', options.id); }, - + logInFun(callback) { + loginInfo(app, (data) => { + if (data) { + this.digitalCoursesDetailsGet(options.id) + this.getPlayerList() + this.getType() + callback() + } + }) + }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚 */ @@ -191,11 +192,11 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず */ onShow() { - if (this.data.tabValue == 2) { + if (this.data.tabValue == 2 && this.data.selectActive == 'learn') { this.getPlayerList() this.getResource() + this.getRelationBook() } - }, /** @@ -239,6 +240,7 @@ keys: [this.data.bookId + ''] }) .then((res) => { + console.log(1, res); if (res.length > 0) { this.setData({ playerList: JSON.parse(res[0].value) @@ -247,6 +249,7 @@ }) }, digitalCoursesDetailsGet(digitalTextId) { + let that = this; let query = { path: '*', queryType: '*', @@ -305,7 +308,7 @@ expire: res.false }) } - res.datas.publicationDate = moment(res.datas.publicationDate).format('YYYY骞碝M鏈�') + res.datas.publicationDate = 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({ @@ -333,8 +336,34 @@ ) 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) + } }) }, //鑾峰彇涓昏浜� @@ -447,7 +476,8 @@ selectChange(event) { const value = event.target.dataset.value this.setData({ - selectActive: value + selectActive: value, + testCount: 0 }) this.getResource() }, @@ -501,12 +531,17 @@ 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) + // 1.鍙湁鐩綍锛屾病鏈夎祫婧� + if (!learn.some((item) => item.sysType == 'CmsItem')) { + list = learn + } else { + // 2.鐩綍鍜岃祫婧愰兘鏈� + this.getTreeList(learn, list, query.cmsPath) + list = this.ensureTreeConsistency(list) + } } else { + // 3.鍙湁璧勬簮锛屾病鏈夌洰褰� list = learn } let result = []; @@ -516,22 +551,18 @@ 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) + this.getTreeList(data, list, query.cmsPath) list = this.ensureTreeConsistency(list) let result = []; - this.findChildIds(list[0].children, result) - this.countLeafNodes(list[0].children) + this.findChildIds(list[0]?.children, result) + this.countLeafNodes(list[0]?.children) this.setData({ testList: list[0].children, openTeachids: result, @@ -560,10 +591,9 @@ }) }, // 鎵佸钩鍖栨暟鎹浆鎹ree - getTreeList(rootList, pathLength, newArr, path, addNum) { + getTreeList(rootList, newArr, path) { 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 (path == item.productLinkPath.replace('\\' + item.id, '')) { if (item.sysType == 'CmsItem') { if (item.selectType == 'webpage') { item.disabled = true @@ -578,15 +608,16 @@ } // newArr.push(item) // 鍦ㄦ彃鍏ヨ繃绋嬩腑瀵规暟鎹繘琛屾帓搴� - newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item, addNum) + newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item) + // 鎻掕繘鏁扮粍鍚� 浠庡師鏁版嵁涓垹闄� + rootList = rootList.filter(nitem => nitem.id != item.id) } } //缁欐暟缁勯噷闈㈠啀娣诲姞涓�涓猚hildren鐨勭┖鏁扮粍 for (const i of newArr) { i.children = [] - this.getTreeList(rootList, pathLength + addNum, i.children, i.productLinkPath, addNum) + this.getTreeList(rootList, i.children, i.productLinkPath) if (i.children.length == 0) { - newArr[0].istry = true delete i.children } } @@ -610,29 +641,21 @@ }, // 鎺掑簭鏁扮粍 鎸夌収productLinkPath - insertAndSortObjectsByProductLinkPath(array, newObj, addNum) { + insertAndSortObjectsByProductLinkPath(array, newObj) { // 鏌ユ壘鏂板璞″簲璇ユ彃鍏ョ殑浣嶇疆 - 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))); - + let insertIndex = array.findIndex(obj => newObj.id < obj.id); // 濡傛灉娌℃湁鎵惧埌鍚堥�傜殑浣嶇疆锛屽垯鏀惧湪鏁扮粍鏈熬 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 + if (a.id < b.id) return -1; + if (a.id > b.id) return 1; return 0; }); - // 杩斿洖鏇存柊鍚庣殑鏁扮粍 return array; }, @@ -668,6 +691,7 @@ //鍦ㄧ嚎娴嬭瘯鑾峰彇鏈�鍚庝竴涓妭鐐规暟閲� countLeafNodes(tree) { + tree.forEach(node => { if (!node.children || node.children.length === 0) { this.setData({ @@ -804,48 +828,57 @@ //瀛︿範绗旇 //鍦ㄧ嚎鎻愰棶 // 鍥句功娣诲姞璐墿杞� - async addBookShopcCar() { - if (!this.data.expire) { - const shoppingCartGetId = []; - let query = { - start: 0, - size: 9999, - filterList: [], - searchList: [], - }; - const res = await app.MG.store.getShoppingCartProductList(query); - res.datas.forEach((item) => { - shoppingCartGetId.push(item.saleMethod.id); - }); - const determine = shoppingCartGetId.some( - (item) => item == this.data.digitalsData.defaultSaleMethodId - ); - if (!determine) { + addBookShopcCar() { + const addFun = async () => { + if (!this.data.expire) { + const shoppingCartGetId = []; let query = { - requests: [{ - saleMethodId: this.data.digitalsData.defaultSaleMethodId, - storeEventId: null, - agentCode: "鐢靛瓙涔�", - }, ], + start: 0, + size: 9999, + filterList: [], + searchList: [], }; - const addRes = app.MG.store.addShoppingCart(query); - this.showSuccessToast(); + const res = await app.MG.store.getShoppingCartProductList(query); + res.datas.forEach((item) => { + shoppingCartGetId.push(item.saleMethod.id); + }); + const determine = shoppingCartGetId.some( + (item) => item == this.data.digitalsData.defaultSaleMethodId + ); + if (!determine) { + let query = { + requests: [{ + saleMethodId: this.data.digitalsData.defaultSaleMethodId, + storeEventId: null, + agentCode: "鐢靛瓙涔�", + }, ], + }; + const addRes = app.MG.store.addShoppingCart(query); + this.showSuccessToast(); + } else { + Toast({ + context: this, + selector: "#t-toast", + message: "璇ヨ绋嬪凡鍦ㄨ喘鐗╄溅锛岃鍕块噸澶嶆坊鍔�", + theme: "warning", + direction: "column", + }); + } } else { - Toast({ - context: this, - selector: "#t-toast", - message: "璇ヤ功宸插湪璐墿杞︼紝璇峰嬁閲嶅娣诲姞", - theme: "warning", - direction: "column", + wx.showToast({ + title: "鍟嗗搧涓嶅湪鏈夋晥鏈�", + icon: "none", + duration: 1000, }); } - } else { - wx.showToast({ - title: "鍟嗗搧涓嶅湪鏈夋晥鏈�", - icon: "none", - duration: 1000, - }); } + const token = wx.getStorageSync(app.config.tokenKey) + if (!token) { + this.logInFun(() => {}) + } else { + addFun() + } + }, showSuccessToast() { Toast({ @@ -859,51 +892,60 @@ //璐拱鎸夐挳 async buyBtn() { - if (!this.data.expire) { - let bookOrdersId = ""; - let query = { - remarks: "鐢靛瓙涔�", - requests: [{ - saleMethodId: this.data.digitalsData.defaultSaleMethodId, - count: 1, - }, ], - }; - // 鍙戣捣璁㈠崟鍒濆鍖栬姹傚苟绛夊緟缁撴灉 - const res = await app.MG.store.initOrder(query); - // 鑾峰彇璁㈠崟鍙峰苟璧嬪�肩粰 orderNumber.value - bookOrdersId = res.orderNumber; - // 妫�鏌ヨ鍗曞彿鏄惁瀛樺湪 - if (bookOrdersId) { - if (this.data.digitalsData.price == "0.00") { - app.MG.store - .confirmOrder({ - orderNum: bookOrdersId, - }) - .then((res) => { - if (res) { - this.digitalCoursesDetailsGet(this.data.digitalsData.id); - wx.showToast({ - title: "棰嗗彇鎴愬姛", - icon: "none", - duration: 1000, - }); - this.digitalCoursesDetailsGet(this.data.bookId); - } + const buyFun = async () => { + if (!this.data.expire) { + let bookOrdersId = ""; + let query = { + remarks: "鐢靛瓙涔�", + requests: [{ + saleMethodId: this.data.digitalsData.defaultSaleMethodId, + count: 1, + }, ], + }; + // 鍙戣捣璁㈠崟鍒濆鍖栬姹傚苟绛夊緟缁撴灉 + const res = await app.MG.store.initOrder(query); + // 鑾峰彇璁㈠崟鍙峰苟璧嬪�肩粰 orderNumber.value + bookOrdersId = res.orderNumber; + // 妫�鏌ヨ鍗曞彿鏄惁瀛樺湪 + if (bookOrdersId) { + if (this.data.digitalsData.price == "0.00") { + app.MG.store + .confirmOrder({ + orderNum: bookOrdersId, + }) + .then((res) => { + if (res) { + this.digitalCoursesDetailsGet(this.data.digitalsData.id); + wx.showToast({ + title: "棰嗗彇鎴愬姛", + icon: "none", + duration: 1000, + }); + this.digitalCoursesDetailsGet(this.data.bookId); + } + }); + } else { + const url = "/pages/cart/paymentPage/index?orderNumber=" + bookOrdersId + '&onNorderSaleMethod=' + res.saleMethodLinks[0].orderSaleMethod.id; + wx.navigateTo({ + url, }); - } else { - const url = "/pages/cart/paymentPage/index?orderNumber=" + bookOrdersId + '&onNorderSaleMethod=' + res.saleMethodLinks[0].orderSaleMethod.id; - wx.navigateTo({ - url, - }); - } - } else {} - } else { - wx.showToast({ - title: "鍟嗗搧涓嶅湪鏈夋晥鏈�", - icon: "none", - duration: 1000, - }); + } + } else {} + } else { + wx.showToast({ + title: "鍟嗗搧涓嶅湪鏈夋晥鏈�", + icon: "none", + duration: 1000, + }); + } } + const token = wx.getStorageSync(app.config.tokenKey) + if (!token) { + this.logInFun(() => {}) + } else { + buyFun() + } + }, @@ -938,7 +980,9 @@ }, ) .exec() - this.drawImage() + setTimeout(() => { + this.drawImage() + }, 500) query .select('#textCertificate') .fields({ @@ -957,7 +1001,9 @@ }, ) .exec() - this.drawImage1() + setTimeout(() => { + this.drawImage1() + }, 500) }, drawImage() { let that = this; @@ -1054,7 +1100,7 @@ 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, userName: item.content.userName, @@ -1062,47 +1108,52 @@ }) } }) - }) }, - - onCertificate() { - if (!this.data.isBuy) { - wx.showToast({ - title: "璇峰厛璐拱锛屼綋楠屽畬鏁存湇鍔�", - icon: "none", - duration: 1000, + const cateFun = () => { + 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({ + // 鍔ㄦ�佽缃姝㈡粴鍔ㄧ殑鏍峰紡 + disableScrollStyle: 'overflow: hidden;' }); - return false + this.setData({ + dialogBox: true, + scrollJudge: '' + }) } - 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 + const token = wx.getStorageSync(app.config.tokenKey) + if (!token) { + this.logInFun(() => {}) + } else { + cateFun() } - var page = getCurrentPages().pop(); // 鑾峰彇褰撳墠椤甸潰瀹炰緥 - page.setData({ - // 鍔ㄦ�佽缃姝㈡粴鍔ㄧ殑鏍峰紡 - disableScrollStyle: 'overflow: hidden;' - }); - this.setData({ - dialogBox: true, - scrollJudge: '' - }) }, closeDialog() { this.setData({ @@ -1205,37 +1256,81 @@ userName: this.data.userInfo.fullName, userPicture: this.data.pictureMd5, studyTime: this.data.digitalsData.beginDate + '-' + year + '-' + month + '-' + today, - website: this.data.website + 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: "濮撳悕涓嶈兘涓虹┖", @@ -1245,40 +1340,7 @@ } }, 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 { + const collectFun = () => { if (this.data.digitalsData.isFavourite) { app.MG.store .delProductLink({ @@ -1302,6 +1364,12 @@ }) } } + const token = wx.getStorageSync(app.config.tokenKey) + if (!token) { + this.logInFun(() => {}) + } else { + collectFun() + } }, //璇佷功鏌ョ湅 -- Gitblit v1.9.1