| | |
| | | _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) |
| | |
| | | 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 |
| | |
| | | |
| | | 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 |
| | | } |
| | | |
| | | /** |
| | |
| | | /** |
| | | * @description 表格条件改变时重置数据(分页或排序) |
| | | */ |
| | | refreshbytable = (pagination, filters, sorter) => { |
| | | refreshbytable = (pagination, sorter) => { |
| | | if (sorter.order) { |
| | | let _chg = { |
| | | ascend: 'asc', |
| | |
| | | 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() |
| | | }) |