From f4425543db1c8db8c47a34c53ef477e72cfe318e Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期一, 11 三月 2024 18:19:56 +0800 Subject: [PATCH] feat(答题器): 答题器 --- pages/bookServices/detail/index.js | 345 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 230 insertions(+), 115 deletions(-) diff --git a/pages/bookServices/detail/index.js b/pages/bookServices/detail/index.js index ee631de..396240d 100644 --- a/pages/bookServices/detail/index.js +++ b/pages/bookServices/detail/index.js @@ -37,7 +37,10 @@ rejectCause: "", // 涓嬭浇鎷掔粷鍘熷洜 buyIdList: [], shoppingCartGetId: [], // 宸茶喘涔癷d鍒楄〃 - shoppingList: [] + shoppingList: [], + loading: false, + isShowTeachDownload: false, // 鎻愮ずPC涓嬭浇寮圭獥鐘舵�� + confirmBtn: { content: '鎴戠煡閬撲簡', variant: 'base' }, }, resetTree: function (e) { @@ -98,12 +101,20 @@ /** * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 */ - onPullDownRefresh() { }, + onPullDownRefresh() { + + + }, /** * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁� */ - onReachBottom() { }, + onReachBottom() { + if (this.data.tabValue == 'jesk_note') { + const child = this.selectComponent('#note') + child.onReachBottom() + } + }, /** * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜� @@ -200,7 +211,8 @@ freeEpubPage: [], //epub璇曡鐧惧垎姣� }, }; - app.MG.store.getProductDetail(query).then((res) => { + app.MG.store.getProductDetail(query).then(async (res) => { + this.setData({ bookDetail: res.datas, cmsDatas: res.datas.cmsDatas[0].datas, @@ -209,9 +221,10 @@ // 鑾峰彇鍥句功鍒嗙被 const iconType = JSON.parse(res.datas.bookClassification)[0][0]; const classType = JSON.parse(res.datas.bookClassification)[0][1]; + const className = await this.getBookClass(iconType, classType) this.setData({ 'bookDetail.publicationDate': this.formatDate(this.data.bookDetail.publicationDate), - 'bookDetail.class': this.getBookClass(iconType, classType), + 'bookDetail.class': className, 'bookDetail.price': this.numFormat(this.data.bookDetail.price), 'bookDetail.oldPrice': this.numFormat(this.data.bookDetail.oldPrice), 'bookDetail.paperPrice': this.numFormat(this.data.bookDetail.paperPrice), @@ -219,17 +232,17 @@ }); }, // 鑾峰彇鍥句功鍒嗙被 - getBookClass(iconType, classType) { + async getBookClass(iconType, classType) { let name = ''; const query = { refCodes: ['bookClassification'], }; - app.MG.store.getProductTypeField(query).then((res) => { + await app.MG.store.getProductTypeField(query).then((res) => { JSON.parse(res[0].config).option.forEach((item) => { if (item.value == iconType) { - item.child.forEach((item) => { - if (item.value == classType) { - name = item.name; + item.child.forEach((citem) => { + if (citem.value == classType) { + name = citem.name; } }); } @@ -298,7 +311,17 @@ || (e.detail.value == 'questionBank' && !this.data.test.length)) { this.getResourceData(checkData) } + } + } else if (e.detail.label == '浜戠瑪璁�') { + const token = wx.getStorageSync('jsek-token') + const child = this.selectComponent('#note') + child.handleSubmitTitle() + if (token) { + child.changeLoading() + child.getNoteList() + } + } }, // 鑾峰彇璧勬簮鎵�灞炲垎绫� @@ -314,6 +337,9 @@ }, // 鑾峰彇鏁欏璧勬簮 浜戝涔� 浜戞祴璇� getResourceData(type) { + this.setData({ + loading: true + }) let query = { path: '*', queryType: '*', @@ -355,13 +381,15 @@ }) const list = await this.getAllResource(res.datas.cmsDatas[0].datas) this.setData({ - teach: list + teach: list, + loading: false }) this.findChildIds(this.data.teach, this.data.openTeachids = []) } else if (type.refCode == 'jsek_cloudLearning') { const list = await this.getAllResource(res.datas.cmsDatas[0].datas) this.setData({ - learn: list + learn: list, + loading: false }) this.findChildIds(this.data.learn, this.data.openLearnids = []) } @@ -371,10 +399,9 @@ } else if (type.refCode == 'jsek_questionBank') { // const list = await this.getAllResource(res.datas.cmsDatas[0].datas) this.setData({ - test: res.datas.cmsDatas[0].datas + test: res.datas.cmsDatas[0].datas, + loading: false }) - // this.findChildIds(this.data.test, this.data.openTestids = []) - console.log('浜戞祴璇�', this.data.test); } else { console.log('鍏朵粬'); } @@ -528,14 +555,14 @@ const endDate = JSON.parse(applyResource.feedBack).endDate // const endDate = new Date(JSON.parse(applyResource.feedBack).endDate + ' 23:59:59').getTime() if (endDate == '姘镐箙') { - // deadline.value = '姘镐箙' this.setData({ applyState: 'Normal', deadline: '姘镐箙', }) + console.log('鏈夋晥鏃ユ湡', this.data.deadline); } else { + let endTime = new Date(endDate + ' 23:59:59').getTime() - // deadline.value = endDate + ' 23:59:59' this.setData({ deadline: endDate + ' 23:59:59' }) @@ -560,9 +587,8 @@ applyState: 'none' }) } - console.log('鐢宠閫氳繃', this.data.applyState); }) - + console.log('鏈夋晥鏃ユ湡', this.data.deadline); }, // 鐢宠鏁欏璧勬簮 applyResource() { @@ -607,92 +633,102 @@ // // logIn() // } }, + // 鏁欏璧勬簮涓嬭浇鍓嶅線PC鎻愮ずDiialog + closeTeachDownload() { + this.setData({ + isShowTeachDownload: false + }) + }, + // 涓嬭浇鍔熻兘 downloadTeach(e) { - - const data = e.detail.value - // const data - // let role = userStore.userInfo ? userStore.userInfo.role : null - // if (role) { - // if (role == 'Teacher') { - if (this.properties.applyState == 'Normal' || this.properties.applyState == 'none') { - // 鏄惁鍏佽涓嬭浇 - if (data.isDownload == 1) { - // 鐢宠閫氳繃 - let url = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' - if (data.file) { - // 鍒ゆ柇鏄惁绉佹湁 - if (data.fileMap[data.file].protectType == 'Private') - return Message.error({ - context: this, - offset: ['20rpx', '32rpx'], - duration: 5000, - content: '璇ユ枃浠舵棤娉曚笅杞�' - }) - url = url + data.file + '&token=' + wx.getStorageSync('jsek-token') - } else if (data.freeFile) { - url = url + data.freeFile + '&token=' + wx.getStorageSync('jsek-token') - } else { - Message.error({ - context: this, - offset: ['20rpx', '32rpx'], - duration: 5000, - content: '鏆傛棤璧勬簮', - }) - } - this.downloadFile(url) - } else { - Message.error({ - context: this, - offset: ['20rpx', '32rpx'], - duration: 5000, - content: '璇ヨ祫婧愭棤娉曚笅杞�', - }) - } - } else if (this.properties.applyState == 'WaitAudit') { - // ElMessageBox.confirm('璇峰厛鐢宠涓嬭浇锛�', '灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛�', { - // confirmButtonText: '鐢宠', - // cancelButtonText: '鍙栨秷', - // type: 'warning' - // }) - // .then(() => applyBookInfo()) - // .catch() - Message.error({ - context: this, - offset: ['20rpx', '32rpx'], - duration: 5000, - content: '璇ヨ祫婧愪笅杞界敵璇峰鏍镐腑', - }) - } else if (this.properties.applyState == 'Reject') { - Message.error({ - context: this, - offset: ['20rpx', '32rpx'], - duration: 5000, - content: '璧勬簮涓嬭浇鐢宠鏈�氳繃' - }) - - } else { - // Message.error({ - // context: this, - // offset: ['20rpx', '32rpx'], - // duration: 5000, - // content: '璇峰厛鐢宠涓嬭浇' - // }) - console.log('璇峰厛鐢宠涓嬭浇'); - } - // } else { - // ElMessageBox.confirm('璇峰厛杩涜鏁欏笀璁よ瘉锛�', '灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛�', { - // confirmButtonText: '鍘昏璇�', - // cancelButtonText: '鍙栨秷', - // type: 'warning' - // }) - // .then(() => { - // isShow.value = true + this.setData({ + isShowTeachDownload: true + }) + console.log('zhuan', this.data.isShowTeachDownload); + // const data = e.detail.value + // // const data + // // let role = userStore.userInfo ? userStore.userInfo.role : null + // // if (role) { + // // if (role == 'Teacher') { + // if (this.properties.applyState == 'Normal' || this.properties.applyState == 'none') { + // // 鏄惁鍏佽涓嬭浇 + // if (data.isDownload == 1) { + // // 鐢宠閫氳繃 + // let url = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + // if (data.file) { + // // 鍒ゆ柇鏄惁绉佹湁 + // if (data.fileMap[data.file].protectType == 'Private') + // return Message.error({ + // context: this, + // offset: ['20rpx', '32rpx'], + // duration: 5000, + // content: '璇ユ枃浠舵棤娉曚笅杞�' + // }) + // url = url + data.file + '&token=' + wx.getStorageSync('jsek-token') + // } else if (data.freeFile) { + // url = url + data.freeFile + '&token=' + wx.getStorageSync('jsek-token') + // } else { + // Message.error({ + // context: this, + // offset: ['20rpx', '32rpx'], + // duration: 5000, + // content: '鏆傛棤璧勬簮', + // }) + // } + // this.downloadFile(url) + // } else { + // Message.error({ + // context: this, + // offset: ['20rpx', '32rpx'], + // duration: 5000, + // content: '璇ヨ祫婧愭棤娉曚笅杞�', // }) - // .catch(() => { }) + // } + // } else if (this.properties.applyState == 'WaitAudit') { + // // ElMessageBox.confirm('璇峰厛鐢宠涓嬭浇锛�', '灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛�', { + // // confirmButtonText: '鐢宠', + // // cancelButtonText: '鍙栨秷', + // // type: 'warning' + // // }) + // // .then(() => applyBookInfo()) + // // .catch() + // Message.error({ + // context: this, + // offset: ['20rpx', '32rpx'], + // duration: 5000, + // content: '璇ヨ祫婧愪笅杞界敵璇峰鏍镐腑', + // }) + // } else if (this.properties.applyState == 'Reject') { + // Message.error({ + // context: this, + // offset: ['20rpx', '32rpx'], + // duration: 5000, + // content: '璧勬簮涓嬭浇鐢宠鏈�氳繃' + // }) + + // } else { + // // Message.error({ + // // context: this, + // // offset: ['20rpx', '32rpx'], + // // duration: 5000, + // // content: '璇峰厛鐢宠涓嬭浇' + // // }) + // console.log('璇峰厛鐢宠涓嬭浇'); // } - // } else { - // logIn() - // } + // // } else { + // // ElMessageBox.confirm('璇峰厛杩涜鏁欏笀璁よ瘉锛�', '灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛�', { + // // confirmButtonText: '鍘昏璇�', + // // cancelButtonText: '鍙栨秷', + // // type: 'warning' + // // }) + // // .then(() => { + // // isShow.value = true + // // }) + // // .catch(() => { }) + // // } + // // } else { + // // logIn() + // // } }, downloadFile(url) { wx.downloadFile({ @@ -749,7 +785,6 @@ shoppingList: res.datas, shoppingCartGetId: list }) - console.log('璐拱', this.data); }) }, // 鍒ゆ柇璧勬簮鍔犲叆璐墿杞︽寜閽槸鍚︽樉绀� @@ -778,7 +813,7 @@ flattenedArray.push(node) // 閫掑綊澶勭悊瀛愯妭鐐� if (node.children && node.children.length > 0) { - const childrenArray = handleTreeData(node.children) + const childrenArray = this.handleTreeData(node.children) flattenedArray.push(...childrenArray) } }) @@ -786,18 +821,28 @@ }, // 浜戝涔犱竴閿鍙� async getFreeResource() { - // if (!localStorage.getItem('jsek-token')) { - // return logIn() - // } - let arr = handleTreeData(this.data.learn).filter((item) => resourceIsBuy(item)) + const child = this.selectComponent('#learn-resource') + const token = wx.getStorageSync('jsek-token') + if (!token) { + return wx.getUserProfile({ + desc: '鐢ㄦ埛鐧诲綍', + success: (res) => { + console.log(res); + } + }) + } + let arr = this.handleTreeData(this.data.learn).filter((item) => this.resourceIsBuy(item)) let freeIds = arr.filter((item) => { return item.saleMethod[0].Price == 0 }) - if (!freeIds.length) return console.log('鏆傛棤鍏嶈垂璧勬簮') - btnLoading.freeBtn = true + if (!freeIds.length) return wx.showToast({ + icon: "error", + title: '鏆傛棤鍏嶈垂璧勬簮', + }) + child.changeReceive(true) let requests = [] freeIds.forEach((item, index) => { - if (resourceIsBuy(item)) { + if (this.resourceIsBuy(item)) { requests.push({ saleMethodId: item.saleMethod[0].Id, count: 1 @@ -815,14 +860,84 @@ orderNum: initOrderRes.orderNumber } // 纭璁㈠崟 - const confirmOrderRes = await MG.store.confirmOrder(parameter) + const confirmOrderRes = await app.MG.store.confirmOrder(parameter) if (confirmOrderRes.orderNumber) { - // btnLoading.freeBtn = false - console.log('棰嗗彇鎴愬叡'); + child.changeReceive(false) + wx.showToast({ + title: '棰嗗彇鎴愬姛', + }) this.getBookInfo(this.data.bookId) } } catch (error) { console.log(error) } - } + }, + // 浜戝涔犱竴閿喘涔� + async allAddShoppiingCar() { + const child = this.selectComponent('#learn-resource') + const token = wx.getStorageSync('jsek-token') + if (!token) { + return wx.getUserProfile({ + desc: '鐢ㄦ埛鐧诲綍', + success: (res) => { + console.log(res); + } + }) + } + let shopList = this.handleTreeData(this.data.learn).filter((item) => this.resourceIsBuy(item)) + this.getShoppingCartProductGet() + if (!shopList.length) return wx.showToast({ + icon: "error", + title: '宸插叏閮ㄨ喘涔�', + }) + child.changeBuy(true) + let requests = [] + shopList.forEach((item) => { + requests.push({ + saleMethodId: item.saleMethod[0].Id, + count: 1, + }) + }) + let query = { + remarks: '浜戝涔�', + requests, + } + const initOrderRes = await app.MG.store.initOrder(query) + child.changeBuy(false) + // 妫�鏌ヨ鍗曞彿鏄惁瀛樺湪 + if (initOrderRes.orderNumber) { + // bookService: orderNumber.value, 灏戜紶杩欎釜 锛屾殏鏃朵笉鐭ラ亾鏈変粈涔堢敤 + wx.navigateTo({ + url: `/pages/cart/paymentPage/index?&bookId=${this.data.bookDetail.id}&bookName=${this.data.bookDetail.name}&orderNum=${initOrderRes.orderNumber}`, + }) + } else { + // 璁㈠崟鍙蜂笉瀛樺湪锛屾樉绀鸿鍛婃秷鎭� + wx.showToast({ + icon: "error", + title: '璇烽噸璇�', + }) + } + }, + // 鍙樹负鎵�鏈塩heck true + findAndUpdateItemsByIds(tree, ids) { + function findAndUpdate(node) { + if (ids.includes(node.id)) { + node.checked = true; // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true + } + if (node.children && node.children.length > 0) { + for (let child of node.children) { + findAndUpdate(child); // 閫掑綊澶勭悊瀛愯妭鐐� + } + } + } + + for (let node of tree) { + findAndUpdate(node); // 瀵规瘡涓《灞傝妭鐐规墽琛屾煡鎵惧拰鏇存柊鎿嶄綔 + } + return tree; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍 + }, + handleTrue() { + // findAndUpdateItemsByIds(this.date.) + }, + }) -- Gitblit v1.9.1