litian
2024-04-15 069a6f8d380926668763e9b556d58533353d3e7d
packageDomain/pages/sampleBookList/index.js
@@ -14,7 +14,6 @@
    userInfo: null,
    path: '*',
    pathList: [],
    bookList: [],
    //高级分类
    iconList: {
@@ -24,20 +23,13 @@
    //一级分类
    stairList: {
      value: '',
      options: [],
      options: [{
        value: "",
        label: "一级分类",
      }],
    },
    //二级分类
    secondList: {
      value: [],
      options: [],
    },
    //重点项目
    majorProjectList: {
      value: [],
      options: [],
    },
    //新形态教材
    newTextBook: {
      value: [],
      options: [],
    },
@@ -46,7 +38,6 @@
      name: '',
      code: '',
    },
    stairCode: '', // 一级分类选中项
    secondCode: '', // 二级分类选中项
    sort: '', // 排序
@@ -91,28 +82,31 @@
    paperBookCount: 0, //纸质书剩余次数
    ebookCount: 0, //电子书剩余次数
    num: 0,
    x: 280,
    y: 300,
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    let that = this;
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
    this.setData({
    that.setData({
      barHeight: systInfo.statusBarHeight,
      navBarHeight: navBarHeight,
    });
    // 搜索赋值
    if (options && options.searchValue) {
      this.setData({
      that.setData({
        searchValue: options.searchValue,
      });
    }
    // 高级分类赋值
    if (options && options.assortCode) {
      this.setData({
      that.setData({
        assortCheck: {
          name: options.assorName,
          code: options.assortCode,
@@ -120,13 +114,13 @@
        },
      });
    }
    if (this.data.assortCheck.code) {
    if (that.data.assortCheck.code) {
      // 获取一级分类
      this.getStairList(this.data.assortCheck.code);
      ththatis.getStairList(that.data.assortCheck.code);
    }
    // 一级分类和path赋值
    if (options && options.assortCode && options.stairCode) {
      this.setData({
      that.setData({
        'stairList.value': options.stairCode,
        stairCode: options.stairCode,
        path: `${options.assortCode}\\${options.stairCode}`,
@@ -134,7 +128,7 @@
    }
    // 二级分类赋值
    if (options && options.secondCode) {
      this.setData({
      that.setData({
        secondCode: options.secondCode,
        pathList: [{
          Path: options.secondCode,
@@ -143,30 +137,26 @@
        }],
      })
    }
    this.getIconTypeList();
    // 获取重点项目
    this.getProjectList('bookClassification');
    //新形态教材
    this.getProjectList('newFormsTextbooks');
    that.getIconTypeList();
    // 检查登录状态
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      loginInfo(app, (data) => {
        if (data) {
          this.setData({
          that.setData({
            userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey))
          })
          this.getAlreadyPBookList()
          this.getAlreadyEBookList()
          that.getAlreadyPBookList()
          that.getAlreadyEBookList()
          // 获取申请次数
          this.getSelectPaperBookCount()
          this.getSelectBookCount()
          that.getSelectPaperBookCount()
          that.getSelectBookCount()
        }
      })
    } else {
      this.setData({
      that.setData({
        userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey))
      })
@@ -184,32 +174,33 @@
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.setData({
    let that = this;
    that.setData({
      page: 1,
      paperBookList: [],
      electronicBookList: []
    })
    this.getAlreadyPBookList()
    this.getAlreadyEBookList()
    that.getAlreadyPBookList()
    that.getAlreadyEBookList()
    // 获取申请次数
    this.getSelectPaperBookCount()
    this.getSelectBookCount()
    that.getSelectPaperBookCount()
    that.getSelectBookCount()
    if (wx.getStorageSync("paperBookList") || wx.getStorageSync("electronicBookList")) {
      if (wx.getStorageSync("paperBookList")) {
        this.setData({
          paperBookList: wx.getStorageSync("paperBookList"),
        that.setData({
          paperBookList: JSON.parse(wx.getStorageSync("paperBookList")),
        })
      }
      if (wx.getStorageSync("electronicBookList")) {
        this.setData({
          electronicBookList: wx.getStorageSync("electronicBookList"),
        that.setData({
          electronicBookList: JSON.parse(wx.getStorageSync("electronicBookList")),
        })
      }
      this.setData({
        num: this.data.paperBookList.length + this.data.electronicBookList.length
      that.setData({
        num: Number(that.data.paperBookList.length) + Number(that.data.electronicBookList.length)
      })
    }
    this.getBookList(false);
    that.getBookList(false);
  },
  goBack() {
    wx.navigateBack();
@@ -260,7 +251,10 @@
      }
    }
    app.MG.store.getStoreChannelList(query).then((res) => {
      let list = [];
      let list = [{
        value: "",
        label: "总分类",
      }];
      if (res.datas.length > 0)(
        res.datas.forEach((item) => {
          item.value = item.refCode;
@@ -276,7 +270,7 @@
      )
      this.setData({
        'iconList.options': list,
        'iconList.value': this.data.assortCode,
        'iconList.value': this.data.assortCheck.code,
      });
    })
  },
@@ -296,7 +290,10 @@
      },
    };
    app.MG.store.getStoreChannelList(query).then(async (res) => {
      let options = [];
      let options = [{
        value: "",
        label: "一级分类",
      }];
      if (res.datas.length > 0) {
        for (let index = 0; index < res.datas.length; index++) {
          let item = res.datas[index];
@@ -347,53 +344,13 @@
      })
    });
  },
  // 获取重点项目
  getProjectList(type) {
    const options = [];
    const arr = [];
    let array = [];
    const query = {
      refCodes: [type],
    };
    app.MG.store.getProductTypeField(query).then((res) => {
      array = JSON.parse(res[0].config).option;
      for (let index = 0; index < array.length; index++) {
        const element = array[index];
        if (element.child) {
          for (let index = 0; index < element.child.length; index++) {
            const item = element.child[index];
            arr.push(item);
          }
        }
      }
      if (type == 'bookClassification') {
        for (let index = 0; index < arr.length; index++) {
          const element = arr[index];
          options.push({
            value: element.value,
            label: element.name,
          });
        }
        this.setData({
          'majorProjectList.options': options,
        });
      } else if (type == 'newFormsTextbooks') {
        for (let index = 0; index < arr.length; index++) {
          const element = arr[index];
          options.push({
            value: element.value,
            label: element.name,
          });
        }
        this.setData({
          'newTextBook.options': options,
        });
      }
    });
  },
  // 获取图书列表
  getBookList(isReachBottom) {
    let that = this;
    this.setData({
      skeletonLoding: true
    })
    let sort;
    let pathObj = {};
    if (that.data.pathList.length) {
@@ -468,6 +425,8 @@
        author: [],
        isbn: [],
        publicationDate: [],
        pdf: [],
        protectedEpub: [],
        isApplyBook: [],
        'isApplyBook>': ['1'],
        ...searchObj,
@@ -539,14 +498,10 @@
            bottomLoading: false,
            isMoreData: list.length > 0 ? false : true,
            skeletonLoding: false,
            loading: false
          })
        } else {
          that.setData({
            bookList: [],
            pageTotalCount: 0,
            skeletonLoding: false,
            loading: false
          })
        }
      } catch (error) {
@@ -557,6 +512,7 @@
  //高级分类选择
  onChangeIcon(e) {
    this.setData({
      bookList: [],
      'assortCheck.code': e.detail.value,
      stairCode: '',
      secondCode: '',
@@ -573,11 +529,13 @@
      `${this.data.assortCheck.code}\\${e.detail.value}` :
      this.data.assortCheck.code;
    this.setData({
      bookList: [],
      pathList: [],
      stairCode: e.detail.value,
      secondCode: '',
      path: path,
      'stairList.value': e.detail.value,
      'secondList.value': ""
    });
    this.getBookList(false);
    this.getSecondList(path);
@@ -829,7 +787,7 @@
  },
  //选择电子样书
  onChangeElectron(e) {
  async onChangeElectron(e) {
    const item = e.currentTarget.dataset.book;
    const index = this.data.bookList.findIndex(citem => citem.id == item.id)
    let role = this.data.userInfo != null ? this.data.userInfo.role : null
@@ -837,6 +795,44 @@
      // 是教师
      if (e.detail.checked) {
        // 点击选中
        //商品有无电子书
        const obj = {
          path: '*',
          queryType: 'SubProduct',
          sort: {
            type: 'Desc',
            field: 'CreateDate'
          },
          paging: {
            start: 0,
            size: 1
          },
          mainProductId: item.id,
          fields: {
            bookshelf_pdf: [],
            bookshelf_protectedEpub: [],
          }
        }
        const res = await app.MG.store.getProductList(obj)
        if (res.datas.length > 0) {
          if (!res.datas[0].bookshelf_pdf && !res.datas[0].bookshelf_protectedEpub) {
            wx.showToast({
              title: "暂无电子书文件,请联系管理员!",
              icon: 'none',
              duration: 1000,
            })
            return false;
          }
        } else {
          if (!item.pdf && !item.protectedEpub) {
            wx.showToast({
              title: "暂无电子书文件,请联系管理员!",
              icon: 'none',
              duration: 1000,
            })
            return false;
          }
        }
        if (this.data.ebookCount == 0) {
          wx.showToast({
            title: "您的电子样书申请次数已用尽,若要继续,请联系管理员!",
@@ -916,13 +912,13 @@
      this.setData({
        electronicBookList: eList,
      })
      wx.setStorageSync("electronicBookList", eList);
      wx.setStorageSync("electronicBookList", JSON.stringify(eList));
    } else {
      pList.push(itemAttr)
      this.setData({
        paperBookList: pList,
      })
      wx.setStorageSync("paperBookList", pList);
      wx.setStorageSync("paperBookList", JSON.stringify(pList));
    }
    this.setData({
      num: this.data.num + 1