yiming
2024-03-20 98c6c98f673e9a715b9d398d098afd96afac6701
packageBookService/pages/bookServices/detail/components/tree/index.js
@@ -3,6 +3,8 @@
const util = require('./components/util') // 引入封装过的加载提示
const app = getApp()
Component({
  // checked: false,
  properties: {
    treeList: {
      type: Array,
@@ -35,7 +37,8 @@
  },
  data: {
    activeValues: [0],
    webpageSrc: ''
    webpageSrc: '',
    cloudShoppingCart: []
  },
  onShow() {
@@ -45,10 +48,11 @@
  methods: {
    // 节点展开
    handleChange(e) {
      // console.log(this.properties.treeList, 'this.properties.treeList');
      this.setData({
        activeValues: e.detail.value,
      });
      console.log('传递', this.properties.buyIds);
      // console.log('传递', this.properties.buyIds);
    },
    handleCheck(data) {
      for (let index = 0; index < data.length; index++) {
@@ -83,7 +87,7 @@
    // 跳转音视频播放器
    goPlayer(e) {
      console.log(e);
      debugger
      // debugger
      const item = e.currentTarget.dataset.item
      const parent = e.currentTarget.dataset.parent
      let url
@@ -168,7 +172,7 @@
          result.push(...item.children);
        }
      }
      console.log(this.properties.treeList);
      console.log(this.properties.treeList, 'this.properties.treeList');
      this.properties.treeList.forEach(item => {
        findChildren(item);
      });
@@ -176,20 +180,30 @@
    },
    // 拿到当前项子项
    flattenTree(tree) {
      let result = [];
      function flatten(node) {
        result.push(node);
        if (node.children && node.children.length > 0) {
          node.children.forEach(child => {
            flatten(child);
          });
        }
      }
      tree.forEach(node => {
        flatten(node);
      });
      // console.log(result, 'result');
      return result
    },
    findAndUpdateItemById(tree, id) {
      function findAndUpdate(node) {
        if (node.id === id) {
@@ -214,9 +228,12 @@
    },
    // 变为true
    findAndUpdateItemsByIds(tree, ids) {
      function findAndUpdate(node) {
        if (ids.includes(node.id)) {
          node.checked = true; // 将目标项的 check 属性设置为 true
          // console.log(node, 'node');
          node.checked = !node.checked  // 将目标项的 check 属性设置为 true
        }
        if (node.children && node.children.length > 0) {
          for (let child of node.children) {
@@ -226,30 +243,87 @@
      }
      for (let node of tree) {
        findAndUpdate(node); // 对每个顶层节点执行查找和更新操作
      }
      // console.log(tree, 'tree345');
      return tree; // 返回修改后的完整数组
    },
    // 章节勾选
    checkResourceTitle(e) {
      // 这个时候checked的值是fals
      const item = e.currentTarget.dataset.item
      console.log(item, 'item');
      let list = this.flattenTree([item])
      let ids = []
      list.forEach(item => {
        ids.push(item.id)
      })
      const tab = this.findAndUpdateItemsByIds([item], ids)
      console.log(ids, tab);
    }
      const updatedTreeList = this.findAndUpdateItemsByIds(this.properties.treeList, ids);
      // console.log(updatedTreeList, 'updatedTreeList');   //这个时候checked的值就变成了true
      this.setData({
        treeList: updatedTreeList  // 更新 treeList 数据
      });
      console.log(list, 'list');
      list.forEach(items => {
        console.log(items.checked, 'itesasd');
        if (!items.checked) {
          this.setData({
            cloudShoppingCart: items
          })
        }
      })
      this.onCloudShoppingCart()
    },
    // 子项勾选
    checkResource(e) {
      const item = e.currentTarget.dataset.item
      // let list = this.flattenTree([item])
      // console.log(list, 'list121');
      // let ids = []
      // list.forEach(items => {
      //   console.log(items.id, 'itemsId');
      //   ids.push(items.id)
      // })
    },
    // 加入购物车
    async onCloudShoppingCart() {
      let requests = []
      const item = this.data.cloudShoppingCart
      console.log(item, 'item');
      item.forEach((items) => {
        if (items.saleMethod.length) {
          requests.push({
            saleMethodId: items.saleMethod[0].Id,
            count: 1
          })
        }
      })
      let query = {
        remarks: '云学习',
        requests
      }
      // 查询订单
      let initOrderRes = await app.MG.store.initOrder(query)
      let parameter = {
        orderNum: initOrderRes.orderNumber
      }
      const confirmOrderRes = await app.MG.store.confirmOrder(parameter)
      // if (confirmOrderRes.orderNumber) {
      //   wx.navigateTo({
      //     url: `/pages/cart/paymentPage/index?orderNumber=${confirmOrderRes.orderNumber}`,
      //   })
      //   requests = []
      // }
    },
  },
  onCloudShoppingCart() {
    console.log(this.properties.treeList);
  },
  oncheckbox() {
    console.log(111);
  },
  logdata(e) {
    console.log(e);
  }
})