QYF-GitLab1
4 天以前 f2036f82c20767036fe8c4d627e5694e28e6ab73
packageBookService/pages/bookServices/detail/buyResource/index.js
@@ -209,32 +209,52 @@
    return flattenedArray;
  },
  // 递归树结构,如果父级有销售方式(有效期),去掉所有子集的销售方式
  clearTreeSealmethod(clearSaleMethod, tree) {
  clearTreeSealmethod(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) {
            // 父级是有销售方式直接显示按钮
            // const index = data.findIndex(i => i.id == parent.id)
            parent.isShowIcon = true
          }
          //  else {
          //   // 父级没有销售方式,查找该资源父级
          //   const arr = parent.productLinkPath.split('\\')
          //   const linkData = arr[arr.length - 1] // arr[arr.length - 1] 排除自己
          //   linkData.reverse()
          //   const dataList = linkData.map(ritem => {
          //     const parentData = data.find(citem => citem.id == ritem);
          //     if (parentData) return parentData;
          //   })
          //   if (dataList?.length > 0) {
          //     const index = data.findIndex(i => i.id == dataList[0].id)
          //     data[index].isShowIcon = true
          //   }
          // }
        } else {
          item.isShowIcon = true
        }
      } else {
        if (item.children?.length > 0) {
          this.clearTreeSealmethod(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
  },
  // 勾选禁用
  handleTreeCheck(tree) {
    for (const item of tree) {
      const isbuy = this.resourceIsBuy(item)
      const saleData = item.saleMethod &&
        item.saleMethod.length ?
        item.saleMethod.find((citem) => citem.SaleType == 'Normal') : undefined
      if (saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) {
      if (saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime() && !isbuy && item.isShowIcon) {
        item.disabled = false
      } else {
        item.disabled = true
@@ -258,8 +278,7 @@
      itemFields: {
        SysType: 'CmsFolder',
        // 资源类型,试读文件,是否允许下载等参数
        // learnSelectType: [],
        // selectType: [],
        learnSelectType: [],
        // freeFile: [],
        // file: [],
        // protectedFile: [],
@@ -281,6 +300,9 @@
          loading: false,
        });
      }
      this.setData({
        cacheData: res.datas.cmsDatas[0].datas
      })
      let list = []
      res.datas.cmsDatas[0].datas.forEach((item) => {
        item.checked = false;
@@ -293,13 +315,13 @@
      this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath)
      list = this.ensureTreeConsistency(list)
      list = this.changeResourceChildren(list)
      list = this.clearTreeSealmethod(false, list)
      list = this.clearTreeSealmethod(list, list, null)
      list = this.handleTreeCheck(list)
      this.handleTreeData(list).forEach(item => {
        item.isbuy = this.resourceIsBuy(item);
        item.isShopCar = this.isShoppingCart(item);
      })
      console.log('修改后云', list);
      // console.log('修改后云', list);
      let result = [];
      let arr = res.datas.cmsDatas[0].datas.filter(
        (item) => item.saleMethod[0]
@@ -386,28 +408,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) 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) 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
    }
  },
@@ -501,87 +550,30 @@
    // 修改后方法
    const checkData = this.handleTreeData(this.data.learn).filter(item => item.checked == true)
    console.log('选中', checkData);
    // let saleMethodIds = [];
    // let requests = [];
    // let item = [];
    // let selectAllId = [];
    // const child = this.selectComponent("#tree");
    // item = child.data.superiorPurchaseSaleMethodId;
    // const sonItem = child.data.sonPurchaseSaleMethodId;
    // let selectAll = child.data.selectAll;
    // if (selectAll.length) {
    //   selectAll.forEach((item) => {
    //     if (item.saleMethod != 0) {
    //       selectAllId.push(item.saleMethod[0].Id);
    //     }
    //   });
    //   app.MG.store
    //     .initOrder({
    //       requests: selectAllId.map((id) => ({
    //         saleMethodId: id,
    //         count: 1,
    //       })),
    //     })
    //     .then((res) => {
    //       if (res) {
    //         wx.navigateTo({
    //           url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
    //         });
    //         selectAllId = [];
    //         child.setData({
    //           selectAll: [],
    //         });
    //       }
    //     });
    // }
    // if (item) {
    //   // 拿到id
    //   item.forEach((items) => {
    //     if (items.saleMethod != 0) {
    //       saleMethodIds.push(items.saleMethod[0].Id);
    //     }
    //   });
    //   app.MG.store
    //     .initOrder({
    //       requests: saleMethodIds.map((id) => ({
    //         saleMethodId: id,
    //         count: 1,
    //       })),
    //     })
    //     .then((res) => {
    //       if (res) {
    //         wx.navigateTo({
    //           url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
    //         });
    //         child.setData({
    //           superiorPurchaseSaleMethodId: [], // 使用setData方法清空sonPurchaseSaleMethodId数据
    //         });
    //       }
    //     });
    // }
    // if (item.length == 0 && sonItem) {
    //   app.MG.store
    //     .initOrder({
    //       requests: sonItem.map((id) => ({
    //         saleMethodId: id,
    //         count: 1,
    //       })),
    //     })
    //     .then((res) => {
    //       if (res) {
    //         wx.navigateTo({
    //           url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
    //         });
    //         this.setData({
    //           paymentPage: true,
    //         });
    //         child.setData({
    //           sonPurchaseSaleMethodId: [], // 使用setData方法清空sonPurchaseSaleMethodId数据
    //         });
    //       }
    //     });
    // }
    if (!checkData.length) return wx.showToast({
      icon: 'error',
      title: '请勾选资源',
    })
    let saleMethodIds = [];
    checkData.forEach((items) => {
      if (items.saleMethod.length) {
        saleMethodIds.push(items.saleMethod.find(citem => citem.SaleType == 'Normal').Id);
      }
    });
    app.MG.store
      .initOrder({
        requests: saleMethodIds.map((id) => ({
          saleMethodId: id,
          count: 1,
        })),
      })
      .then((res) => {
        if (res) {
          wx.navigateTo({
            url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber,
          });
        }
      });
  },
  // 章节勾选方法
@@ -627,6 +619,8 @@
    const updated = this.findAndUpdateItemsByIds(this.data.learn, ids, state)
    this.setData({
      learn: updated
    }, () => {
      wx.hideLoading()
    })
  },
  // 单个勾选事件
@@ -635,6 +629,8 @@
    const updated = this.checkResoucrceInfo(this.data.learn, id)
    this.setData({
      learn: updated
    }, () => {
      wx.hideLoading()
    })
  },
  upDateShopCar(id, tree) {