From ccf200b60ad213343a13d36c17c5ee5ac5cd7b7a Mon Sep 17 00:00:00 2001
From: litian <C21AF165>
Date: 星期三, 27 三月 2024 20:19:45 +0800
Subject: [PATCH] 样书等

---
 packageDomain/pages/sampleBookList/index.js |  513 +++++++++++++++++++++-----------------------------------
 1 files changed, 190 insertions(+), 323 deletions(-)

diff --git a/packageDomain/pages/sampleBookList/index.js b/packageDomain/pages/sampleBookList/index.js
index b06b523..e01c948 100644
--- a/packageDomain/pages/sampleBookList/index.js
+++ b/packageDomain/pages/sampleBookList/index.js
@@ -1,3 +1,6 @@
+import {
+  loginInfo
+} from '../../../assets/js/login';
 const app = getApp();
 Page({
 
@@ -113,27 +116,41 @@
           Path: options.secondCode,
           Type: '*',
           StoreRefCode: app.config.goodsStore,
-        }
-        ],
+        }],
       })
     }
     this.getIconTypeList();
-
     // 鑾峰彇閲嶇偣椤圭洰
     this.getProjectList('bookClassification');
     //鏂板舰鎬佹暀鏉�
     this.getProjectList('newFormsTextbooks');
-    if (wx.getStorageSync(app.config.tokenKey)) {
-      this.getAlreadyPBookList()
-      this.getAlreadyEBookList()
-    }
-    if (wx.getStorageSync(app.config.userInfoKey)) {
+
+    // 妫�鏌ョ櫥褰曠姸鎬�
+    const token = wx.getStorageSync(app.config.tokenKey)
+    if (!token) {
+      loginInfo(app, (data) => {
+        if (data) {
+          this.setData({
+            userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey))
+          })
+          this.getAlreadyPBookList()
+          this.getAlreadyEBookList()
+          // 鑾峰彇鐢宠娆℃暟
+          this.getSelectPaperBookCount()
+          this.getSelectBookCount()
+
+        }
+      })
+    } else {
       this.setData({
         userInfo: JSON.parse(wx.getStorageSync(app.config.userInfoKey))
       })
+      this.getAlreadyPBookList()
+      this.getAlreadyEBookList()
+      // 鑾峰彇鐢宠娆℃暟
+      this.getSelectPaperBookCount()
+      this.getSelectBookCount()
     }
-    this.getBookList(false);
-
   },
 
   /**
@@ -160,31 +177,59 @@
     this.setData({
       num: this.data.paperBookList.length + this.data.electronicBookList.length
     })
-
+    this.getBookList(false);
   },
   goBack() {
     wx.navigateBack();
+  },
+
+  // 鑾峰彇绾歌川涔﹀墿浣欐鏁�
+  getSelectPaperBookCount(item) {
+    app.MG.app
+      .getTicketResult({
+        ticketRefCodeOrGuid: 'paperSampleBookapplyNum',
+        roleId: this.data.userInfo.roleId
+      })
+      .then((res) => {
+        this.setData({
+          paperBookCount: res.totalCount - res.usedCount
+        })
+      })
+  },
+  // 鑾峰彇鐢靛瓙涔﹀墿浣欐鏁�
+  getSelectBookCount(item) {
+    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) (
+      if (res.datas.length > 0)(
         res.datas.forEach((item) => {
           item.value = item.refCode;
           item.label = item.name;
@@ -213,7 +258,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(async (res) => {
       let options = [];
@@ -243,7 +291,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) {
@@ -346,12 +397,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,
@@ -458,9 +507,9 @@
   },
   // 涓�绾у垎绫诲垏鎹�
   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({
       pathList: [],
       stairCode: e.detail.value,
@@ -556,7 +605,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}`,
     });
@@ -680,17 +731,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) => {
@@ -699,77 +767,64 @@
             }
           })
         }
-        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
-    }
-  },
-  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')
+      wx.showModal({
+        title: '灏婃暚鐨勭敤鎴凤紝鎮ㄥソ锛�', //鎻愮ず鐨勬爣棰�
+        content: '璇峰厛杩涜鏁欏笀璁よ瘉锛�', //鎻愮ず鐨勫唴瀹�
+        success: function (res) {
+          if (res.confirm) {
+            wx.navigateTo({
+              url: "/packageDomain/pages/teacherCertification/index",
+            });
+          }
         }
       })
+    }
   },
+
   //閫夋嫨鐢靛瓙鏍蜂功
   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,
+    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) {
+        // 鐐瑰嚮閫変腑
+        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
         })
-        return
-      }
-      if (item.electronChecked) {
+      } else {
+        // 鍙栨秷閫変腑
         let eList = this.data.electronicBookList;
         if (eList.length > 0) {
           eList.forEach((obj, index) => {
@@ -778,99 +833,38 @@
             }
           })
         }
-        if (this.data.bookList.length > 0) {
-          this.data.bookList.forEach(i => {
-            if (i.id == item.id) {
-              i.electronChecked = false;
-            }
-          })
-        }
-        item.electronChecked = false;
+        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,
         })
-        this.setData({
-          electronicBookList: eList,
-          num: eList.length + this.data.paperBookList.length
-        })
-        wx.setStorageSync("electronicBookList", eList);
-        return
-      }
-      if (role == 'Teacher') {
-        //鏈夋棤瀛愬晢鍝侊紝瀛愬晢鍝佹湁鏃犵數瀛愪功鏂囦欢
-        const obj = {
-          path: '*',
-          queryType: 'SubProduct',
-          sort: {
-            type: 'Desc',
-            field: 'CreateDate'
-          },
-          paging: {
-            start: 0,
-            size: 6
-          },
-          mainProductId: item.id,
-          fields: {
-            bookshelf_pdf: [],
-            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)
-          }
-        })
-      } 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
-            }
-          }
-        })
       }
     } 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 || '-',
@@ -883,154 +877,27 @@
       isbn: item.isbn || '-',
       publicationDate: item.publicationDate
     }
-
     if (type == 'eBook') {
-      if (this.data.ebookCount > 0) {
-        const eBookData = this.data.electronicBookList
-        if (eBookData.length == 2) {
-          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
-            })
-            this.getBookList(false);
-          } 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);
-            this.getBookList(false);
-          }
-        } 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", eList);
     } else {
-      if (this.data.paperBookCount > 0) {
-        const pBookData = this.data.paperBookList
-        if (pBookData.length == 2) {
-          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", pList);
     }
+    this.setData({
+      num: this.data.num + 1
+    })
+    wx.showToast({
+      title: "娣诲姞鎴愬姛锛屽湪鏍蜂功鐢宠鍗曠瓑鎮ㄥ摝~",
+      icon: "none",
+      duration: 1000,
+    })
   },
   //鍘绘牱涔︾敵璇峰崟
   goApply() {

--
Gitblit v1.9.1