litian
2024-04-09 dc1b48bb46e5715a5a55ee2c0f60175b849a6b3b
packageBookService/pages/bookServices/list/index.js
@@ -1,16 +1,16 @@
const app = getApp();
import {
  loginInfo
} from '../../../../assets/js/login';
} from "../../../../assets/js/login";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    barHeight: '',
    navBarHeight: '',
    searchValue: '',
    path: '',
    barHeight: "",
    navBarHeight: "",
    searchValue: "",
    path: "",
    pathList: [],
    pageCount: {
      page: 1,
@@ -18,42 +18,68 @@
    },
    isMore: null,
    assortCheck: {
      name: '',
      code: '',
      name: "",
      code: "",
    },
    bookList: [],
    stairList: {
      value: '',
      options: [{
        value: '',
        label: '一级',
      }, ],
      value: "",
      options: [],
    },
    secondList: {
      value: [],
      options: [],
      disabled: false,
    },
    disabledSecondList: false,
    majorProjectList: {
      value: [],
      options: [],
    },
    sortList: {
      value: "default",
      options: [{
          value: "default",
          label: "默认排序",
        },
        {
          value: "name-asc",
          label: "名称正序",
        },
        {
          value: "name-desc",
          label: "名称倒叙",
        },
        {
          value: "time-asc",
          label: "出版时间正序",
        },
        {
          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: "",
  },
  /**
   * 生命周期函数--监听页面加载
@@ -61,7 +87,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,
@@ -87,7 +114,7 @@
    // 一级分类和path赋值
    if (options.stairCode) {
      this.setData({
        'stairList.value': options.stairCode,
        "stairList.value": options.stairCode,
        stairCode: options.stairCode,
        path: `${options.assortCode}\\${options.stairCode}`,
      });
@@ -98,17 +125,17 @@
        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");
  },
  /**
@@ -135,32 +162,37 @@
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    console.log('下拉');
    this.setData({
      triggered: true,
    });
    this.setData({
      "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) {
      if (!this.data.isRequesting) {
        this.setData({
          isMore: true,
          "pageCount.page": this.data.pageCount.page + 1
        })
        this.getBookList(this.data.path)
          "pageCount.page": this.data.pageCount.page + 1,
        });
        this.getBookList(this.data.path);
      }
    } else {
      this.setData({
        isMore: true,
      })
      });
      setTimeout(() => {
        this.setData({
          isMore: false
        })
      }, 100)
      console.log('没有更多了');
          isMore: false,
        });
      }, 100);
    }
  },
@@ -173,23 +205,26 @@
  },
  // 获取一级列表
  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'
        type: "Asc",
        field: "LinkOrder",
      },
    };
    app.MG.store.getStoreChannelList(query).then(async (res) => {
      const options = [{
        value: '',
        label: '一级',
        value: "",
        label: "一级分类",
      }, ];
      for (let index = 0; index < res.datas.length; index++) {
        const item = res.datas[index];
@@ -199,9 +234,14 @@
        });
      }
      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,
        });
      }
    });
  },
  // 获取一级分类下二级分类
@@ -210,17 +250,26 @@
    const query = {
      path,
      filterList: [],
      queryType: '\\',
      queryType: "\\",
      searchList: [],
      size: '30',
      start: '0',
      size: "30",
      start: "0",
      storeRefCode: app.config.goodsStore,
      sort: {
        type: 'Asc',
        field: 'LinkOrder'
        type: "Asc",
        field: "LinkOrder",
      },
    };
    app.MG.store.getStoreChannelList(query).then((res) => {
      if (!res.datas.length) {
        this.setData({
          disabledSecondList: true,
        });
      } else {
        this.setData({
          disabledSecondList: false,
        });
      }
      for (let index = 0; index < res.datas.length; index++) {
        const item = res.datas[index];
        options.push({
@@ -229,16 +278,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 = [];
@@ -246,7 +299,9 @@
      refCodes: [type],
    };
    app.MG.store.getProductTypeField(query).then((res) => {
      array = JSON.parse(res[0].config).option.filter(item => item.value == this.data.assortCheck.code);
      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) {
@@ -256,7 +311,7 @@
          }
        }
      }
      if (type == 'bookClassification') {
      if (type == "bookClassification") {
        for (let index = 0; index < arr.length; index++) {
          const element = arr[index];
          options.push({
@@ -264,10 +319,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({
@@ -275,10 +335,15 @@
            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);
      }
    });
  },
@@ -290,8 +355,8 @@
    this.setData({
      loading: true,
      noData: false,
      isRequesting: true
    })
      isRequesting: true,
    });
    let sort;
    let pathObj = {};
    if (this.data.pathList.length) {
@@ -301,35 +366,61 @@
    } 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',
        value: "Normal",
        field: "state",
      }, ],
      sort,
      paging: {
@@ -340,32 +431,31 @@
        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,
        isRequesting: false
        isRequesting: false,
      });
      if (!res.datas.length) {
        this.setData({
          noData: true,
        })
        if (!this.data.pathList.length) {
          // 未选择二级分类,且无图书
          this.setData({
            disabledSecondList: true
          })
        } else {
          this.setData({
            disabledSecondList: false
          })
        }
        });
      }
      if (this.data.triggered) {
        this.setData({
          triggered: false,
        });
        wx.showToast({
          title: "刷新成功",
        });
      }
    });
  },
@@ -375,24 +465,24 @@
      `${this.data.assortCheck.code}\\${e.detail.value}` :
      this.data.assortCheck.code;
    console.log(this.data.path);
    this.setData({
      backTop: "#assort-title",
      pathList: [],
      stairCode: e.detail.value,
      secondCode: '',
      secondCode: "",
      path: path,
      'stairList.value': e.detail.value,
      "stairList.value": e.detail.value,
    });
    this.getBookList(path);
    this.getSecondList(path);
    if (e.detail.value == '') {
    if (e.detail.value == "") {
      this.setData({
        disabledSecondList: true
      })
        disabledSecondList: true,
      });
    } else {
      this.setData({
        disabledSecondList: false
      })
      this.getSecondList(path);
    }
    this.getBookList(path);
    console.log(this.data.disabledSecondList);
  },
  // 二级分类切换
@@ -402,60 +492,42 @@
      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;
@@ -469,10 +541,52 @@
    });
    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);
@@ -488,20 +602,20 @@
  },
  onRefresh() {
    this.setData({
      enable: true
      enable: true,
    });
    this.getBookList(this.data.path)
    this.getBookList(this.data.path);
  },
  openDropdown() {
    console.log('展开哦', );
    console.log("展开哦");
    this.setData({
      showDropdown: true
    })
      showDropdown: true,
    });
  },
  closeDropdown() {
    console.log('关闭');
    console.log("关闭");
    this.setData({
      showDropdown: false
    })
  }
      showDropdown: false,
    });
  },
});