litian
2024-06-26 ccda9ec2fe70d8f51ef184eafc04b78d22dfbabd
packageBookService/pages/bookServices/detail/index.js
@@ -16,6 +16,7 @@
    options: {
      id: "",
      name: "",
      storeInfo: '',
    },
    bookDetail: {},
    bookClass: [],
@@ -179,6 +180,7 @@
      options: {
        id: options.id,
        name: options.name,
        storeInfo: options.storeInfo,
      },
    });
    wx.setNavigationBarTitle({
@@ -348,6 +350,7 @@
      "mockData.count": 0,
    });
    const query = {
      storeInfo: this.data.options.storeInfo,
      path: "*",
      queryType: "*",
      productId: id,
@@ -640,6 +643,8 @@
      this.setData({
        showIndex: '1'
      })
    console.log(this.data.bookDetail.icon, '0111111');
    console.log(this.data.bookDetail.name, '45688');
  },
  // 跳转网店
  goShop(e) {
@@ -768,7 +773,7 @@
  },
  // 扁平化数据转换tree
  getTreeList(rootList, pathLength, newArr, path) {
  getTreeList(rootList, pathLength, newArr, path, addNum) {
    for (const item of rootList) {
      // 此处原本 item.productLinkPath.length == pathLength 但 productLinkPath 长度个别书存在4、5位交错
      if ((pathLength - item.productLinkPath.length >= 0 && pathLength - item.productLinkPath.length <= 3) && item.productLinkPath.includes(path)) {
@@ -786,13 +791,13 @@
        }
        // newArr.push(item)
        // 在插入过程中对数据进行排序
        newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item)
        newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item, addNum)
      }
    }
    //给数组里面再添加一个children的空数组
    for (const i of newArr) {
      i.children = []
      this.getTreeList(rootList, pathLength + 6, i.children, i.productLinkPath)
      this.getTreeList(rootList, pathLength + addNum, i.children, i.productLinkPath, addNum)
      if (i.children.length == 0) {
        delete i.children
      }
@@ -817,9 +822,9 @@
  },
  // 排序数组 按照productLinkPath
  insertAndSortObjectsByProductLinkPath(array, newObj) {
  insertAndSortObjectsByProductLinkPath(array, newObj, addNum) {
    // 查找新对象应该插入的位置  
    let insertIndex = array.findIndex(obj => Number(newObj.productLinkPath.substring(newObj.productLinkPath.length - 6, newObj.productLinkPath.length)) < Number(obj.productLinkPath.substring(obj.productLinkPath.length - 6, obj.productLinkPath.length)));
    let insertIndex = array.findIndex(obj => Number(newObj.productLinkPath.substring(newObj.productLinkPath.length - addNum, newObj.productLinkPath.length)) < Number(obj.productLinkPath.substring(obj.productLinkPath.length - addNum, obj.productLinkPath.length)));
    // 如果没有找到合适的位置,则放在数组末尾  
    if (insertIndex === -1) {
@@ -830,10 +835,10 @@
    // 测试6 正式5
    // 对数组进行排序  
    array.sort((a, b) => {
      if (Number(a.productLinkPath.substring(a.productLinkPath.length - 5, a.productLinkPath.length)) < Number(b.productLinkPath.substring(b.productLinkPath.length - 5, b.productLinkPath.length))) {
      if (Number(a.productLinkPath.substring(a.productLinkPath.length - addNum, a.productLinkPath.length)) < Number(b.productLinkPath.substring(b.productLinkPath.length - addNum, b.productLinkPath.length))) {
        return -1;
      }
      if (Number(a.productLinkPath.substring(a.productLinkPath.length - 5, a.productLinkPath.length)) > Number(b.productLinkPath.substring(b.productLinkPath.length - 5, b.productLinkPath.length))) {
      if (Number(a.productLinkPath.substring(a.productLinkPath.length - addNum, a.productLinkPath.length)) > Number(b.productLinkPath.substring(b.productLinkPath.length - addNum, b.productLinkPath.length))) {
        return 1;
      }
      // a must be equal to b  
@@ -852,6 +857,7 @@
    let query = {
      path: '*',
      queryType: '*',
      storeInfo: this.data.options.storeInfo,
      productId: this.data.bookDetail.id,
      cmsPath: type.productLinkPath,
      cmsType: '*',
@@ -908,7 +914,7 @@
          })
          const dataList = res.datas.cmsDatas[0].datas
          if (dataList.length) {
            const tag = dataList.findIndex(item => this.isShowNeedBuy(item))
            const tag = dataList.findIndex(item => item.saleMethod.length && item.saleMethod[0].Price > 0)
            this.setData({
              isGoBuyResource: tag > -1 ? true : false
            })
@@ -918,8 +924,9 @@
            })
          }
        }
        const num = query.cmsPath.length + 6
        this.getTreeList(res.datas.cmsDatas[0].datas, num, list, '\\')
        const addNum = query.cmsPath.length > 12 ? 7 : query.cmsPath.length > 14 ? 8 : 6
        const num = query.cmsPath.length + addNum
        this.getTreeList(res.datas.cmsDatas[0].datas, num, list, '\\', addNum)
        list = this.ensureTreeConsistency(list)
        list = this.changeResourceChildren(list)
        console.log('修改后云', list);
@@ -961,8 +968,10 @@
    let query = {
      path: "*",
      queryType: "*",
      storeInfo: this.data.options.storeInfo,
      productId: this.data.bookDetail.id,
      cmsPath: type.productLinkPath,
      cmsType: '*',
      itemFields: {
        SysType: "CmsFolder",
        // 资源类型,试读文件,是否允许下载等参数
@@ -991,59 +1000,24 @@
        }
        // 云测试,递归请求里层数据
        if (type.refCode == "questionBank") {
          const data = res.datas.cmsDatas[0].datas.filter(
            (item) => item.refCode == "jsek_questionBank"
          );
          if (data.length) return this.getResourceData(data[0]);
        }
        //教学资源 云学习
        if (
          type.refCode == "jsek_teachingResources" ||
          type.refCode == "jsek_cloudLearning"
        ) {
          if (res.datas.cmsDatas[0].datas.length > 0) {
            res.datas.cmsDatas[0].datas.forEach((item) => {
              item.checked = false;
            });
            const list = await this.getAllResource(res.datas.cmsDatas[0].datas);
          const data = res.datas.cmsDatas[0].datas.filter((item) => item.type == 'questionBankFolder' && item.childrenFolderCount > 0);
          if (data.length > 0) {
            let list = []
            console.log(query.cmsPath, query.cmsPath.length)
            // 测试 6位// 正式 5位//  测试调用传20,内部7  正式调用传17 内部传6
            const addNum = query.cmsPath.length > 12 ? 7 : query.cmsPath.length > 14 ? 8 : 6
            const num = query.cmsPath.length + addNum
            this.getTreeList(data, num, list, '\\', addNum)
            list = this.ensureTreeConsistency(list)
            let result = [];
            if (type.refCode == "jsek_teachingResources") {
              this.findChildIds(list, result);
              this.setData({
                teach: list,
                loading: false,
                openTeachids: result,
              });
            } else if (type.refCode == "jsek_cloudLearning") {
              let arr = this.handleTreeData(list).filter(
                (item) => item.saleMethod[0]
              );
              let freeIds = arr.filter((item) => {
                return item.saleMethod[0].Price == 0;
              });
              if (!freeIds.length)
                this.setData({
                  isshowDrawBtn: false,
                });
              this.findChildIds(list, result);
              this.setData({
                learn: list,
                loading: false,
                openLearnids: result,
              });
            }
            console.log(list, '云學習789');
          } else {
            // 无数据
            this.findChildIds(list[0].children, result);
            this.setData({
              test: list[0].children,
              loading: false,
              openTeachids: result,
            });
            console.log(this.data.test, "test")
          }
        } else if (type.refCode == "jsek_questionBank") {
          // const list = await this.getAllResource(res.datas.cmsDatas[0].datas)
          this.setData({
            test: res.datas.cmsDatas[0].datas,
            loading: false,
          });
        } else {
          console.log("其他");
        }
      })
      .catch((e) => {
@@ -1068,6 +1042,7 @@
    let query = {
      path: "*",
      queryType: "*",
      storeInfo: this.data.options.storeInfo,
      productId: this.data.bookDetail.id,
      cmsPath: path,
      itemFields: {
@@ -1232,7 +1207,6 @@
      // 发起订单初始化请求并等待结果
      const res = await app.MG.store.initOrder(query);
      // 获取订单号并赋值给 orderNumber.value
      console.log(res, 'res456');
      bookOrdersId = res.orderNumber;
      // 检查订单号是否存在
      if (bookOrdersId) {
@@ -1580,7 +1554,7 @@
      if (isSHow) {
        return false;
      } else {
        return data.saleMethod[0].price > 0 ? true : false;
        return data.saleMethod[0].Price > 0 ? true : false;
      }
      return !isSHow;
    } else {