闫增涛
2024-04-03 34dd2d10cf26c86ed170a59aa36718f7c27f24d0
packageBookService/pages/bookServices/detail/index.js
@@ -1,9 +1,7 @@
// pages/bookServices/detail/index.js
import Toast from "tdesign-miniprogram/toast";
import tool from "../../../../assets/js/toolClass";
import {
  loginInfo
} from "../../../../assets/js/login";
import { loginInfo } from "../../../../assets/js/login";
const app = getApp();
Page({
  /**
@@ -59,6 +57,8 @@
      residue: 0, // 组卷剩余次数
      mockList: [], // 用户组卷提交信息
    },
    relatedBookLoading: false,
    noRelatedBookData: false,
    relatedBookPath: "", // 相关图书path
    relatedBookData: [], // 相关图书列表
    flag: true,
@@ -143,27 +143,12 @@
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 检查登录状态
    // const token = wx.getStorageSync(app.config.tokenKey)
    // if (!token) {
    //   loginInfo(app, (data) => {
    //     // 如果不是第一次登录,会执行回调
    //     if (data) {
    //       // 登录成功,自动记录token和用户信息,并返回true
    //     } else {
    //       // 出现错误,返回false
    //     }
    //   })
    // } else {
    //   // 如果是第一次登录,会跳转至绑定用户信息页面,填写完用户信息后进行登录并储存token和用户信息,结束后跳转回当前页面(携带页面参数)
    // }
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight =
      (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
    this.setData({
      bookId: options.id,
      bookId: options.id + "",
      barHeight: systInfo.statusBarHeight,
      navBarHeight: navBarHeight,
    });
@@ -173,7 +158,6 @@
        name: options.name,
      },
    });
    this.getBookInfo(options.id);
    this.getResourceClass(); // 获取资源所属分类
    const token = wx.getStorageSync(app.config.tokenKey);
@@ -446,9 +430,10 @@
        this.setData({
          bookItemDetail: res.datas[0],
          selectedIds: res.datas[0].defaultSaleMethod.id,
          bookBuy: res.datas[0].purchasedSaleMethodIdList.indexOf(
            res.datas[0].defaultSaleMethodId
          ) > -1,
          bookBuy:
            res.datas[0].purchasedSaleMethodIdList.indexOf(
              res.datas[0].defaultSaleMethodId
            ) > -1,
        });
        let times = new Date(res.datas[0].defaultSaleMethod.endDate).getTime();
        let startTime = new Date(
@@ -510,9 +495,10 @@
        }
        this.setData({
          selectedIds: this.data.bookDetail.defaultSaleMethodId,
          bookBuy: this.data.bookDetail.purchasedSaleMethodIdList.indexOf(
            this.data.bookDetail.defaultSaleMethodId
          ) > -1,
          bookBuy:
            this.data.bookDetail.purchasedSaleMethodIdList.indexOf(
              this.data.bookDetail.defaultSaleMethodId
            ) > -1,
        });
        let times = new Date(
          this.data.bookDetail.defaultSaleMethod.endDate
@@ -616,9 +602,7 @@
  },
  // 跳转网店
  goShop(e) {
    const {
      link
    } = e.currentTarget.dataset;
    const { link } = e.currentTarget.dataset;
    wx.navigateTo({
      url: `/packageBookService/pages/bookServices/webpage/index?url=${link}`,
    });
@@ -749,8 +733,8 @@
                openTeachids: result,
              });
            } else if (type.refCode == "jsek_cloudLearning") {
              let arr = this.handleTreeData(list).filter((item) =>
                this.resourceIsBuy(item)
              let arr = this.handleTreeData(list).filter(
                (item) => item.saleMethod[0]
              );
              let freeIds = arr.filter((item) => {
                return item.saleMethod[0].Price == 0;
@@ -759,7 +743,6 @@
                this.setData({
                  isshowDrawBtn: false,
                });
              debugger;
              this.findChildIds(list, result);
              this.setData({
                learn: list,
@@ -906,11 +889,13 @@
      console.log(determine);
      if (!determine) {
        let query = {
          requests: [{
            saleMethodId: this.data.selectedIds,
            storeEventId: null,
            agentCode: "电子书",
          }, ],
          requests: [
            {
              saleMethodId: this.data.selectedIds,
              storeEventId: null,
              agentCode: "电子书",
            },
          ],
        };
        const addRes = app.MG.store.addShoppingCart(query);
        this.showSuccessToast();
@@ -951,12 +936,14 @@
      let bookOrdersId = "";
      let query = {
        remarks: "电子书",
        requests: [{
          saleMethodId: this.data.bookItemDetail.defaultSaleMethodId ?
            this.data.bookItemDetail.defaultSaleMethodId :
            this.data.bookDetail.defaultSaleMethodId,
          count: 1,
        }, ],
        requests: [
          {
            saleMethodId: this.data.bookItemDetail.defaultSaleMethodId
              ? this.data.bookItemDetail.defaultSaleMethodId
              : this.data.bookDetail.defaultSaleMethodId,
            count: 1,
          },
        ],
      };
      // 发起订单初始化请求并等待结果
      const res = await app.MG.store.initOrder(query);
@@ -1080,12 +1067,14 @@
          cmsTypeRefCode: "",
          newDataListRequest: [],
          name: this.data.bookDetail.name, // name为申请的书本名称
          content: JSON.stringify([{
            name: this.data.bookDetail.name,
            id: this.data.bookDetail.id,
            // defaultSaleMethodId: bookData.value.defaultSaleMethodId,
            icon: this.data.bookDetail.icon,
          }, ]),
          content: JSON.stringify([
            {
              name: this.data.bookDetail.name,
              id: this.data.bookDetail.id,
              // defaultSaleMethodId: bookData.value.defaultSaleMethodId,
              icon: this.data.bookDetail.icon,
            },
          ]),
        };
        app.MG.ugc.newTopicMessage(query).then(async (res) => {
          if (res) {
@@ -1101,7 +1090,8 @@
          title: "尊敬的用户,您好!",
          content: "请先进行教师认证!",
          complete: (res) => {
            if (res.cancel) {}
            if (res.cancel) {
            }
            if (res.confirm) {
              wx.navigateTo({
                url: "/packageDomain/pages/teacherCertification/index",
@@ -1115,7 +1105,8 @@
        title: "尊敬的用户,您好!",
        content: "请先进行教师认证!",
        complete: (res) => {
          if (res.cancel) {}
          if (res.cancel) {
          }
          if (res.confirm) {
            wx.navigateTo({
              url: "/packageDomain/pages/teacherCertification/index",
@@ -1143,7 +1134,8 @@
        title: "尊敬的用户,您好!",
        content: "请先进行教师认证!",
        complete: (res) => {
          if (res.cancel) {}
          if (res.cancel) {
          }
          if (res.confirm) {
            wx.navigateTo({
              url: "/packageDomain/pages/teacherCertification/index",
@@ -1483,9 +1475,9 @@
        if (new RegExp("(" + k + ")").test(fmt)) {
          fmt = fmt.replace(
            RegExp.$1,
            RegExp.$1.length == 1 ?
            o[k] :
            ("00" + o[k]).substr(("" + o[k]).length)
            RegExp.$1.length == 1
              ? o[k]
              : ("00" + o[k]).substr(("" + o[k]).length)
          );
        }
      }
@@ -1539,10 +1531,12 @@
    try {
      let query = {
        remarks: "组卷",
        requests: [{
          saleMethodId: this.data.mockData.id,
          count: 1,
        }, ],
        requests: [
          {
            saleMethodId: this.data.mockData.id,
            count: 1,
          },
        ],
      };
      if (this.data.flag) {
        this.setData({
@@ -1592,16 +1586,21 @@
    });
    // 记录购买时间,并设状态state为1,表示刚购买完成组卷
    app.MG.identity.setUserKey({
      setKeyRequests: [{
        domain: "mockData",
        key: this.data.bookDetail.id + "",
        value: JSON.stringify(this.data.mockData.mockList),
      }, ],
      setKeyRequests: [
        {
          domain: "mockData",
          key: this.data.bookDetail.id + "",
          value: JSON.stringify(this.data.mockData.mockList),
        },
      ],
    });
  },
  // 获取相关图书
  getAboutBook(path) {
    // loadings.value.aboutBook = true
    this.setData({
      relatedBookLoading: true,
      noRelatedBookData: false,
    });
    let query = {
      path,
      queryType: "*",
@@ -1623,24 +1622,34 @@
        (item) => item.id != this.data.bookDetail.id
      );
      let bookArr = [];
      if (Arr.length) {
        if (Arr.length > 3) {
          for (var i = 0; i < 3; i++) {
            var _num = Math.floor(Math.random() * Arr.length);
            var mm = Arr[_num];
            Arr.splice(_num, 1);
            bookArr.push(mm);
          }
        } else {
          bookArr = Arr;
        }
      // if (Arr.length > 3) {
      //   for (var i = 0; i < 3; i++) {
      //     var _num = Math.floor(Math.random() * Arr.length);
      //     var mm = Arr[_num];
      //     Arr.splice(_num, 1);
      //     bookArr.push(mm);
      //   }
      // } else {
      //   bookArr = Arr;
      // }
      this.setData({
        relatedBookData: Arr,
        relatedBookLoading: false,
      });
      if (!this.data.relatedBookData.length)
        this.setData({
          relatedBookData: bookArr,
          noRelatedBookData: true,
        });
        console.log("相关图书", this.data.relatedBookData);
      }
      console.log("相关图书", this.data.relatedBookData);
    });
    // loadings.value.aboutBook = false
  },
  goBookDetails(e) {
    console.log(e);
    this.setData({
      tabValue: "brief",
      pageLoading: true,
    });
    this.onLoad({ id: e.detail.id, name: e.detail.name });
  },
  // 底部购买按钮
  buyBtn() {
@@ -1664,7 +1673,8 @@
      return false;
    }
    wx.navigateTo({
      url: "/packageBookService/pages/components/webView/index?md5=" +
      url:
        "/packageBookService/pages/components/webView/index?md5=" +
        this.data.fileInfo.md5 +
        "&fileName=" +
        this.data.fileInfo.bookName +
@@ -1776,24 +1786,27 @@
  //申请电子样书
  appplyElectronicBook() {
    console.log(this.data.bookDetail)
    if (this.data.bookDetail.isApplyBook == 2 || this.data.bookDetail.isApplyBook == 4) {
      let role = this.data.userInfo != null ? this.data.userInfo.role : null
      if (role && role == 'Teacher') {
    console.log(this.data.bookDetail);
    if (
      this.data.bookDetail.isApplyBook == 2 ||
      this.data.bookDetail.isApplyBook == 4
    ) {
      let role = this.data.userInfo != null ? this.data.userInfo.role : null;
      if (role && role == "Teacher") {
        if (!this.data.noFile) {
          wx.showToast({
            title: "暂无电子书文件,请联系管理员!",
            icon: 'none',
            icon: "none",
            duration: 1000,
          })
          return
          });
          return;
        }
        if (this.data.ebookCount == 0) {
          wx.showToast({
            title: "您的电子样书申请次数已用尽,若要继续,请联系管理员!",
            icon: "none",
            duration: 1000,
          })
          });
          return false;
        }
        if (this.data.electronicBookList.length >= 2) {
@@ -1801,40 +1814,45 @@
            title: "每次最多只可申请2本样书",
            icon: "none",
            duration: 1000,
          })
          });
          return false;
        }
        let isHas = this.data.electronicBookList.find((eitem) => eitem.id == this.data.bookDetail.id)
        let isHas = this.data.electronicBookList.find(
          (eitem) => eitem.id == this.data.bookDetail.id
        );
        if (isHas) {
          wx.showToast({
            title: "该书已在清单列表中",
            icon: "none",
            duration: 1000,
          })
          });
          return false;
        }
        let isApply = this.data.alreadyElectronicBookList.find((eitem) => eitem.id == this.data.bookDetail.id)
        let isApply = this.data.alreadyElectronicBookList.find(
          (eitem) => eitem.id == this.data.bookDetail.id
        );
        if (isApply) {
          wx.showToast({
            title: "该书已申请!",
            icon: "none",
            duration: 1000,
          })
          });
          return false;
        }
        this.addBookFun(this.data.bookDetail, "eBook")
        this.addBookFun(this.data.bookDetail, "eBook");
      } else {
        wx.showModal({
          title: '尊敬的用户,您好!', //提示的标题
          content: '请先进行教师认证?', //提示的内容
          title: "尊敬的用户,您好!", //提示的标题
          content: "请先进行教师认证?", //提示的内容
          success: function (res) {
            if (res.confirm) {
              wx.navigateTo({
                url: "/packageDomain/pages/teacherCertification/index",
              });
            } else if (res.cancel) {}
          }
        })
            } else if (res.cancel) {
            }
          },
        });
      }
    } else {
      wx.showToast({
@@ -1846,16 +1864,19 @@
  },
  //申请纸质样书
  appplyPaperBook() {
    if (this.data.bookDetail.isApplyBook == 3 || this.data.bookDetail.isApplyBook == 4) {
      let role = this.data.userInfo != null ? this.data.userInfo.role : null
      if (role && role == 'Teacher') {
    if (
      this.data.bookDetail.isApplyBook == 3 ||
      this.data.bookDetail.isApplyBook == 4
    ) {
      let role = this.data.userInfo != null ? this.data.userInfo.role : null;
      if (role && role == "Teacher") {
        // 点击选中
        if (this.data.paperBookCount == 0) {
          wx.showToast({
            title: "您的纸质样书申请次数已用尽,若要继续,请联系管理员!",
            icon: "none",
            duration: 1000,
          })
          });
          return false;
        }
        if (this.data.paperBookList.length >= 2) {
@@ -1863,40 +1884,45 @@
            title: "每次最多只可申请2本样书",
            icon: "none",
            duration: 1000,
          })
          });
          return false;
        }
        let isHas = this.data.paperBookList.find((pitem) => pitem.id == this.data.bookDetail.id)
        let isHas = this.data.paperBookList.find(
          (pitem) => pitem.id == this.data.bookDetail.id
        );
        if (isHas) {
          wx.showToast({
            title: "该书已在清单列表中",
            icon: "none",
            duration: 1000,
          })
          });
          return false;
        }
        let isApply = this.data.alreadyPaperBookList.find((pitem) => pitem.id == this.data.bookDetail.id)
        let isApply = this.data.alreadyPaperBookList.find(
          (pitem) => pitem.id == this.data.bookDetail.id
        );
        if (isApply) {
          wx.showToast({
            title: "该书已申请!",
            icon: "none",
            duration: 1000,
          })
          });
          return false;
        }
        this.addBookFun(this.data.bookDetail, "pBook")
        this.addBookFun(this.data.bookDetail, "pBook");
      } else {
        wx.showModal({
          title: '尊敬的用户,您好!', //提示的标题
          content: '请先进行教师认证?', //提示的内容
          title: "尊敬的用户,您好!", //提示的标题
          content: "请先进行教师认证?", //提示的内容
          success: function (res) {
            if (res.confirm) {
              wx.navigateTo({
                url: "/packageDomain/pages/teacherCertification/index",
              });
            } else if (res.cancel) {}
          }
        })
            } else if (res.cancel) {
            }
          },
        });
      }
    } else {
      wx.showToast({
@@ -1979,4 +2005,4 @@
      teach: tree,
    });
  },
});
});