king
2024-12-05 4a356e81b1a456f0cb16f61f548c46171c26c1b6
src/tabviews/custom/components/table/normal-table/index.jsx
@@ -153,6 +153,10 @@
      _config.colsCtrls = null
    }
    if (setting.$tree && _config.cols[0]) {
      _config.cols[0].$tree = true
    }
    let columns = _config.cols
    if (_config.hasExtend) {
      columns = this.getCols(_config.cols, BData, _config.setting.extendTime)
@@ -610,6 +614,10 @@
        return item
      })
      if (setting.$tree && data.length) {
        data = this.getTree(data)
      }
      let total = result.total || 0
      if (config.setting.custompage && data.length) {
        total = data[data.length - 1].mk_total || 0
@@ -665,6 +673,90 @@
      
      UtilsDM.queryFail(result)
    }
  }
  getTree = (data) => {
    const { setting } = this.state
    let options = []
    let pnodes = []
    let _data = []
    data.forEach(item => {
      let pval = item[setting.parentField] + ''
      let val = item[setting.valueField] + ''
      if (pval === setting.mark) {
        pnodes.push({
          ...item,
          $mk_floor: 1,
          $key: val,
          $pid: ''
        })
      } else if (pval) {
        options.push({
          ...item,
          $mk_floor: 0,
          $key: val,
          $pid: pval
        })
      }
    })
    let get_tree = (parents) => {
      parents.forEach(parent => {
        parent.children = []
        options = options.filter(option => {
          if (option.$pid === parent.$key) {
            option.$mk_floor = parent.$mk_floor + 1
            option.$pkeys = parent.$pkeys ? [...parent.$pkeys, parent.$key] : [parent.$key]
            parent.children.push(option)
            return false
          }
          return true
        })
        if (parent.children.length === 0) {
          parent.children = null
        } else {
          parent.$open = true
          parent.children = get_tree(parent.children)
        }
      })
      return parents
    }
    let tree = get_tree(pnodes)
    let get_data = (parents) => {
      parents.forEach(parent => {
        let children = parent.children
        delete parent.children
        _data.push(parent)
        if (children) {
          get_data(children)
        }
      })
    }
    get_data(tree)
    if (options.length) {
      _data.push(...options)
    }
    _data = _data.map((item, index) => {
      item.key = index
      return item
    })
    return _data
  }
  /**
@@ -825,7 +917,7 @@
  /**
   * @description 表格条件改变时重置数据(分页或排序)
   */
  refreshbytable = (pagination, filters, sorter) => {
  refreshbytable = (pagination, sorter) => {
    if (sorter.order) {
      let _chg = {
        ascend: 'asc',
@@ -837,7 +929,7 @@
    this.setState({
      pageIndex: pagination.current,
      pageSize: pagination.pageSize,
      orderBy: (sorter.field && sorter.order) ? `${sorter.field} ${sorter.order}` : ''
      orderBy: (sorter.field && sorter.order) ? `${sorter.field} ${sorter.order}` : (pagination.fixed ? this.state.orderBy : '')
    }, () => {
      this.loadData()
    })