From 338ad19ee45b5380a0d8433cbbce2a727a576dfa Mon Sep 17 00:00:00 2001 From: yiming <m13691596795@163.com> Date: 星期五, 19 四月 2024 17:34:36 +0800 Subject: [PATCH] bug2 --- packageBookService/pages/bookServices/list/index.js | 458 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 317 insertions(+), 141 deletions(-) diff --git a/packageBookService/pages/bookServices/list/index.js b/packageBookService/pages/bookServices/list/index.js index 4fa9702..6cdf707 100644 --- a/packageBookService/pages/bookServices/list/index.js +++ b/packageBookService/pages/bookServices/list/index.js @@ -4,10 +4,10 @@ * 椤甸潰鐨勫垵濮嬫暟鎹� */ data: { - barHeight: '', - navBarHeight: '', - searchValue: '', - path: '', + barHeight: "", + navBarHeight: "", + searchValue: "", + path: "", pathList: [], pageCount: { page: 1, @@ -15,38 +15,69 @@ }, isMore: null, assortCheck: { - name: '', - code: '', + name: "", + code: "", }, bookList: [], stairList: { - value: '', - options: [ - { - value: '', - label: '涓�绾�', - }, - ], + value: "", + options: [], }, secondList: { value: [], options: [], + disabled: false, }, majorProjectList: { value: [], options: [], }, + sortList: { + value: "default", + options: [{ + value: "default", + label: "榛樿鎺掑簭", + }, + { + value: "name-asc", + label: "鍚嶇О姝e簭", + }, + { + value: "name-desc", + label: "鍚嶇О鍊掑彊", + }, + { + value: "time-asc", + label: "鍑虹増鏃堕棿姝e簭", + }, + { + value: "time-desc", + label: "鍑虹増鏃堕棿鍊掑彊", + }, + ], + }, newTextBook: { value: [], options: [], }, - stairCode: '', // 涓�绾у垎绫婚�変腑椤� - secondCode: '', // 浜岀骇鍒嗙被閫変腑椤� - sort: '', // 鎺掑簭 + stairCode: "", // 涓�绾у垎绫婚�変腑椤� + secondCode: "", // 浜岀骇鍒嗙被閫変腑椤� + sort: "", // 鎺掑簭 enable: false, loadingProps: { - size: '50rpx', + size: "50rpx", }, + loading: false, + noData: false, + showDropdown: false, + isRequesting: false, + disabledStair: false, + disabledSecondList: false, + disabledProject: false, + disabledNewForms: false, + triggered: false, + backTop: "", + isshowLoading: true }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 @@ -54,7 +85,8 @@ onLoad(options) { const systInfo = wx.getSystemInfoSync(); const menu = wx.getMenuButtonBoundingClientRect(); // 鑳跺泭淇℃伅 - const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 瀵艰埅鏍忛珮搴� + const navBarHeight = + (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 瀵艰埅鏍忛珮搴� this.setData({ barHeight: systInfo.statusBarHeight, navBarHeight: navBarHeight, @@ -80,7 +112,7 @@ // 涓�绾у垎绫诲拰path璧嬪�� if (options.stairCode) { this.setData({ - 'stairList.value': options.stairCode, + "stairList.value": options.stairCode, stairCode: options.stairCode, path: `${options.assortCode}\\${options.stairCode}`, }); @@ -91,100 +123,109 @@ secondCode: options.secondCode, pathList: [{ Path: options.secondCode, - Type: '*', + Type: "*", StoreRefCode: app.config.goodsStore, - } - ], - }) + }, ], + }); } // 鑾峰彇浜岀骇鍒嗙被 this.getSecondList(`${options.assortCode}\\${options.stairCode}`); this.getBookList(`${options.assortCode}\\${options.stairCode}`); // 鑾峰彇閲嶇偣椤圭洰 - this.getProjectList('bookClassification'); - this.getProjectList('newFormsTextbooks'); + this.getProjectList("bookClassification"); + this.getProjectList("newFormsTextbooks"); }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚 */ - onReady() { - }, + onReady() {}, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず */ - onShow() { - }, + onShow() {}, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌 */ - onHide() { }, + onHide() {}, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇 */ - onUnload() { }, + onUnload() {}, /** * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 */ onPullDownRefresh() { - console.log('涓嬫媺'); + this.setData({ + triggered: true, + }); + this.setData({ + isshowLoading: false, + "pageCount.page": 1, + }); + this.getBookList(this.data.path); }, /** * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁� */ onReachBottom(e) { - console.log('搴曢儴'); - const flag = this.data.bookList.length < this.data.pageCount.total + const flag = this.data.bookList.length < this.data.pageCount.total; if (flag) { - this.setData({ - isMore: true, - "pageCount.page": this.data.pageCount.page + 1 - }) - this.getBookList(this.data.path) + if (!this.data.isRequesting) { + this.setData({ + isMore: true, + "pageCount.page": this.data.pageCount.page + 1, + isshowLoading: false + }); + this.getBookList(this.data.path); + } } else { this.setData({ isMore: true, - }) + }); setTimeout(() => { this.setData({ - isMore: false - }) - }, 100) - console.log('娌℃湁鏇村浜�'); + isMore: false, + }); + }, 100); } }, /** * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜� */ - onShareAppMessage() { }, + onShareAppMessage() {}, goBack() { wx.navigateBack(); }, // 鑾峰彇涓�绾у垪琛� getStairList(path) { + this.setData({ + disabledStair: false, + }); const query = { path, filterList: [], - queryType: '\\', + queryType: "\\", searchList: [], - size: '30', - start: '0', + size: "30", + start: "0", storeRefCode: app.config.goodsStore, - sort: { type: 'Asc', field: 'LinkOrder' }, + sort: { + type: "Asc", + field: "LinkOrder", + }, }; app.MG.store.getStoreChannelList(query).then(async (res) => { - const options = [ - { - value: '', - label: '涓�绾�', - }, - ]; + const options = [{ + value: "", + label: "涓�绾у垎绫�", + }, ]; for (let index = 0; index < res.datas.length; index++) { const item = res.datas[index]; options.push({ @@ -193,25 +234,33 @@ }); } this.setData({ - 'stairList.options': options, - 'stairList.value': this.data.stairCode, + "stairList.options": options, + "stairList.value": this.data.stairCode, }); + if (!options.length) { + this.setData({ + disabledStair: true, + }); + } }); }, // 鑾峰彇涓�绾у垎绫讳笅浜岀骇鍒嗙被 - getSecondList(path) { + async getSecondList(path) { const options = []; const query = { path, filterList: [], - queryType: '\\', + queryType: "\\", searchList: [], - size: '30', - start: '0', + size: "30", + start: "0", storeRefCode: app.config.goodsStore, - sort: { type: 'Asc', field: 'LinkOrder' }, + sort: { + type: "Asc", + field: "LinkOrder", + }, }; - app.MG.store.getStoreChannelList(query).then((res) => { + await app.MG.store.getStoreChannelList(query).then((res) => { for (let index = 0; index < res.datas.length; index++) { const item = res.datas[index]; options.push({ @@ -220,16 +269,20 @@ }); } this.setData({ - 'secondList.options': options, + "secondList.options": options, }); - const second = [this.data.secondCode] + const second = [this.data.secondCode]; this.setData({ - 'secondList.value': second - }) + "secondList.value": second, + }); }); }, // 鑾峰彇閲嶇偣椤圭洰 getProjectList(type) { + this.setData({ + disabledProject: false, + disabledNewForms: false, + }); const options = []; const arr = []; let array = []; @@ -237,7 +290,9 @@ refCodes: [type], }; app.MG.store.getProductTypeField(query).then((res) => { - array = JSON.parse(res[0].config).option; + array = JSON.parse(res[0].config).option.filter( + (item) => item.value == this.data.assortCheck.code + ); for (let index = 0; index < array.length; index++) { const element = array[index]; if (element.child) { @@ -247,7 +302,7 @@ } } } - if (type == 'bookClassification') { + if (type == "bookClassification") { for (let index = 0; index < arr.length; index++) { const element = arr[index]; options.push({ @@ -255,10 +310,15 @@ label: element.name, }); } + if (!options.length) { + this.setData({ + disabledProject: true, + }); + } this.setData({ - 'majorProjectList.options': options, + "majorProjectList.options": options, }); - } else if (type == 'newFormsTextbooks') { + } else if (type == "newFormsTextbooks") { for (let index = 0; index < arr.length; index++) { const element = arr[index]; options.push({ @@ -266,15 +326,33 @@ label: element.name, }); } + if (!options.length) { + this.setData({ + disabledNewForms: true, + }); + } this.setData({ - 'newTextBook.options': options, + "newTextBook.options": options, }); - console.log('閲嶇偣椤圭洰', this.data.newTextBook); + console.log("閲嶇偣椤圭洰", this.data.newTextBook); } }); }, // 鑾峰彇鍥句功鍒楄〃 getBookList(path) { + if (this.data.isRequesting) { + return false; + } + this.setData({ + noData: false, + isRequesting: true, + disabledSecondList: false + }); + if (this.data.isshowLoading) { + this.setData({ + loading: true + }) + } let sort; let pathObj = {}; if (this.data.pathList.length) { @@ -284,42 +362,63 @@ } else { pathObj = { path, - queryType: '*', + queryType: "*", }; } - if (this.data.sort) { + if (this.data.sortList.value == "name-asc") { sort = { - Name: this.data.sort, - BaseType: '', + Name: "Asc", + BaseType: "", }; - } else { + } else if (this.data.sortList.value == "name-desc") { sort = { - type: 'Desc', - field: 'ViewCount', + Name: "Desc", + BaseType: "", + }; + } else if (this.data.sortList.value == "time-asc") { + sort = { + PublicationDate: "Asc", + BaseType: "DateTime", + }; + } else if (this.data.sortList.value == "time-desc") { + sort = { + PublicationDate: "Desc", + BaseType: "DateTime", + }; + } else if (this.data.sortList.value == "default") { + sort = { + field: "order", + type: "Desc", }; } + // if (this.data.sort) { + // sort = { + // Name: this.data.sort, + // BaseType: '', + // }; + // } else { + // sort = { + // type: 'Desc', + // field: 'ViewCount', + // }; + // } // 鎼滅储 let searchObj = {}; if (this.data.searchValue) { searchObj = { - 'Name*': this.data.searchValue, - '||author*': this.data.searchValue, - '||isbn*': this.data.searchValue, - '||seriesName*': this.data.searchValue, + "Name*": this.data.searchValue, + "||author*": this.data.searchValue, + "||isbn*": this.data.searchValue, + "||seriesName*": this.data.searchValue, }; } const query = { ...pathObj, - filterList: [ - { - value: 'Normal', - field: 'state', - }, - ], + filterList: [{ + value: "Normal", + field: "state", + }, ], sort, - coverSize: { - height: 145, - }, paging: { start: 0, size: this.data.pageCount.page * 8, @@ -328,96 +427,117 @@ author: [], publicationDate: [], ...searchObj, - 'bookClassification*': this.data.majorProjectList.value, - 'newFormsTextbooks*': this.data.newTextBook.value, + "bookClassification*": this.data.majorProjectList.value, + "newFormsTextbooks*": this.data.newTextBook.value, }, }; app.MG.store.getProductList(query).then((res) => { this.setData({ bookList: res.datas, + isMore: null, enable: false, - "pageCount.total": res.total + "pageCount.total": res.total, + loading: false, + isRequesting: false, + isshowLoading: true }); - console.log('鍥句功鍒楄〃', res, this.data.pageCount); + if (!res.datas.length) { + this.setData({ + noData: true, + }); + } + // 浜岀骇绂佺敤閫昏緫 + // 1.涓�绾у垎绫绘湭閫変腑锛屼簩绾у垎绫荤鐢� + if (!this.data.stairList.value) { + this.setData({ + disabledSecondList: true + }) + } else if (this.data.stairList.value && !this.data.secondList.options.length) { + // 2. 涓�绾у垎绫婚�変腑锛屾棤浜岀骇鍒嗙被 + this.setData({ + disabledSecondList: true + }) + } + if (this.data.triggered) { + this.setData({ + triggered: false, + }); + wx.showToast({ + title: "鍒锋柊鎴愬姛", + }); + } }); }, // 涓�绾у垎绫诲垏鎹� - onChangeStair(e) { - const path = e.detail.value.length - ? `${this.data.assortCheck.code}\\${e.detail.value}` - : this.data.assortCheck.code; + async onChangeStair(e) { + const path = e.detail.value.length ? + `${this.data.assortCheck.code}\\${e.detail.value}` : + this.data.assortCheck.code; this.setData({ + backTop: "#assort-title", pathList: [], stairCode: e.detail.value, - secondCode: '', + secondCode: "", path: path, - 'stairList.value': e.detail.value, + "stairList.value": e.detail.value, + // disabledSecondList: false }); - this.getBookList(path); - this.getSecondList(path); + // if (e.detail.value == "") { + // this.setData({ + // disabledSecondList: true, + // }); + // } else { + await this.getSecondList(path); + // } + await this.getBookList(path); }, // 浜岀骇鍒嗙被鍒囨崲 onChangeSecond(e) { + + console.log(789); const pathList = []; for (let index = 0; index < e.detail.value.length; index++) { const element = e.detail.value[index]; pathList.push({ Path: element, - Type: '*', + Type: "*", StoreRefCode: app.config.goodsStore, }); } this.setData({ + backTop: "#assort-title", pathList: pathList, - 'secondList.value': e.detail.value, + "secondList.value": e.detail.value, }); - }, - // + // onConfirmSecond() { + + this.getBookList(this.data.path); }, // 閲嶇偣椤圭洰鏀瑰彉 changeMajorProject(e) { this.setData({ - 'majorProjectList.value': e.detail.value, + backTop: "#assort-title", + "majorProjectList.value": e.detail.value, }); this.getBookList(this.data.path); }, // 閲嶇偣椤圭洰閲嶇疆 resetMajorProject() { this.setData({ - 'majorProjectList.value': [], + "majorProjectList.value": [], }); this.getBookList(this.data.path); }, - changeNewText(e) { + // 鎺掑簭鍒囨崲 + onSortChange(e) { this.setData({ - 'newTextBook.value': e.detail.value, + backTop: "#assort-title", + "sortList.value": e.detail.value, }); - this.getBookList(this.data.path); - }, - resetNewText() { - this.setData({ - 'newTextBook.value': [], - }); - this.getBookList(this.data.path); - }, - // 鎺掑簭鎸夐挳 - sortClick() { - if (!this.data.sort.length) { - this.setData({ - sort: 'Desc', - }); - } else if (this.data.sort == 'Desc') { - this.setData({ - sort: 'Asc', - }); - } else if (this.data.sort == 'Asc') { - this.setData({ - sort: '', - }); - } + let path; if (this.data.secondCode) { path = this.data.secondCode; @@ -431,23 +551,79 @@ }); this.getBookList(path); }, + // 鏂板舰鎬佹暀鏉愭敼鍙� + changeNewText(e) { + this.setData({ + backTop: "#assort-title", + "newTextBook.value": e.detail.value, + }); + this.getBookList(this.data.path); + }, + resetNewText() { + this.setData({ + "newTextBook.value": [], + }); + this.getBookList(this.data.path); + }, + // 鎺掑簭鎸夐挳 + // sortClick() { + // if (!this.data.sort.length) { + // this.setData({ + // sort: 'Desc', + // }); + // } else if (this.data.sort == 'Desc') { + // this.setData({ + // sort: 'Asc', + // }); + // } else if (this.data.sort == 'Asc') { + // this.setData({ + // sort: '', + // }); + // } + // let path; + // if (this.data.secondCode) { + // path = this.data.secondCode; + // } else if (this.data.stairCode) { + // path = `${this.data.assortCheck.code}\\${this.data.stairCode}`; + // } else { + // path = this.data.assortCheck.code; + // } + // this.setData({ + // path: path, + // }); + // this.getBookList(path); + // }, // 鎼滅储鍥句功 searchBook(e) { - console.log(e.detail.value); this.setData({ + backTop: "#assort-title", searchValue: e.detail.value, }); this.getBookList(this.data.path); }, // 璺宠浆鍥句功璇︽儏 goDetail(e) { - const { book } = e.currentTarget.dataset; + const { + book + } = e.currentTarget.dataset; wx.navigateTo({ url: `/packageBookService/pages/bookServices/detail/index?id=${book.id}&name=${book.name}`, }); }, onRefresh() { - this.setData({ enable: true }); - this.getBookList(this.data.path) + this.setData({ + enable: true, + }); + this.getBookList(this.data.path); }, -}); + openDropdown() { + this.setData({ + showDropdown: true, + }); + }, + closeDropdown() { + this.setData({ + showDropdown: false, + }); + }, +}); \ No newline at end of file -- Gitblit v1.9.1