From b125d3ea74d61fb8e4d7238c83906aeea52c6b4c Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期二, 12 三月 2024 14:39:55 +0800 Subject: [PATCH] 更新代码 --- pages/bookServices/detail/index.js | 397 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 287 insertions(+), 110 deletions(-) diff --git a/pages/bookServices/detail/index.js b/pages/bookServices/detail/index.js index e99bb9c..396240d 100644 --- a/pages/bookServices/detail/index.js +++ b/pages/bookServices/detail/index.js @@ -6,6 +6,7 @@ * 椤甸潰鐨勫垵濮嬫暟鎹� */ data: { + bookId: '', barHeight: '', navBarHeight: '', options: { @@ -26,15 +27,20 @@ teachResources: [], teach: [], learn: [], + test: [], openTeachids: [], openLearnids: [], + openTestids: [], resourceClassList: [], // 璧勬簮鎵�灞炲垎绫� applyState: "", // 鏁欏璧勬簮鐢宠鐘舵�� deadline: "", // 鏁欏璧勬簮鐢宠鏈夋晥鏃ユ湡 rejectCause: "", // 涓嬭浇鎷掔粷鍘熷洜 buyIdList: [], shoppingCartGetId: [], // 宸茶喘涔癷d鍒楄〃 - shoppingList: [] + shoppingList: [], + loading: false, + isShowTeachDownload: false, // 鎻愮ずPC涓嬭浇寮圭獥鐘舵�� + confirmBtn: { content: '鎴戠煡閬撲簡', variant: 'base' }, }, resetTree: function (e) { @@ -51,6 +57,7 @@ const menu = wx.getMenuButtonBoundingClientRect(); // 鑳跺泭淇℃伅 const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 瀵艰埅鏍忛珮搴� this.setData({ + bookId: options.id, barHeight: systInfo.statusBarHeight, navBarHeight: navBarHeight, }); @@ -63,7 +70,8 @@ this.getBookInfo(options.id); this.getResourceClass() // 鑾峰彇璧勬簮鎵�灞炲垎绫� this.getApplyInfo(options.id) - if (wx.getAccountInfoSync('jsek-token')) { + const token = wx.getStorageSync('jsek-token') + if (token) { this.getShoppingCartProductGet() } }, @@ -93,12 +101,20 @@ /** * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 */ - onPullDownRefresh() { }, + onPullDownRefresh() { + + + }, /** * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁� */ - onReachBottom() { }, + onReachBottom() { + if (this.data.tabValue == 'jesk_note') { + const child = this.selectComponent('#note') + child.onReachBottom() + } + }, /** * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜� @@ -195,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, @@ -204,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), @@ -214,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; } }); } @@ -293,9 +311,18 @@ || (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() + } + } - console.log('鍒囨崲', this.data.tabValue); }, // 鑾峰彇璧勬簮鎵�灞炲垎绫� getResourceClass() { @@ -310,6 +337,9 @@ }, // 鑾峰彇鏁欏璧勬簮 浜戝涔� 浜戞祴璇� getResourceData(type) { + this.setData({ + loading: true + }) let query = { path: '*', queryType: '*', @@ -340,7 +370,7 @@ const data = res.datas.cmsDatas[0].datas.filter( (item) => item.refCode == 'jsek_questionBank' ) - if (data.length) return getResourceData(data[0]) + if (data.length) return this.getResourceData(data[0]) } //鏁欏璧勬簮 浜戝涔� if (type.refCode == 'jsek_teachingResources' || type.refCode == 'jsek_cloudLearning') { @@ -351,23 +381,27 @@ }) const list = await this.getAllResource(res.datas.cmsDatas[0].datas) this.setData({ - teachResources: list, - teach: list + teach: list, + loading: false }) - this.findChildIds(this.data.teachResources, this.data.openTeachids = []) + 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 }) - console.log('浜戝涔�', this.data.learn); - this.findChildIds(this.data.teachResources, this.data.openLearnids = []) + this.findChildIds(this.data.learn, this.data.openLearnids = []) } } else { // 鏃犳暟鎹� } } else if (type.refCode == 'jsek_questionBank') { - console.log('浜戞祴璇�'); + // const list = await this.getAllResource(res.datas.cmsDatas[0].datas) + this.setData({ + test: res.datas.cmsDatas[0].datas, + loading: false + }) } else { console.log('鍏朵粬'); } @@ -375,7 +409,6 @@ .catch((e) => { console.log(e) }) - console.log('淇℃伅', this.data); }, // 鑾峰彇tag涓嬫墍鏈夎祫婧� async getAllResource(data) { @@ -522,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' }) @@ -554,9 +587,8 @@ applyState: 'none' }) } - console.log('鐢宠閫氳繃', this.data.applyState); }) - + console.log('鏈夋晥鏃ユ湡', this.data.deadline); }, // 鐢宠鏁欏璧勬簮 applyResource() { @@ -601,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({ @@ -726,6 +768,7 @@ return false } }, + // 鑾峰彇宸茶喘涔板晢鍝� getShoppingCartProductGet() { let query = { start: 0, @@ -742,7 +785,6 @@ shoppingList: res.datas, shoppingCartGetId: list }) - console.log('璐拱', this.data); }) }, // 鍒ゆ柇璧勬簮鍔犲叆璐墿杞︽寜閽槸鍚︽樉绀� @@ -762,5 +804,140 @@ } else { return false } - } + }, + // 閬嶅巻鏍戠粨鏋勮浆鎹负鏁扮粍鏂规硶 + handleTreeData(array) { + const flattenedArray = [] + array.forEach((node) => { + // 灏嗗綋鍓嶈妭鐐规坊鍔犲埌灞曞紑鐨勬暟缁勪腑 + flattenedArray.push(node) + // 閫掑綊澶勭悊瀛愯妭鐐� + if (node.children && node.children.length > 0) { + const childrenArray = this.handleTreeData(node.children) + flattenedArray.push(...childrenArray) + } + }) + return flattenedArray.filter((item) => item.sysType == 'CmsItem') + }, + // 浜戝涔犱竴閿鍙� + async getFreeResource() { + 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 wx.showToast({ + icon: "error", + title: '鏆傛棤鍏嶈垂璧勬簮', + }) + child.changeReceive(true) + let requests = [] + freeIds.forEach((item, index) => { + if (this.resourceIsBuy(item)) { + requests.push({ + saleMethodId: item.saleMethod[0].Id, + count: 1 + }) + } + }) + + let query = { + remarks: '浜戝涔�', + requests, + } + try { + const initOrderRes = await app.MG.store.initOrder(query) + let parameter = { + orderNum: initOrderRes.orderNumber + } + // 纭璁㈠崟 + const confirmOrderRes = await app.MG.store.confirmOrder(parameter) + if (confirmOrderRes.orderNumber) { + 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