递归代码留存

2023-05-23  本文已影响0人  sunxiaochuan

    /**
     * 子组件 复杂表头 回调
     */
    complexHeaderApply(complexHeaderData) {
      // 先判断列数是否符合规定,递归获取末级数据的总长度
      const result = []
      const deepLength = (arr) => {
        arr.forEach((element) => {
          const { child } = element
          if (child instanceof Array && child.length) {
            deepLength(child)
          } else {
            result.push(element)
          }
          // 新增 2020.10.20:唯一值供 complex-header-table-column,为了修复组件无法全量更新的 bug
          element.id = Math.random() * 100
        })
      }

      complexHeaderData.forEach((e) => {
        const { child } = e
        if (child instanceof Array && child.length) {
          deepLength(child)
        } else {
          result.push(e)
        }
        // 新增 2020.10.20:唯一值供 complex-header-table-column,为了修复组件无法全量更新的 bug
        e.id = Math.random() * 100
      })
      // 赋值
      this.tableHead = cloneDeep(complexHeaderData)
    }
上一篇 下一篇

猜你喜欢

热点阅读