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 |  452 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 310 insertions(+), 142 deletions(-)

diff --git a/packageBookService/pages/bookServices/list/index.js b/packageBookService/pages/bookServices/list/index.js
index 0f41bda..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,49 +15,78 @@
     },
     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
+    noData: false,
+    showDropdown: false,
+    isRequesting: false,
+    disabledStair: false,
+    disabledSecondList: false,
+    disabledProject: false,
+    disabledNewForms: false,
+    triggered: false,
+    backTop: "",
+    isshowLoading: true
   },
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   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,
@@ -83,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}`,
       });
@@ -94,99 +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) {
-    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({
@@ -195,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({
@@ -222,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 = [];
@@ -239,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) {
@@ -249,7 +302,7 @@
           }
         }
       }
-      if (type == 'bookClassification') {
+      if (type == "bookClassification") {
         for (let index = 0; index < arr.length; index++) {
           const element = arr[index];
           options.push({
@@ -257,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({
@@ -268,19 +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({
-      loading: true,
-      noData: false
-    })
+      noData: false,
+      isRequesting: true,
+      disabledSecondList: false
+    });
+    if (this.data.isshowLoading) {
+      this.setData({
+        loading: true
+      })
+    }
     let sort;
     let pathObj = {};
     if (this.data.pathList.length) {
@@ -290,38 +362,62 @@
     } 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,
       paging: {
         start: 0,
@@ -331,101 +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,
-        loading: false
+        loading: false,
+        isRequesting: false,
+        isshowLoading: true
       });
-      console.log('鍥句功鍒楄〃', res.datas);
       if (!res.datas.length) {
         this.setData({
-          noData: true
+          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;
@@ -439,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