| | |
| | | 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' |
| | |
| | | _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 || '', |
| | |
| | | config: _config, |
| | | setting: setting, |
| | | actions: _config.action, |
| | | columns: _config.cols, |
| | | columns: columns, |
| | | search: _config.$searches, |
| | | allSearch |
| | | }) |
| | |
| | | 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 |
| | | }) |
| | | } |
| | | |
| | | /** |
| | |
| | | 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, |
| | |
| | | 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(() => { |
| | |
| | | } 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) |
| | | } |
| | |
| | | data={this.state.data} |
| | | fields={config.columns} |
| | | total={this.state.total} |
| | | parCtrl={config.parCtrl} |
| | | colsCtrls={config.colsCtrls} |
| | | lineMarks={config.lineMarks} |
| | | loading={this.state.loading} |