QYF-GitLab1
4 天以前 f2036f82c20767036fe8c4d627e5694e28e6ab73
packageBookService/pages/bookServices/detail/index.js
@@ -216,7 +216,8 @@
    scrollTop: 0, // 扫码进资源滚动
    source: '',
    activeId: '',
    qrTabValue: ''
    qrTabValue: '',
    cacheData: [], // 云学习初始数据
  },
  // 扫码到资源列表,滚动到该资源位置
  handleScrollTop(e) {
@@ -459,9 +460,11 @@
        freeEpubPage: [], //epub试读百分比
        bookEditor: [], //图书编辑
        contactInformation: [], //联系方式
        IsTextbook: [] // 是否为教材 如果是教材禁止显示所有购买按钮
      },
    };
    app.MG.store.getProductDetail(query).then(async (res) => {
      res.datas.IsTextbook = res.datas.IsTextbook == '1' ? true : false
      this.getResourceCode(id, res.datas.rootCmsItemId)
      res.datas.bookEditor = res.datas.bookEditor ? res.datas.bookEditor : '-'
      res.datas.contactInformation = res.datas.contactInformation ? res.datas.contactInformation : '-'
@@ -990,23 +993,27 @@
    // 返回更新后的数组  
    return array;
  },
  // 递归树结构,如果父级有销售方式(有效期),去掉所有子集的销售方式
  clearTreeSealmethod(clearSaleMethod, tree) {
  // 递归树结构
  handleSalmethodBtn(tree, data, parent) {
    for (let item of tree) {
      const saleData = item.saleMethod &&
        item.saleMethod.length ?
        item.saleMethod.find((citem) => citem.SaleType == 'Normal') : null
      if (
        ((saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) ||
          clearSaleMethod) && item.children && item.children.length
      ) {
        item.children.forEach((ditem) => (ditem.saleMethod = []))
      // 是否显示按钮
      item.isShowIcon = false;
      if (item.sysType == 'CmsItem') {
        // 查找目录下资源销售方式,目录下资源没有销售方式
        if (item.saleMethod?.length == 0) {
          // 查看其父级是否有销售方式
          if (parent.saleMethod?.length > 0) {
            // 父级是有销售方式直接显示按钮
            parent.isShowIcon = true
          }
        } else {
          item.isShowIcon = true
        }
      } else {
        if (item.children?.length > 0) {
          this.handleSalmethodBtn(item.children, data, item)
        }
      }
      if (item.children && item.children.length)
        this.clearTreeSealmethod(
          saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime(),
          item.children
        )
    }
    return tree
  },
@@ -1047,6 +1054,9 @@
          loading: false,
        });
      }
      this.setData({
        cacheData: res.datas.cmsDatas[0].datas
      })
      let list = []
      // 判断云学习有无销售方式和有效期
      const cloundSaleMethod =
@@ -1111,8 +1121,8 @@
          teach: list,
        });
      } else if (type.refCode == "jsek_cloudLearning") {
        // 云学习上无销售方式,走目录 资源 销售方式去除方法
        if (!flags) list = this.clearTreeSealmethod(false, list)
        // 控制按钮显示
        list = this.handleSalmethodBtn(list, list, null)
        // 判断领取查看是否显示(云学习,或资源目录,有售价为0)
        let isshowDrawBtn = res.datas.cmsDatas[0].datas.some(
          (item) =>
@@ -1122,12 +1132,12 @@
          new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime()
        ) || (flags && cloundSaleMethod.Price == 0)
        // 判断云学习全部购买按钮是否显示
        let isShowBuyCloundMenu = flags && cloundSaleMethod.Price > 0 && !this.data.buyIdList.includes(cloundSaleMethod.Id)
        let isShowBuyCloundMenu = flags && cloundSaleMethod.Price > 0 && !this.data.buyIdList.includes(cloundSaleMethod.Id) && !this.data.bookDetail.IsTextbook
        // 判断资源购买按钮是否显示 (云学习无销售方式,资源和目录中有销售方式,且售价大于0)
        let isShowBuyCloundBtn = !flags && res.datas.cmsDatas[0].datas.some(item => item.saleMethod.length &&
          item.saleMethod.find((citem) => citem.SaleType == 'Normal').Price > 0 &&
          new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').EndDate).getTime() >= new Date().getTime() &&
          new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime())
          new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime()) && !this.data.bookDetail.IsTextbook
        // 判断购物车按钮和锁按钮是否显示
        this.handleTreeData(list).forEach(item => {
          item.isbuy = this.resourceIsBuy(item);
@@ -1149,7 +1159,6 @@
          learnPath: type.productLinkPath
        });
      }
      console.log('1', result);
    })
  },
  //  获取 云测试
@@ -1715,28 +1724,55 @@
  },
  // 判断资源是否购买
  resourceIsBuy(data) {
    if (data.saleMethod && data.saleMethod.length) {
      const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
      if (saleData.State == 'Disable') return false
      const isShow = this.data.buyIdList.some(
        (item) => item == saleData.Id
      );
      // 已经购买
      if (isShow || saleData.Price == 0) return false
      // 未购买,查看销售方式是否过期
      if (!isShow) {
        const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
          new Date(saleData.BeginDate).getTime() <= new Date().getTime()
        if (flag) {
          // 为过期 ,需要购买
          return true
        } else {
          // 已过期 无需购买
          return false
    // if (data.saleMethod && data.saleMethod.length) {
    //   const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
    //   if (saleData.State == 'Disable') return false
    //   const isShow = this.data.buyIdList.some(
    //     (item) => item == saleData.Id
    //   );
    //   // 已经购买
    //   if (isShow || saleData.Price == 0) return false
    //   // 未购买,查看销售方式是否过期
    //   if (!isShow) {
    //     const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
    //       new Date(saleData.BeginDate).getTime() <= new Date().getTime()
    //     if (flag) {
    //       // 为过期 ,需要购买
    //       return true
    //     } else {
    //       // 已过期 无需购买
    //       return false
    //     }
    //   }
    // } else {
    //   return false;
    // }
    let linkData = data.productLinkPath.split("\\");
    linkData.reverse()
    let dataList = linkData.map(item => {
      let data = this.data.cacheData.find(citem => citem.id == item);
      if (data) return data;
    })
    let isBuy = 1;
    for (let i = 0; i < dataList.length; i++) {
      const dataItem = dataList[i];
      if (dataItem) {
        if (dataItem.saleMethod.length > 0) {
          isBuy = 2;
          if (this.data.bookDetail.purchasedSaleMethodIdList.indexOf(dataItem.saleMethod[0].Id) > -1 || dataItem.saleMethod[0].Price == 0) {
            isBuy = 3;
            break;
          } else {
            break;
          }
        }
      }
    }
    if (isBuy == 2) {
      // 未购买
      return false
    } else {
      return false;
      return true
    }
  },
  // 云学习资源是否显示锁图标(未购买,且资源售价大于零)
@@ -3070,6 +3106,17 @@
      cloundMenuIsBuy: flag
    })
  },
  // 显示ISBN
  showISBN() {
    wx.showModal({
      title: '',
      content: this.data.bookDetail.isbn,
      showCancel: false,
      confirmText: '关闭',
      success: (res) => {}
    })
  },
  /**
   * 用户点击右上角分享
   */