From 51ad1f2614bc1f976aad98254649bb3c207332ee Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期三, 11 九月 2024 16:50:35 +0800 Subject: [PATCH] 转换树结构方法优化 --- packageBookService/pages/bookServices/detail/index.js | 139 +++++++++++++++++++++++++++++----------------- 1 files changed, 87 insertions(+), 52 deletions(-) diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js index a430620..7dc1abf 100644 --- a/packageBookService/pages/bookServices/detail/index.js +++ b/packageBookService/pages/bookServices/detail/index.js @@ -1,6 +1,7 @@ // pages/bookServices/detail/index.js import Toast from "tdesign-miniprogram/toast"; import tool from "../../../../assets/js/toolClass"; +import moment from 'moment' import { loginInfo } from "../../../../assets/js/login"; @@ -168,6 +169,37 @@ description: '', agree: false }, + resourceVisible: false, + resourceValue: [], + fileTypeList: [{ + label: '闊抽', + value: '闊抽' + }, + { + label: '瑙嗛', + value: '瑙嗛' + }, + { + label: '鍥剧墖', + value: '鍥剧墖' + }, + { + label: 'PDF', + value: 'PDF' + }, + { + label: '璧勬簮鍖�', + value: '璧勬簮鍖�' + }, + { + label: '鏂囨。', + value: '鏂囨。' + }, + { + label: '鍏朵粬', + value: '鍏朵粬' + } + ], fileList: [], isShowUp: true, protocolShow: false, @@ -192,19 +224,16 @@ bookId: options.id + "", barHeight: systInfo.statusBarHeight, navBarHeight: navBarHeight, - }); - this.setData({ options: { id: options.id, - name: options.name, + name: decodeURI(options.name), storeInfo: options.storeInfo, - }, }); wx.setNavigationBarTitle({ - title: options.name, + title: decodeURI(options.name), }) - const token = wx.getStorageSync(app.config.tokenKey) + let token = wx.getStorageSync(app.config.tokenKey) if (!token) { loginInfo(app, (data) => { if (data) {} else {} @@ -212,7 +241,7 @@ } this.getBookInfo(options.id); // this.getResourceClass(); // 鑾峰彇璧勬簮鎵�灞炲垎绫� - + token = wx.getStorageSync(app.config.tokenKey) if (token) { this.getShoppingCartProductGet(); this.getApplyInfo(options.id); @@ -231,10 +260,8 @@ this.setData({ tabValue: options.tabValue, }); - const checkData = this.data.cmsDatas.find( - (item) => item.refCode == options.tabValue - ); - this.getResourceDataList(checkData) + + } }, @@ -454,6 +481,16 @@ await this.getBookClass(classData); } } + if (this.data.tabValue == 'questionBank' || this.data.tabValue == 'jsek_cloudLearning' || this.data.tabValue == 'jsek_teachingResources') { + const checkData = this.data.cmsDatas.find( + (item) => item.refCode == this.data.tabValue + ); + if (this.data.tabValue == "questionBank") { + this.getResourceData(checkData) + } else { + this.getResourceDataList(checkData) + } + } // 鑾峰彇缁勫嵎閿�鍞甶d if (res.datas.saleMethod && res.datas.saleMethod.length) { @@ -481,9 +518,7 @@ } } this.setData({ - "bookDetail.publicationDate": this.formatDate( - this.data.bookDetail.publicationDate - ), + "bookDetail.publicationDate": moment(this.data.bookDetail.publicationDate).format("YYYY骞碝M鏈�"), "bookDetail.price": this.numFormat(this.data.bookDetail.price), "bookDetail.oldPrice": this.numFormat(this.data.bookDetail.oldPrice), "bookDetail.paperPrice": this.numFormat( @@ -838,10 +873,9 @@ }, // 鎵佸钩鍖栨暟鎹浆鎹ree - getTreeList(rootList, pathLength, newArr, path) { + 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 @@ -862,11 +896,9 @@ } } //缁欐暟缁勯噷闈㈠啀娣诲姞涓�涓猚hildren鐨勭┖鏁扮粍 - // let addnum1 = pathLength - path.length == 6 ? 6 : 7 for (const i of newArr) { i.children = [] - let addnum1 = i.productLinkPath.length - path.length == 6 ? 6 : 7 - this.getTreeList(rootList, pathLength + addnum1, i.children, i.productLinkPath) + this.getTreeList(rootList, i.children, i.productLinkPath) if (i.children.length == 0) { delete i.children } @@ -893,26 +925,19 @@ // 鎺掑簭鏁扮粍 鎸夌収productLinkPath insertAndSortObjectsByProductLinkPath(array, newObj) { // 鏌ユ壘鏂板璞″簲璇ユ彃鍏ョ殑浣嶇疆 - let insertIndex = array.findIndex(obj => Number(newObj.productLinkPath.substring(newObj.productLinkPath.lastIndexOf('\\') + 1, newObj.productLinkPath.length)) < Number(obj.productLinkPath.substring(obj.productLinkPath.lastIndexOf('\\') + 1, 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.lastIndexOf('\\') + 1, a.productLinkPath.length)) < Number(b.productLinkPath.substring(b.productLinkPath.lastIndexOf('\\') + 1, b.productLinkPath.length))) { - return -1; - } - if (Number(a.productLinkPath.substring(a.productLinkPath.lastIndexOf('\\') + 1, a.productLinkPath.length)) > Number(b.productLinkPath.substring(b.productLinkPath.lastIndexOf('\\') + 1, 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; }, @@ -1004,9 +1029,7 @@ }) } } - const addNum = query.cmsPath.length > 10 ? 7 : query.cmsPath.length > 13 ? 8 : 6 - const num = query.cmsPath.length + addNum - this.getTreeList(res.datas.cmsDatas[0].datas, num, list, '\\') + this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath) list = this.ensureTreeConsistency(list) list = this.changeResourceChildren(list) let result = []; @@ -1116,11 +1139,7 @@ } if (data.length > 0) { let list = [] - // 娴嬭瘯 6浣�// 姝e紡 5浣�// 娴嬭瘯璋冪敤浼�20锛屽唴閮�7 姝e紡璋冪敤浼�17 鍐呴儴浼�6 - - const addNum = query.cmsPath.length > 10 ? 7 : query.cmsPath.length > 13 ? 8 : 6 - const num = query.cmsPath.length + addNum - that.getTreeList(data, num, list, '\\') + that.getTreeList(data, list, query.cmsPath) list = that.ensureTreeConsistency(list) that.findChildIds(list[0].children, result); that.setData({ @@ -2586,7 +2605,6 @@ return childrenList }, uploadFile(e) { - console.log(123) this.setData({ dialogBox: true, isShowUp: true @@ -2595,6 +2613,12 @@ closeDialog() { this.setData({ dialogBox: false, + resourceInfo: { + resourceName: '', + fileType: '', + description: '', + agree: false + }, }); }, onCloseProtocol() { @@ -2638,9 +2662,24 @@ 'resourceInfo.resourceName': e.detail.value, }); }, - onFileTypeInput(e) { + onResourcePicker(e) { this.setData({ - 'resourceInfo.fileType': e.detail.value, + resourceVisible: true, + }); + }, + onPickerChange(e) { + const { + value + } = e.detail; + this.setData({ + resourceVisible: false, + resourceValue: value, + 'resourceInfo.fileType': value.join(' '), + }); + }, + onPickerCancel(e) { + this.setData({ + resourceVisible: false, }); }, textareaChange(e) { @@ -2681,6 +2720,7 @@ const pdfData = ['pdf'] const Compression = ['rar', 'zip'] const pictureData = ['jpg', 'png'] + const documentData = ['doc', 'docx', 'xls', 'xlsx', "ppt", "pptx"] if (audioData.indexOf(Extension) > -1) { medioType = '闊抽' } else if (videoData.indexOf(Extension) > -1) { @@ -2691,6 +2731,8 @@ medioType = '璧勬簮鍖�' } else if (pictureData.indexOf(Extension) > -1) { medioType = '鍥剧墖' + } else if (documentData.indexOf(Extension) > -1) { + medioType = '鏂囨。' } else { medioType = '鍏朵粬' } @@ -2734,6 +2776,7 @@ that.setData({ "resourceInfo.resourceName": FileName, "resourceInfo.fileType": medioType, + fileList: file, isShowUp: false }) @@ -2748,15 +2791,9 @@ }, handleRemove(e) { - console.log(e) - let md5 = e.currentTarget.dataset.md5 - for (let i = 0; i < this.data.fileList.length; i++) { - if (this.data.fileList.md5 == md5) { - this.data.fileList.splice(i, 1) - } - } this.setData({ isShowUp: true, + fileList: [] }); }, confirmM() { @@ -2769,7 +2806,7 @@ if (this.data.resourceInfo.fileType == '') { return wx.showToast({ icon: "error", - title: "璇峰~鍐欒祫婧愮被鍨�", + title: "璇烽�夋嫨璧勬簮绫诲瀷", }); } @@ -2799,9 +2836,7 @@ icon: "success", title: "璇蜂笂浼犺祫婧愭枃浠�", }); - this.setData({ - dialogBox: false, - }); + this.closeDialog() }) } }) \ No newline at end of file -- Gitblit v1.9.1