From 66bdbc1df92e8ec4a5108a4e0323e25a7b9ff8f8 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 21 五月 2024 16:37:16 +0800 Subject: [PATCH] Merge branch 'develop' --- src/tabviews/custom/components/table/normal-table/index.jsx | 142 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 138 insertions(+), 4 deletions(-) diff --git a/src/tabviews/custom/components/table/normal-table/index.jsx b/src/tabviews/custom/components/table/normal-table/index.jsx index c2ba689..fd31261 100644 --- a/src/tabviews/custom/components/table/normal-table/index.jsx +++ b/src/tabviews/custom/components/table/normal-table/index.jsx @@ -2,6 +2,7 @@ import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' import { Collapse } from 'antd' +import moment from 'moment' import Api from '@/api' import UtilsDM from '@/utils/utils-datamanage.js' @@ -152,6 +153,11 @@ _config.colsCtrls = null } + let columns = _config.cols + if (_config.hasExtend) { + columns = this.getCols(_config.cols, BData, _config.setting.extendTime) + } + this.setState({ pageSize: setting.pageSize || 10, BID: BID || '', @@ -161,7 +167,7 @@ config: _config, setting: setting, actions: _config.action, - columns: _config.cols, + columns: columns, search: _config.$searches, allSearch }) @@ -377,6 +383,130 @@ window.GLOB.SyncData.delete(config.dataName) MKEmitter.removeListener('transferSyncData', this.transferSyncData) + } + + getCols = (cols, BData, time) => { + let _cols = [] + let weeks = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�'] + + let excols = (col) => { + let _s = [] + let _marks = col.marks || [] + let names = [] + let fields = [] + + for (let i = 0; i < col.quota; i++) { + fields.push(col.field + (i === 0 ? '' : i)) + + if (col.colUnit === 'day') { + let hasweek = col.dayFormat.indexOf('week') > -1 + let format = col.dayFormat.replace(/\sweek/, '') + let day = moment().add(col.shift + i, 'days').format(format) + + if (hasweek) { + let _w = moment().add(col.shift + i, 'days').weekday() + day = day + ' ' + weeks[_w] + } + + names.push(day) + } else { + let format = col.hourFormat + if (format === 'H point') { + format = 'H鐐�' + } + + let hour = moment(time).add(col.shift + i, 'hours').format(format) + + if (format === 'h:00') { + if (hour === '12:00') { + hour = hour + ' pm' + } else if (hour === moment(time).add(col.shift + i, 'hours').format('H:00')) { + hour = hour + ' am' + } else { + hour = hour + ' pm' + } + } + names.push(hour) + } + } + + if (col.supField) { + names = [] + let val = '' + if (BData) { + let field = col.supField.toLowerCase() + Object.keys(BData).forEach(key => { + if (key.toLowerCase() === field) { + val = BData[key] + '' + } + }) + } + + if (val) { + names = val.split(',') + + if (names.length > fields.length) { + names.length = fields.length + } else if (fields.length > names.length) { + fields.length = names.length + } + } + } + + if (names.length === 0) return _s + + _s = fields.map((f, i) => { + return { + type: 'text', + Align: col.Align, + Width: col.Width, + field: f, + label: names[i], + uuid: col.uuid + i, + marks: _marks.filter(mark => mark.field[0] === f || !fields.includes(mark.field[0])) + } + }) + + return _s + } + + cols.forEach(col => { + if (col.type === 'extend') { + let exs = excols(col) + _cols.push(...exs) + } else if (col.type === 'colspan') { + let subs = [] + col.subcols.forEach(subcol => { + if (subcol.type === 'extend') { + let exs = excols(subcol) + subs.push(...exs) + } else { + subs.push(col) + } + }) + + if (subs.length) { + _cols.push({...col, subcols: subs}) + } + } else { + _cols.push(col) + } + }) + + return _cols + } + + resetCols = (BData) => { + const { config } = this.state + + let columns = this.getCols(config.cols, BData, config.setting.extendTime) + + this.setState({ + columns: columns, + data: [], + selectedData: [], + total: 0 + }) } /** @@ -780,6 +910,9 @@ if (!setting.supModule || setting.supModule !== MenuID) return if (id !== this.state.BID || id !== '') { + if (config.parCtrl) { + this.resetCols(data) + } this.setState({ pageIndex: 1, BID: id, @@ -805,7 +938,7 @@ if (config.uuid !== menuId) return if (config.supNodes) { - if (position === 'mainline' || position === 'popclose') { + if (['mainline', 'maingrid', 'popclose'].includes(position)) { let supNode = this.supModules[this.supModules.length - 1] config.supNodes.forEach((item, i) => { setTimeout(() => { @@ -834,8 +967,8 @@ } else { this.reloadtable(btn, id) } - } else if ((position === 'mainline' || position === 'popclose') && config.setting.supModule && BID) { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� - MKEmitter.emit('reloadData', config.setting.supModule, BID) + } else if (['mainline', 'maingrid', 'popclose'].includes(position) && config.setting.supModule) { + MKEmitter.emit('reloadData', config.setting.supModule, position === 'maingrid' ? '' : BID) } else { this.reloadtable(btn, id) } @@ -904,6 +1037,7 @@ data={this.state.data} fields={config.columns} total={this.state.total} + parCtrl={config.parCtrl} colsCtrls={config.colsCtrls} lineMarks={config.lineMarks} loading={this.state.loading} -- Gitblit v1.8.0