YM
3 天以前 b5bf6a8ff37d5c363a68697ac8cab88ff21b1614
packageBookService/pages/psychologyAnswer/psychologyAnswer.js
@@ -9,11 +9,12 @@
   * 页面的初始数据
   */
  data: {
    isBuy: false, // 是否需要购买
    questuionName: "", //试卷名称
    dataList: "",
    barHeight: "",
    navBarHeight: "",
    loading: false,
    loading: true,
    answerTitle: "", // 导航栏标题
    submitStatus: false, // 提交状态
    currentIndex: 0, // 当前显示的题号
@@ -37,27 +38,86 @@
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const questuionName = options.listName
    // 在此进行是否购买的查询
    const questionName = options.listName
    this.setData({
      questuionName: questuionName
    })
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight =
      (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      loginInfo(app, (data) => {
        if (data) {
          this.init();
        } else {
          this.init();
        }
      })
      questuionName: questionName
    });
    const isEmption = questionName.includes('-评审')
    if (isEmption) {
      this.initialize()
    } else {
      this.init()
      const questionList = pastData.postData.list
      var listIndex = 0
      for (let index = 0; index < questionList.length; index++) {
        const item = questionList[index];
        if (item.name == questionName) {
          listIndex = index
        }
      }
      const indexof = listIndex
      const idPath = questionList[indexof].idPath;
      const bookId = questionList[indexof].bookId;
      const bookName = "大学生心理健康(第3版)(融媒体版)"
      const formPath = "questionBank"
      // 进行处理
      const query = {
        path: "*",
        queryType: "*",
        productId: bookId,
        cmsPath: "161796",
        cmsType: "*"
      };
      app.MG.store.getProductDetail(query).then(async (res) => {
        const linkPathList = res.datas.cmsDatas[0].datas
        const isBuyList = res.datas.purchasedSaleMethodIdList
        let isBuy = false
        const idParhList = idPath.split("/").reverse()
        for (let index = 0; index < idParhList.length; index++) {
          const item = idParhList[index];
          const thisItem = linkPathList.find(citem => item == citem.id);
          if (thisItem.saleMethod.length > 0) {
            if (isBuyList.includes(thisItem.saleMethod[0].Id) || thisItem.saleMethod[0].Price == 0) {
              isBuy = true
              break
            } else {
              isBuy = false
              break
            }
          }
        }
        this.setData({
          isBuy: isBuy
        });
        if (!isBuy) {
          wx.showModal({
            icon: 'error',
            title: '温馨提示',
            content: '请购买题库,即将返回购买页',
            confirmText: '确定',
            showCancel: false, // 关闭取消按钮
            success: function (res) {
              if (res.confirm) {
                wx.navigateTo({
                  url: '/packageBookService/pages/bookServices/detail/index?id=' + bookId + '&name=' + bookName + '&tabValue=' + formPath,
                })
              }
            }
          });
          return; // 直接返回,避免执行后续代码
        }
        // 其他逻辑
        this.initialize()
      }).catch((err) => {
        console.error('检查题库失败:', err);
        wx.showToast({
          icon: 'error',
          title: '加载失败,请重试'
        });
      });
    }
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
@@ -86,6 +146,7 @@
        }
      }, 1000);
    }
    this.setData({
      startTime: Date.now(),
    });
@@ -107,6 +168,7 @@
    }
  },
  /**
   * 生命周期函数--监听页面卸载
   */
@@ -123,6 +185,25 @@
    if (wx.getStorageSync(app.config.tokenKey)) {
      let duration = this.data.pauseTime - this.data.startTime;
      this.count(duration);
    }
  },
  initialize() {
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight =
      (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
    const token = wx.getStorageSync(app.config.tokenKey);
    if (!token) {
      loginInfo(app, (data) => {
        if (data) {
          this.init();
        } else {
          this.init();
        }
      });
    } else {
      this.init();
    }
  },
@@ -282,22 +363,14 @@
  },
  // 切换题目
  changeSwiper(e) {
    let index = e.detail.index - 1 >= 0 ? e.detail.index - 1 : 0;
    const item = this.data.questionDataList[index];
    const lastItem = this.data.questionDataList[index + 1];
    let index = e.detail.index;
    const lastItem = this.data.questionDataList[index];
    this.setData({
      currentIndex: e.detail.index,
      showId: lastItem.id
    });
    if (
      (this.data.answerType == "collectQuestion" ||
        this.data.answerType == "errorQuestion") &&
      !item.isComplete
    ) {
      let flag = this.isHaveAnswer(item.userAnswer);
      if (flag) this.handleQuestion(index);
    }
  },
  // 我的错题,收藏查看解析按钮
  viewParsing() {
    if (
@@ -396,6 +469,12 @@
        radioChange(citem)
      }
    }
    const listLength = this.data.questionDataList.length - 1
    if (this.data.currentIndex < listLength) {
      this.setData({
        currentIndex: this.data.currentIndex + 1
      })
    }
  },
  // 输入框触发
  onChangeInput(e) {
@@ -471,10 +550,6 @@
    // 先遍历所有题目,将未批改的题目批改
    const qustionList = this.data.questionDataList;
    if (qustionList.length) this.handleQuestion();
    this.setData({
      isShowDialog: true,
      submitStatus: true,
    })
    // 记录用户答题数据
    let saveData = [];
    for (let index = 0; index < this.data.questionDataList.length; index++) {
@@ -497,13 +572,15 @@
    });
    this.setData({
      loading: false,
      showDialog: false,
      isShowDialog: true,
      submitStatus: true,
    });
  },
  // 初始化函数
  async init(isReset) {
    this.setData({
      loading: false,
      isShowDialog: false,
      loading: true,
    });
    const questuionName = this.data.questuionName
    const questuionList = pastData.postData.list
@@ -552,7 +629,6 @@
    const questionList = this.data.questionDataList;
    const optionList = this.data.questionDataOptions;
    const scoreData = this.data.scoreDataList;
    debugger
    for (let index = 0; index < questionList.length; index++) {
      const item = questionList[index];
      if (item.questionType == 'judge' && item.userAnswer) {
@@ -661,6 +737,7 @@
  },
  async restart() {
    this.setData({
      isShowDialog: false,
      currentIndex: 0,
      submitStatus: false,
    });
@@ -724,25 +801,24 @@
          this.setData({
            questionDataList: newArr,
            scoreDataList: scoreArr,
            loading: false,
          })
        } catch (error) {
          this.setData({
            questionDataList: newArr,
            scoreDataList: scoreArr
            scoreDataList: scoreArr,
            loading: false,
          })
          console.log(error);
        }
        const e = {
          detail: {
            index: 0
          }
        };
        this.changeSwiper(e)
      });
  },
  // 记录模考答题数据
  saveMockData() {