闫增涛
2024-09-11 51ad1f2614bc1f976aad98254649bb3c207332ee
packageBookService/pages/bookServices/detail/index.js
@@ -169,6 +169,37 @@
      description: '',
      agree: false
    },
    resourceVisible: false,
    resourceValue: [],
    fileTypeList: [{
        label: '音频',
        value: '音频'
      },
      {
        label: '视频',
        value: '视频'
      },
      {
        label: '图片',
        value: '图片'
      },
      {
        label: 'PDF',
        value: 'PDF'
      },
      {
        label: '资源包',
        value: '资源包'
      },
      {
        label: '文档',
        value: '文档'
      },
      {
        label: '其他',
        value: '其他'
      }
    ],
    fileList: [],
    isShowUp: true,
    protocolShow: false,
@@ -842,10 +873,9 @@
  },
  // 扁平化数据转换tree
  getTreeList(rootList, pathLength, newArr, path) {
  getTreeList(rootList, newArr, path) {
    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)) {
      if (path == item.productLinkPath.replace('\\' + item.id, '')) {
        if (item.sysType == 'CmsItem') {
          if (item.selectType == 'webpage') {
            item.disabled = true
@@ -866,11 +896,9 @@
      }
    }
    //给数组里面再添加一个children的空数组
    // let addnum1 = pathLength - path.length == 6 ? 6 : 7
    for (const i of newArr) {
      i.children = []
      let addnum1 = i.productLinkPath.length - path.length == 6 ? 6 : 7
      this.getTreeList(rootList, pathLength + addnum1, i.children, i.productLinkPath)
      this.getTreeList(rootList, i.children, i.productLinkPath)
      if (i.children.length == 0) {
        delete i.children
      }
@@ -897,26 +925,19 @@
  // 排序数组 按照productLinkPath
  insertAndSortObjectsByProductLinkPath(array, newObj) {
    // 查找新对象应该插入的位置  
    let insertIndex = array.findIndex(obj => Number(newObj.productLinkPath.substring(newObj.productLinkPath.lastIndexOf('\\') + 1, newObj.productLinkPath.length)) < Number(obj.productLinkPath.substring(obj.productLinkPath.lastIndexOf('\\') + 1, obj.productLinkPath.length)));
    let insertIndex = array.findIndex(obj => newObj.id < obj.id);
    // 如果没有找到合适的位置,则放在数组末尾  
    if (insertIndex === -1) {
      insertIndex = array.length;
    }
    // 插入新对象到数组  
    array.splice(insertIndex, 0, newObj);
    // 测试6 正式5
    // 对数组进行排序  
    array.sort((a, b) => {
      if (Number(a.productLinkPath.substring(a.productLinkPath.lastIndexOf('\\') + 1, a.productLinkPath.length)) < Number(b.productLinkPath.substring(b.productLinkPath.lastIndexOf('\\') + 1, b.productLinkPath.length))) {
        return -1;
      }
      if (Number(a.productLinkPath.substring(a.productLinkPath.lastIndexOf('\\') + 1, a.productLinkPath.length)) > Number(b.productLinkPath.substring(b.productLinkPath.lastIndexOf('\\') + 1, b.productLinkPath.length))) {
        return 1;
      }
      // a must be equal to b
      if (a.id < b.id) return -1;
      if (a.id > b.id) return 1;
      return 0;
    });
    // 返回更新后的数组  
    return array;
  },
@@ -1008,9 +1029,7 @@
            })
          }
        }
        const addNum = query.cmsPath.length > 10 ? 7 : query.cmsPath.length > 13 ? 8 : 6
        const num = query.cmsPath.length + addNum
        this.getTreeList(res.datas.cmsDatas[0].datas, num, list, '\\')
        this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath)
        list = this.ensureTreeConsistency(list)
        list = this.changeResourceChildren(list)
        let result = [];
@@ -1120,11 +1139,7 @@
            }
            if (data.length > 0) {
              let list = []
              // 测试 6位// 正式 5位//  测试调用传20,内部7  正式调用传17 内部传6
              const addNum = query.cmsPath.length > 10 ? 7 : query.cmsPath.length > 13 ? 8 : 6
              const num = query.cmsPath.length + addNum
              that.getTreeList(data, num, list, '\\')
              that.getTreeList(data, list, query.cmsPath)
              list = that.ensureTreeConsistency(list)
              that.findChildIds(list[0].children, result);
              that.setData({
@@ -2590,7 +2605,6 @@
    return childrenList
  },
  uploadFile(e) {
    console.log(123)
    this.setData({
      dialogBox: true,
      isShowUp: true
@@ -2599,6 +2613,12 @@
  closeDialog() {
    this.setData({
      dialogBox: false,
      resourceInfo: {
        resourceName: '',
        fileType: '',
        description: '',
        agree: false
      },
    });
  },
  onCloseProtocol() {
@@ -2642,9 +2662,24 @@
      'resourceInfo.resourceName': e.detail.value,
    });
  },
  onFileTypeInput(e) {
  onResourcePicker(e) {
    this.setData({
      'resourceInfo.fileType': e.detail.value,
      resourceVisible: true,
    });
  },
  onPickerChange(e) {
    const {
      value
    } = e.detail;
    this.setData({
      resourceVisible: false,
      resourceValue: value,
      'resourceInfo.fileType': value.join(' '),
    });
  },
  onPickerCancel(e) {
    this.setData({
      resourceVisible: false,
    });
  },
  textareaChange(e) {
@@ -2685,6 +2720,7 @@
        const pdfData = ['pdf']
        const Compression = ['rar', 'zip']
        const pictureData = ['jpg', 'png']
        const documentData = ['doc', 'docx', 'xls', 'xlsx', "ppt", "pptx"]
        if (audioData.indexOf(Extension) > -1) {
          medioType = '音频'
        } else if (videoData.indexOf(Extension) > -1) {
@@ -2695,6 +2731,8 @@
          medioType = '资源包'
        } else if (pictureData.indexOf(Extension) > -1) {
          medioType = '图片'
        } else if (documentData.indexOf(Extension) > -1) {
          medioType = '文档'
        } else {
          medioType = '其他'
        }
@@ -2738,6 +2776,7 @@
                    that.setData({
                      "resourceInfo.resourceName": FileName,
                      "resourceInfo.fileType": medioType,
                      fileList: file,
                      isShowUp: false
                    })
@@ -2752,15 +2791,9 @@
  },
  handleRemove(e) {
    console.log(e)
    let md5 = e.currentTarget.dataset.md5
    for (let i = 0; i < this.data.fileList.length; i++) {
      if (this.data.fileList.md5 == md5) {
        this.data.fileList.splice(i, 1)
      }
    }
    this.setData({
      isShowUp: true,
      fileList: []
    });
  },
  confirmM() {
@@ -2773,7 +2806,7 @@
    if (this.data.resourceInfo.fileType == '') {
      return wx.showToast({
        icon: "error",
        title: "请填写资源类型",
        title: "请选择资源类型",
      });
    }
@@ -2803,9 +2836,7 @@
        icon: "success",
        title: "请上传资源文件",
      });
      this.setData({
        dialogBox: false,
      });
      this.closeDialog()
    })
  }
})