From 14de3e90ae29af2ccfd51b08c6a11ab02fe8f8e7 Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期二, 05 三月 2024 19:02:35 +0800 Subject: [PATCH] feat(合并代码): 和冰帝阿 --- pages/bookServices/detail/index.js | 552 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 536 insertions(+), 16 deletions(-) diff --git a/pages/bookServices/detail/index.js b/pages/bookServices/detail/index.js index 324478a..e99bb9c 100644 --- a/pages/bookServices/detail/index.js +++ b/pages/bookServices/detail/index.js @@ -1,5 +1,5 @@ // pages/bookServices/detail/index.js -import Message from 'tdesign-miniprogram/message/index'; +import Message from 'tdesign-miniprogram/message/index.js'; const app = getApp(); Page({ /** @@ -19,8 +19,30 @@ dang: '', micro: '', }, + tabValue: 'brief', + cmsDatas: [], // 璧勬簮refCode鍒楄〃 + ids: [1], + list: [], + teachResources: [], + teach: [], + learn: [], + openTeachids: [], + openLearnids: [], + resourceClassList: [], // 璧勬簮鎵�灞炲垎绫� + applyState: "", // 鏁欏璧勬簮鐢宠鐘舵�� + deadline: "", // 鏁欏璧勬簮鐢宠鏈夋晥鏃ユ湡 + rejectCause: "", // 涓嬭浇鎷掔粷鍘熷洜 + buyIdList: [], + shoppingCartGetId: [], // 宸茶喘涔癷d鍒楄〃 + shoppingList: [] }, + resetTree: function (e) { + this.setData({ + currentCheck: e.detail.checkedItem, + list: e.detail.changeList + }) + }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 */ @@ -39,42 +61,49 @@ }, }); this.getBookInfo(options.id); + this.getResourceClass() // 鑾峰彇璧勬簮鎵�灞炲垎绫� + this.getApplyInfo(options.id) + if (wx.getAccountInfoSync('jsek-token')) { + this.getShoppingCartProductGet() + } }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚 */ - onReady() {}, + onReady() { + + }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず */ - onShow() {}, + onShow() { }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌 */ - onHide() {}, + onHide() { }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇 */ - onUnload() {}, + onUnload() { }, /** * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 */ - onPullDownRefresh() {}, + onPullDownRefresh() { }, /** * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁� */ - onReachBottom() {}, + onReachBottom() { }, /** * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜� */ - onShareAppMessage() {}, + onShareAppMessage() { }, // 鏍煎紡鍖栨棩鏈� formatDate(dateString) { if (!dateString) { @@ -169,8 +198,9 @@ app.MG.store.getProductDetail(query).then((res) => { this.setData({ bookDetail: res.datas, + cmsDatas: res.datas.cmsDatas[0].datas, + buyIdList: res.datas.purchasedSaleMethodIdList }); - console.log('璇︽儏', res.datas); // 鑾峰彇鍥句功鍒嗙被 const iconType = JSON.parse(res.datas.bookClassification)[0][0]; const classType = JSON.parse(res.datas.bookClassification)[0][1]; @@ -211,12 +241,14 @@ linkType: 'FavoriteBookCity', }) .then(() => { - this.data.bookDetail.isFavourite = false; + this.setData({ + 'bookDetail.isFavourite': false + }) Message.success({ context: this, - offset: ['20rpx', '32rpx'], - duration: 2000, - content: '鍙栨秷鏀惰棌', + offset: [20, 32], + duration: 5000, + content: '杩欐槸涓�鏉℃垚鍔熺殑鎻愮ず娑堟伅', }); }); } else { @@ -225,8 +257,9 @@ linkType: 'FavoriteBookCity', }; app.MG.store.addProductLink(params).then((res) => { - console.log(res); - this.data.bookDetail.isFavourite = true; + this.setData({ + 'bookDetail.isFavourite': true + }) Message.success({ context: this, offset: ['20rpx', '32rpx'], @@ -236,6 +269,11 @@ }); } }, + // 鎴戣寤鸿 + suggestBtn() { + const child = this.selectComponent('#suggest-component') + child.showDialog() + }, // 璺宠浆缃戝簵 goShop(e) { const { link } = e.currentTarget.dataset; @@ -243,4 +281,486 @@ url: link, }); }, -}); + onTabsChange(e) { + this.setData({ + tabValue: e.detail.value + }) + if (e.detail.label == '鏁欏璧勬簮' || e.detail.label == '浜戝涔�' || e.detail.label == '浜戞祴璇�') { + const checkData = this.data.cmsDatas.find(item => item.refCode == e.detail.value) + if (checkData) { + if ((e.detail.value == 'jsek_teachingResources' && !this.data.teach.length) + || (e.detail.value == 'jsek_cloudLearning' && !this.data.learn.length) + || (e.detail.value == 'questionBank' && !this.data.test.length)) { + this.getResourceData(checkData) + } + } + } + console.log('鍒囨崲', this.data.tabValue); + }, + // 鑾峰彇璧勬簮鎵�灞炲垎绫� + getResourceClass() { + let query = { + refCodes: ['resourcesClassification'] + } + app.MG.store.getProductTypeField(query).then((res) => { + this.setData({ + resourceClassList: JSON.parse(res[0].config).option + }) + }) + }, + // 鑾峰彇鏁欏璧勬簮 浜戝涔� 浜戞祴璇� + getResourceData(type) { + let query = { + path: '*', + queryType: '*', + productId: this.data.bookDetail.id, + cmsPath: type.productLinkPath, + itemFields: { + SysType: 'CmsFolder', + // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁� + selectType: [], + freeFile: [], + file: [], + resourcesClassification: [], + isDownload: [], + jsek_resourceBrief: [], + jsek_link: [], + jsek_questionBank: [] + }, + pading: { + start: 0, + size: 999 + }, + } + app.MG.store + .getProductDetail(query) + .then(async (res) => { + // 浜戞祴璇曪紝閫掑綊璇锋眰閲屽眰鏁版嵁 + if (type.refCode == 'questionBank') { + const data = res.datas.cmsDatas[0].datas.filter( + (item) => item.refCode == 'jsek_questionBank' + ) + if (data.length) return getResourceData(data[0]) + } + //鏁欏璧勬簮 浜戝涔� + if (type.refCode == 'jsek_teachingResources' || type.refCode == 'jsek_cloudLearning') { + if (res.datas.cmsDatas[0].datas.length > 0) { + if (type.refCode == 'jsek_teachingResources') { + res.datas.cmsDatas[0].datas.forEach(item => { + item.checked = false + }) + const list = await this.getAllResource(res.datas.cmsDatas[0].datas) + this.setData({ + teachResources: list, + teach: list + }) + this.findChildIds(this.data.teachResources, this.data.openTeachids = []) + } else if (type.refCode == 'jsek_cloudLearning') { + const list = await this.getAllResource(res.datas.cmsDatas[0].datas) + this.setData({ + learn: list + }) + console.log('浜戝涔�', this.data.learn); + this.findChildIds(this.data.teachResources, this.data.openLearnids = []) + } + } else { + // 鏃犳暟鎹� + } + } else if (type.refCode == 'jsek_questionBank') { + console.log('浜戞祴璇�'); + } else { + console.log('鍏朵粬'); + } + }) + .catch((e) => { + console.log(e) + }) + console.log('淇℃伅', this.data); + }, + // 鑾峰彇tag涓嬫墍鏈夎祫婧� + async getAllResource(data) { + if (!data.length) return false + for (let i = 0; i < data.length; i++) { + let item = data[i] + if (item.sysType == 'CmsFolder' && item.childrenCount > 0) { + item.children = [] + item.children = await this.getFolderItem(item.productLinkPath) + await this.getAllResource(item.children) + } + } + return data + }, + // 鑾峰彇璧勬簮鎺ュ彛 + async getFolderItem(path) { + let query = { + path: '*', + queryType: '*', + productId: this.data.bookDetail.id, + cmsPath: path, + itemFields: { + SysType: 'CmsFolder', + // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁� + selectType: [], + freeFile: [], + file: [], + protectedFile: [], + resourcesClassification: [], + isDownload: [], + jsek_resourceBrief: [], + jsek_link: [], + accessType: [] + }, + pading: { + start: 0, + size: 999 + }, + } + const data = await app.MG.store.getProductDetail(query) + data.datas.cmsDatas[0].datas.forEach((item) => { + this.data.resourceClassList.forEach((type) => { + if (type.value == item.resourcesClassification) item.resourceClass = type.name + }) + // 缃戦〉 涓嶈兘涓嬭浇 绉佹湁鏂囦欢 + if (item.sysType == 'CmsItem') { + if (item.selectType == 'webpage') { + item.disabled = true + } else { + if (item.isDownload != 1) { + item.disabled = true + } + } + if (item.file) { + if (item.fileMap[item.file].protectType == 'Private') item.disabled = true + } + } + }) + data.datas.cmsDatas[0].datas.forEach(item => { + if (this.data.tabValue == 'jsek_teachingResources') { + item.checked = false + } else if (this.data.tabValue == 'jsek_cloudLearning') { + item.isbuy = this.resourceIsBuy(item) + item.isShopCar = this.isShoppingCart(item) + } + }) + return data.datas.cmsDatas[0].datas + }, + // 鑾峰彇灞曞紑椤� + 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 + } + } + }, + + // 鍥句功娣诲姞璐墿杞� + addBookShopcCar() { + let query = { + requests: [ + { + saleMethodId: this.data.bookDetail.defaultSaleMethodId, + storeEventId: null, + agentCode: '鐢靛瓙涔�' + } + ] + } + const addRes = app.MG.store.addShoppingCart(query) + }, + // 鑾峰彇鏁欏璧勬簮涓嬭浇鏄惁鐢宠閫氳繃 + getApplyInfo(id) { + // 鑾峰彇褰撳墠鏃堕棿 + const currentDate = new Date() + let query = { + sort: { + type: 'Desc', + field: 'CreateDate' + }, + start: 0, + size: 99999, + appRefCode: app.config.appRefCode, + topicIdOrRefCode: 'productDownLoad' + } + app.MG.ugc.getTopicMessageList(query).then((res) => { + const applyResource = res.datas.find((item) => { + let content = [] + try { + content = JSON.parse(item.content) + } catch (error) { + content = [] + } + if (Array.isArray(content)) return content.find((citem) => citem.id == id) + return false + }) + // 鏈夌敵璇疯褰� + if (applyResource) { + if (applyResource.state == 'Reject') { + this.setData({ + rejectCause: JSON.parse(applyResource.feedBack).reason, + applyState: 'Reject' + }) + } else if (applyResource.state == 'Normal') { + 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: '姘镐箙', + }) + } else { + let endTime = new Date(endDate + ' 23:59:59').getTime() + // deadline.value = endDate + ' 23:59:59' + this.setData({ + deadline: endDate + ' 23:59:59' + }) + if (currentDate.getTime() < endTime) { + // 鏈秴鏃� + this.setData({ + applyState: 'Normal' + }) + } else { + this.setData({ + applyState: 'none' + }) + } + } + } else { + this.setData({ + applyState: applyResource.state + }) + } + } else { + this.setData({ + applyState: 'none' + }) + } + console.log('鐢宠閫氳繃', this.data.applyState); + }) + + }, + // 鐢宠鏁欏璧勬簮 + applyResource() { + // let role = userStore.userInfo ? userStore.userInfo.role : null + // if (role) { + // if (role == 'Teacher') { + // 鐢宠鏁欏璧勬簮 + let query = { + topicIdOrRefCode: 'productDownLoad', + type: 'applyForDownload', + state: 'WaitAudit', + cmsTypeRefCode: '', + newDataListRequest: [], + name: this.data.bookDetail.name, // name涓虹敵璇风殑涔︽湰鍚嶇О + content: JSON.stringify([ + { + name: this.data.bookDetail.name, + id: this.data.bookDetail.id, + // defaultSaleMethodId: bookData.value.defaultSaleMethodId, + icon: this.data.bookDetail.icon + } + ]) + } + app.MG.ugc.newTopicMessage(query).then((res) => { + if (res) { + Message.success('鐢宠宸叉彁浜わ紝璇峰緟瀹℃牳閫氳繃鍚庝笅杞�') + } + this.getApplyInfo(this.data.bookDetail.id) + }) + // } else { + // ElMessageBox.confirm('璇峰厛杩涜鏁欏笀璁よ瘉锛�', '灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛�', { + // confirmButtonText: '鍘昏璇�', + // cancelButtonText: '鍙栨秷', + // type: 'warning' + // }) + // .then(() => { + // isShow.value = true + // }) + // .catch(() => { }) + // } + // } else { + // // logIn() + // } + }, + 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 + // }) + // .catch(() => { }) + // } + // } else { + // logIn() + // } + }, + downloadFile(url) { + wx.downloadFile({ + url: url, + success: function (res) { + // 涓嬭浇鎴愬姛鍚庯紝璋冪敤saveImageToPhotosAlbum鍑芥暟淇濆瓨鍥剧墖鍒版湰鍦� + wx.saveFile({ + tempFilePath: res.tempFilePath, + success: function (res) { + wx.showToast({ + title: '涓嬭浇鎴愬姛', + icon: 'success' + }) + }, + fail: function (res) { + wx.showToast({ + title: '涓嬭浇澶辫触', + icon: 'none' + }) + } + }) + }, + fail: function (res) { + wx.showToast({ + title: '涓嬭浇澶辫触', + icon: 'none' + }) + } + }) + }, + // 鍒ゆ柇璧勬簮鏄惁璐拱 + resourceIsBuy(data) { + if (data.saleMethod && data.saleMethod.length) { + const isSHow = this.data.buyIdList.some((item) => item == data.saleMethod[0].Id) + return !isSHow + } else { + return false + } + }, + getShoppingCartProductGet() { + let query = { + start: 0, + size: 999, + filterList: [], + searchList: [] + } + app.MG.store.getShoppingCartProductList(query).then((res) => { + const list = [] + res.datas.forEach((item) => { + list.push(item.saleMethod.id) + }) + this.setData({ + shoppingList: res.datas, + shoppingCartGetId: list + }) + console.log('璐拱', this.data); + }) + }, + // 鍒ゆ柇璧勬簮鍔犲叆璐墿杞︽寜閽槸鍚︽樉绀� + isShoppingCart(data) { + if (data.saleMethod && data.saleMethod.length) { + if (data.saleMethod[0].Price <= 0) return false + // 鍐嶅垽鏂槸鍚﹁喘涔� + const isBuy = this.data.buyIdList.some((item) => item == data.saleMethod[0].Id) + if (isBuy) { + // 璐拱浜� + return false + } else { + // 鍒ゆ柇鏄惁鍔犲叆璐墿杞� + const isSHow = this.data.shoppingCartGetId.some((item) => item == data.saleMethod[0].Id) + return !isSHow + } + } else { + return false + } + } +}) -- Gitblit v1.9.1