litian
2024-09-12 bbba5d26e9e26c910ed337dcb65f462752ee6dce
packageDomain/pages/sampleBookList/index.js
@@ -1,3 +1,6 @@
import {
  loginInfo
} from '../../../assets/js/login';
const app = getApp();
Page({
@@ -11,7 +14,6 @@
    userInfo: null,
    path: '*',
    pathList: [],
    bookList: [],
    //高级分类
    iconList: {
@@ -21,20 +23,13 @@
    //一级分类
    stairList: {
      value: '',
      options: [],
      options: [{
        value: "",
        label: "一级分类",
      }],
    },
    //二级分类
    secondList: {
      value: [],
      options: [],
    },
    //重点项目
    majorProjectList: {
      value: [],
      options: [],
    },
    //新形态教材
    newTextBook: {
      value: [],
      options: [],
    },
@@ -43,10 +38,33 @@
      name: '',
      code: '',
    },
    stairCode: '', // 一级分类选中项
    secondCode: '', // 二级分类选中项
    sort: '', // 排序
    sortList: {
      value: "default",
      options: [{
          value: "default",
          label: "默认排序",
        },
        {
          value: "name-asc",
          label: "名称正序",
        },
        {
          value: "name-desc",
          label: "名称倒叙",
        },
        {
          value: "time-asc",
          label: "出版时间正序",
        },
        {
          value: "time-desc",
          label: "出版时间倒叙",
        },
      ],
    },
    //分页
    page: 1,
    limit: 10,
@@ -64,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,
@@ -93,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}`,
@@ -107,32 +128,42 @@
    }
    // 二级分类赋值
    if (options && options.secondCode) {
      this.setData({
      that.setData({
        secondCode: options.secondCode,
        pathList: [{
          Path: options.secondCode,
          Type: '*',
          StoreRefCode: app.config.goodsStore,
        }
        ],
        }],
      })
    }
    this.getIconTypeList();
    that.getIconTypeList();
    // 获取重点项目
    this.getProjectList('bookClassification');
    //新形态教材
    this.getProjectList('newFormsTextbooks');
    if (wx.getStorageSync(app.config.tokenKey)) {
      this.getAlreadyPBookList()
      this.getAlreadyEBookList()
    }
    if (wx.getStorageSync(app.config.userInfoKey)) {
      this.setData({
    // 检查登录状态
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      loginInfo(app, (data) => {
        if (data) {
          that.setData({
            userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey))
          })
          that.getAlreadyPBookList()
          that.getAlreadyEBookList()
          // 获取申请次数
          that.getSelectPaperBookCount()
          that.getSelectBookCount()
        }
      })
    } else {
      that.setData({
        userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey))
      })
      const paperBookList = wx.getStorageSync('paperBookList') ? JSON.parse(wx.getStorageSync('paperBookList')).length : 0
      const electronicBookList = wx.getStorageSync('electronicBookList') ? JSON.parse(wx.getStorageSync('electronicBookList')).length : 0
      this.setData({
        num: paperBookList + electronicBookList
      })
    }
  },
  /**
@@ -146,44 +177,88 @@
   * 生命周期函数--监听页面显示
   */
  onShow() {
    if (wx.getStorageSync("paperBookList")) {
      this.setData({
        paperBookList: wx.getStorageSync("paperBookList"),
      })
    }
    if (wx.getStorageSync("electronicBookList")) {
      this.setData({
        electronicBookList: wx.getStorageSync("electronicBookList"),
      })
    }
    this.setData({
      num: this.data.paperBookList.length + this.data.electronicBookList.length
    let that = this;
    that.setData({
      page: 1,
      paperBookList: [],
      electronicBookList: []
    })
    this.getBookList(false);
    that.getAlreadyPBookList()
    that.getAlreadyEBookList()
    // 获取申请次数
    that.getSelectPaperBookCount()
    that.getSelectBookCount()
    if (wx.getStorageSync("paperBookList") || wx.getStorageSync("electronicBookList")) {
      if (wx.getStorageSync("paperBookList")) {
        that.setData({
          paperBookList: JSON.parse(wx.getStorageSync("paperBookList")),
        })
      }
      if (wx.getStorageSync("electronicBookList")) {
        that.setData({
          electronicBookList: JSON.parse(wx.getStorageSync("electronicBookList")),
        })
      }
      that.setData({
        num: Number(that.data.paperBookList.length) + Number(that.data.electronicBookList.length)
      })
    }
    that.getBookList(false);
  },
  goBack() {
    wx.navigateBack();
  },
  // 获取纸质书剩余次数
  getSelectPaperBookCount() {
    app.MG.app
      .getTicketResult({
        ticketRefCodeOrGuid: 'paperSampleBookapplyNum',
        roleId: this.data.userInfo.roleId
      })
      .then((res) => {
        this.setData({
          paperBookCount: res.totalCount - res.usedCount
        })
      })
  },
  // 获取电子书剩余次数
  getSelectBookCount() {
    app.MG.app
      .getTicketResult({
        ticketRefCodeOrGuid: 'electronicSampleBookapplyNum',
        roleId: this.data.userInfo.roleId
      })
      .then((res) => {
        this.setData({
          ebookCount: res.totalCount - res.usedCount
        })
      })
  },
  //获取高级分类
  getIconTypeList() {
    let query = {
      path: '*',
      filterList: [
        {
          value: 'Normal',
          field: 'state'
        }
      ],
      filterList: [{
        value: 'Normal',
        field: 'state'
      }],
      queryType: '\\',
      searchList: [],
      size: '5',
      start: '0',
      storeRefCode: app.config.goodsStore,
      sort: { type: 'Asc', field: 'LinkOrder' }
      sort: {
        type: 'Asc',
        field: 'LinkOrder'
      }
    }
    app.MG.store.getStoreChannelList(query).then((res) => {
      let list = [];
      if (res.datas.length > 0) (
      let list = [{
        value: "",
        label: "总分类",
      }];
      if (res.datas.length > 0)(
        res.datas.forEach((item) => {
          item.value = item.refCode;
          item.label = item.name;
@@ -198,7 +273,7 @@
      )
      this.setData({
        'iconList.options': list,
        'iconList.value': this.data.assortCode,
        'iconList.value': this.data.assortCheck.code,
      });
    })
  },
@@ -212,10 +287,16 @@
      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) => {
      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];
@@ -242,7 +323,10 @@
      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) => {
      if (res.datas.length > 0) {
@@ -263,50 +347,7 @@
      })
    });
  },
  // 获取重点项目
  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;
@@ -322,17 +363,43 @@
        queryType: '*',
      };
    }
    if (that.data.sort) {
    if (this.data.sortList.value == "name-asc") {
      sort = {
        Name: that.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 (that.data.sort) {
    //   sort = {
    //     Name: that.data.sort,
    //     BaseType: '',
    //   };
    // } else {
    //   sort = {
    //     type: 'Desc',
    //     field: 'ViewCount',
    //   };
    // }
    // 搜索
    let searchObj = {};
    if (that.data.searchValue) {
@@ -345,12 +412,10 @@
    }
    const query = {
      ...pathObj,
      filterList: [
        {
          value: 'Normal',
          field: 'state',
        },
      ],
      filterList: [{
        value: 'Normal',
        field: 'state',
      }, ],
      sort,
      paging: {
        start: that.data.page * that.data.limit - that.data.limit,
@@ -360,6 +425,8 @@
        author: [],
        isbn: [],
        publicationDate: [],
        pdf: [],
        protectedEpub: [],
        isApplyBook: [],
        'isApplyBook>': ['1'],
        ...searchObj,
@@ -379,26 +446,30 @@
            }
            if (that.data.alreadyPaperBookList.length > 0) {
              that.data.alreadyPaperBookList.forEach((pBook) => {
                pBook.content.forEach((pBookItem) => {
                  if (pBookItem.id === item.id && pBook.state == 'WaitAudit') {
                    item.paperDisabled = true
                    item.paperChecked = true
                  }
                  if (pBookItem.id === item.id && pBook.state == 'Normal') {
                    item.paperDisabled = false
                  }
                })
                if (pBook.content.length > 0) {
                  pBook.content.forEach((pBookItem) => {
                    if (pBookItem.id === item.id && pBook.state == 'WaitAudit') {
                      item.paperDisabled = true
                      item.paperChecked = true
                    }
                    if (pBookItem.id === item.id && pBook.state == 'Normal') {
                      item.paperDisabled = false
                    }
                  })
                }
              })
            }
            if (that.data.alreadyElectronicBookList.length > 0) {
              that.data.alreadyElectronicBookList.forEach((eBook) => {
                eBook.content.forEach((eBookItem) => {
                  if (eBookItem.id === item.id && !eBook.isExpiry && eBook.state != 'Reject') {
                    item.electronDisabled = true
                    item.electronChecked = true
                  }
                })
                if (eBook.content.length > 0) {
                  eBook.content.forEach((eBookItem) => {
                    if (eBookItem.id === item.id && !eBook.isExpiry && eBook.state != 'Reject') {
                      item.electronDisabled = true
                      item.electronChecked = true
                    }
                  })
                }
              })
            }
            if (that.data.paperBookList.length > 0) {
@@ -427,12 +498,10 @@
            bottomLoading: false,
            isMoreData: list.length > 0 ? false : true,
            skeletonLoding: false,
            loading: false
          })
        } else {
          that.setData({
            skeletonLoding: false,
            loading: false
          })
        }
      } catch (error) {
@@ -443,13 +512,14 @@
  //高级分类选择
  onChangeIcon(e) {
    this.setData({
      assortCheck: {
        code: e.detail.value,
      },
      skeletonLoding: true,
      bookList: [],
      'assortCheck.code': e.detail.value,
      stairCode: '',
      secondCode: '',
      path: `${e.detail.value}`,
      'iconList.value': e.detail.value,
    });
    this.getBookList(false);
    this.getStairList(this.data.assortCheck.code);
@@ -457,21 +527,24 @@
  },
  // 一级分类切换
  onChangeStair(e) {
    const path = e.detail.value.length
      ? `${this.data.assortCheck.code}\\${e.detail.value}`
      : this.data.assortCheck.code;
    const path = e.detail.value.length ?
      `${this.data.assortCheck.code}\\${e.detail.value}` :
      this.data.assortCheck.code;
    this.setData({
      skeletonLoding: true,
      bookList: [],
      pathList: [],
      stairCode: e.detail.value,
      secondCode: '',
      path: path,
      'stairList.value': e.detail.value,
      'secondList.value': ""
    });
    this.getBookList(false);
    this.getSecondList(path);
  },
  // 二级分类切换
  onChangeSecond(e) {
  // 二级分类切换
  onConfirmSecond(e) {
    const pathList = [];
    for (let index = 0; index < e.detail.value.length; index++) {
      const element = e.detail.value[index];
@@ -482,69 +555,40 @@
      });
    }
    this.setData({
      skeletonLoding: true,
      pathList: pathList,
      'secondList.value': e.detail.value,
    });
    this.getBookList(false);
  },
  onResetSecond() {
    this.setData({
      skeletonLoding: true,
      pathList: [],
      'secondList.value': [],
    });
    this.getBookList(false);
  },
  },
  //
  onConfirmSecond() {
    this.getBookList(false);
  },
  // 重点项目改变
  changeMajorProject(e) {
  // 排序切换
  onSortChange(e) {
    this.setData({
      'majorProjectList.value': e.detail.value,
      backTop: "#assort-title",
      "sortList.value": e.detail.value,
    });
    this.getBookList(false);
  },
  // 重点项目重置
  resetMajorProject() {
    this.setData({
      'majorProjectList.value': [],
    });
    this.getBookList(false);
  },
  changeNewText(e) {
    this.setData({
      'newTextBook.value': e.detail.value,
    });
    this.getBookList(false);
  },
  resetNewText() {
    this.setData({
      'newTextBook.value': [],
    });
    this.getBookList(false);
  },
  // 排序按钮
  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}`;
      path = `${this.data.assortCheck.code}\\${this.data.stairCode}`;
    } else {
      path = this.data.assortCheck.code;
    }
    this.setData({
      path: path,
    });
    this.getBookList(false);
    this.getBookList(path);
  },
  // 搜索图书
  searchBook(e) {
@@ -555,7 +599,9 @@
  },
  // 跳转图书详情
  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}`,
    });
@@ -621,6 +667,9 @@
        this.setData({
          alreadyElectronicBookList: list,
        });
        if (wx.getStorageSync(app.config.tokenKey)) {
          this.getBookList(false);
        }
      }
    })
  },
@@ -676,17 +725,34 @@
  //纸质样书
  onChangePaper(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
    if (role) {
      if (item.paperDisabled) {
        wx.showToast({
          title: "该样书已申请",
          icon: 'none',
          duration: 1000,
    if (role && role == 'Teacher') {
      // 是教师
      if (e.detail.checked) {
        // 点击选中
        if (this.data.paperBookCount == 0) {
          wx.showToast({
            title: "您的纸质样书申请次数已用尽,若要继续,请联系管理员!",
            icon: "none",
            duration: 1000,
          })
          return false;
        }
        if (this.data.paperBookList.length >= 2) {
          wx.showToast({
            title: "每次最多只可申请2本样书",
            icon: "none",
            duration: 1000,
          })
          return false;
        }
        this.addBookFun(item, "pBook")
        this.setData({
          ["bookList[" + index + "].paperChecked"]: e.detail.checked
        })
        return
      }
      if (item.paperChecked) {
      } else {
        // 取消选中
        let pList = this.data.paperBookList;
        if (pList.length > 0) {
          pList.forEach((obj, index) => {
@@ -695,107 +761,43 @@
            }
          })
        }
        item.paperChecked = false;
        if (this.data.bookList.length > 0) {
          this.data.bookList.forEach(i => {
            if (i.id == item.id) {
              i.paperChecked = false;
            }
          })
        }
        this.setData({
          paperBookList: pList,
          num: this.data.num - 1,
          ["bookList[" + index + "].paperChecked"]: e.detail.checked
        })
        wx.setStorageSync("paperBookList", JSON.stringify(pList));
        wx.showToast({
          title: "已从样书申请单移除",
          icon: 'none',
          duration: 1000,
        })
        this.setData({
          paperBookList: pList,
          num: pList.length + this.data.electronicBookList.length
        })
        wx.setStorageSync("paperBookList", JSON.stringify(pList));
        return
      }
      if (role == 'Teacher') {
        this.getSelectPaperBookCount(item)
      } else {
        item.paperChecked = false
        wx.showModal({
          title: '尊敬的用户,您好!', //提示的标题
          content: '请先进行教师认证?', //提示的内容
          success: function (res) {
            if (res.confirm) {
              wx.navigateTo({
                url: "/packageDomain/pages/teacherCertification/index",
              });
            } else if (res.cancel) {
              item.paperChecked = false
            }
          }
        })
      }
    } else {
      item.paperChecked = false
      wx.showModal({
        title: '尊敬的用户,您好!', //提示的标题
        content: '请先进行教师认证?', //提示的内容
        success: function (res) {
          if (res.confirm) {
            wx.navigateTo({
              url: "/packageDomain/pages/teacherCertification/index",
            });
          }
        }
      })
    }
  },
  getSelectPaperBookCount(item) {
    app.MG.app
      .getTicketResult({
        ticketRefCodeOrGuid: 'paperSampleBookapplyNum',
        roleId: this.data.userInfo.roleId
      })
      .then((res) => {
        this.setData({
          paperBookCount: res.totalCount - res.usedCount
        })
        if (!item.paperDisabled) {
          this.getAlreadyBookList(item, 'pBook')
        }
      })
  },
  //选择电子样书
  onChangeElectron(e) {
  async onChangeElectron(e) {
    const item = e.currentTarget.dataset.book;
    let role = this.data.userInfo != null ? this.data.userInfo.role : null;
    if (role) {
      if (item.electronDisabled) {
        wx.showToast({
          title: "该样书已申请",
          icon: 'none',
          duration: 1000,
        })
        return
      }
      if (item.electronChecked) {
        let eList = this.data.electronicBookList;
        if (eList.length > 0) {
          eList.forEach((obj, index) => {
            if (obj.id == item.id) {
              eList.splice(index, 1);
            }
          })
        }
        if (this.data.bookList.length > 0) {
          this.data.bookList.forEach(i => {
            if (i.id == item.id) {
              i.electronChecked = false;
            }
          })
        }
        item.electronChecked = false;
        wx.showToast({
          title: "已从样书申请单移除",
          icon: 'none',
          duration: 1000,
        })
        this.setData({
          electronicBookList: eList,
          num: eList.length + this.data.paperBookList.length
        })
        wx.setStorageSync("electronicBookList", eList);
        return
      }
      if (role == 'Teacher') {
        //有无子商品,子商品有无电子书文件
    const index = this.data.bookList.findIndex(citem => citem.id == item.id)
    let role = this.data.userInfo != null ? this.data.userInfo.role : null
    if (role && role == 'Teacher') {
      // 是教师
      if (e.detail.checked) {
        // 点击选中
        //商品有无电子书
        const obj = {
          path: '*',
          queryType: 'SubProduct',
@@ -805,7 +807,7 @@
          },
          paging: {
            start: 0,
            size: 6
            size: 1
          },
          mainProductId: item.id,
          fields: {
@@ -813,60 +815,88 @@
            bookshelf_protectedEpub: [],
          }
        }
        app.MG.store.getProductList(obj).then((res) => {
          if (res.datas.length > 0) {
            if (res.datas[0].bookshelf_pdf || res.datas[0].bookshelf_protectedEpub) {
              this.getSelectBookCount(item)
            } else {
              wx.showToast({
                title: "暂无电子书文件,请联系管理员!",
                icon: 'none',
                duration: 1000,
              })
            }
          } else {
            this.getSelectBookCount(item)
        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: "您的电子样书申请次数已用尽,若要继续,请联系管理员!",
            icon: "none",
            duration: 1000,
          })
          return false;
        }
        if (this.data.electronicBookList.length >= 2) {
          wx.showToast({
            title: "每次最多只可申请2本样书",
            icon: "none",
            duration: 1000,
          })
          return false;
        }
        this.addBookFun(item, "eBook")
        this.setData({
          ["bookList[" + index + "].electronChecked"]: e.detail.checked
        })
      } else {
        item.electronChecked = false
        wx.showModal({
          title: '尊敬的用户,您好!', //提示的标题
          content: '请先进行教师认证?', //提示的内容
          success: function (res) {
            if (res.confirm) {
              wx.navigateTo({
                url: "/packageDomain/pages/teacherCertification/index",
              });
            } else if (res.cancel) {
              item.electronChecked = false
        // 取消选中
        let eList = this.data.electronicBookList;
        if (eList.length > 0) {
          eList.forEach((obj, index) => {
            if (obj.id == item.id) {
              eList.splice(index, 1);
            }
          }
          })
        }
        this.setData({
          electronicBookList: eList,
          num: this.data.num - 1,
          ["bookList[" + index + "].electronChecked"]: e.detail.checked
        })
        wx.setStorageSync("electronicBookList", JSON.stringify(eList));
        wx.showToast({
          title: "已从样书申请单移除",
          icon: 'none',
          duration: 1000,
        })
      }
    } else {
      item.electronChecked = false
    }
  },
  getSelectBookCount(item) {
    app.MG.app
      .getTicketResult({
        ticketRefCodeOrGuid: 'electronicSampleBookapplyNum',
        roleId: this.data.userInfo.roleId
      })
      .then((res) => {
        this.setData({
          ebookCount: res.totalCount - res.usedCount
        })
        if (!item.electronDisabled) {
          this.getAlreadyBookList(item, 'eBook')
      wx.showModal({
        title: '尊敬的用户,您好!', //提示的标题
        content: '请先进行教师认证?', //提示的内容
        success: function (res) {
          if (res.confirm) {
            wx.navigateTo({
              url: "/packageDomain/pages/teacherCertification/index",
            });
          }
        }
      })
    }
  },
  getAlreadyBookList(item, type) {
  //  添加样书
  addBookFun(item, type) {
    let itemAttr = null
    let isHas = false
    const eList = this.data.electronicBookList;
    const pList = this.data.paperBookList;
    itemAttr = {
      id: item.id,
      title: item.name || '-',
@@ -879,164 +909,27 @@
      isbn: item.isbn || '-',
      publicationDate: item.publicationDate
    }
    if (type == 'eBook') {
      if (this.data.ebookCount > 0) {
        const eBookData = this.data.electronicBookList
        if (eBookData.length == 2) {
          if (this.data.bookList.length > 0) {
            this.data.bookList.forEach(i => {
              if (i.id == item.id) {
                i.electronChecked = false;
              }
            })
          }
          item.electronChecked = false;
          wx.showToast({
            title: "每次最多只可申请2本样书",
            icon: 'none',
            duration: 1000,
          })
          return false
        }
        if (eBookData.length > 0) {
          for (let i = 0; i < eBookData.length; i++) {
            if (eBookData[i].id == item.id) {
              isHas = true
            }
          }
          if (!isHas) {
            wx.showToast({
              title: "添加成功,在样书申请单等您哦~",
              icon: "none",
              duration: 1000,
            })
            this.setData({
              electronicBookList: [...this.data.electronicBookList, ...[itemAttr]],
            })
            wx.setStorageSync("electronicBookList", this.data.electronicBookList);
            this.setData({
              num: this.data.electronicBookList.length + this.data.paperBookList.length
            })
          } else {
            let list = this.data.electronicBookList;
            list.forEach((obj, index) => {
              if (obj.id == item.id) {
                list.splice(index, 1);
              }
            })
            item.electronChecked = false
            wx.showToast({
              title: "已从样书申请单移除",
              icon: "none",
              duration: 1000,
            })
            this.setData({
              electronicBookList: list,
              num: list.length + this.data.paperBookList.length
            })
            wx.setStorageSync("electronicBookList", list);
          }
        } else {
          wx.showToast({
            title: "添加成功,在样书申请单等您哦~",
            icon: "none",
            duration: 1000,
          })
          this.setData({
            electronicBookList: [itemAttr],
            num: 1 + this.data.paperBookList.length
          })
          wx.setStorageSync("electronicBookList", [itemAttr]);
        }
      } else {
        item.electronChecked = false
        wx.showToast({
          title: "您的电子样书申请次数已用尽,若要继续,请联系管理员!",
          icon: "none",
          duration: 1000,
        })
      }
      eList.push(itemAttr)
      this.setData({
        electronicBookList: eList,
      })
      wx.setStorageSync("electronicBookList", JSON.stringify(eList));
    } else {
      if (this.data.paperBookCount > 0) {
        const pBookData = this.data.paperBookList
        if (pBookData.length == 2) {
          if (this.data.bookList.length > 0) {
            this.data.bookList.forEach(i => {
              if (i.id == item.id) {
                i.paperChecked = false;
              }
            })
          }
          item.paperChecked = false
          wx.showToast({
            title: "每次最多只可申请2本样书",
            icon: 'none',
            duration: 1000,
          })
          return false
        }
        if (pBookData.length > 0) {
          for (let i = 0; i < pBookData.length; i++) {
            if (pBookData[i].id == item.id) {
              isHas = true
            }
          }
          if (!isHas) {
            item.paperChecked = true
            wx.showToast({
              title: "添加成功,在样书申请单等您哦~",
              icon: 'none',
              duration: 1000,
            })
            this.setData({
              paperBookList: [...this.data.paperBookList, ...[itemAttr]],
            })
            wx.setStorageSync("paperBookList", this.data.paperBookList);
            this.setData({
              num: this.data.paperBookList.length + this.data.electronicBookList.length
            })
          } else {
            let list = this.data.paperBookList;
            list.forEach((obj, index) => {
              if (obj.id == item.id) {
                list.splice(index, 1);
              }
            })
            item.paperChecked = false
            wx.showToast({
              title: "已从样书申请单移除",
              icon: "none",
              duration: 1000,
            })
            this.setData({
              paperChecked: list,
              num: list.length + this.data.electronicBookList.length
            })
            wx.setStorageSync("paperBookList", list);
          }
        } else {
          item.paperChecked = true;
          wx.showToast({
            title: "添加成功,在样书申请单等您哦~",
            icon: 'none',
            duration: 1000,
          })
          this.setData({
            paperBookList: [itemAttr],
            num: 1 + this.data.electronicBookList.length
          })
          wx.setStorageSync("paperBookList", [itemAttr]);
        }
      } else {
        item.paperChecked = false
        wx.showToast({
          title: "您的纸质样书申请次数已用尽,若要继续,请联系管理员!",
          icon: 'none',
          duration: 1000,
        })
      }
      pList.push(itemAttr)
      this.setData({
        paperBookList: pList,
      })
      wx.setStorageSync("paperBookList", JSON.stringify(pList));
    }
    this.setData({
      num: this.data.num + 1
    })
    wx.showToast({
      title: "添加成功,在样书申请单等您哦~",
      icon: "none",
      duration: 1000,
    })
  },
  //去样书申请单
  goApply() {
@@ -1060,7 +953,6 @@
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
  }
  onShareAppMessage() {},
  onShareTimeline() {},
})