From 1a176e4bdba485301385caac1a29102e598d25cc Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 13 五月 2025 11:32:02 +0800 Subject: [PATCH] 2025-05-13 --- src/menu/components/table/edit-table/index.jsx | 100 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 84 insertions(+), 16 deletions(-) diff --git a/src/menu/components/table/edit-table/index.jsx b/src/menu/components/table/edit-table/index.jsx index f211286..4280d24 100644 --- a/src/menu/components/table/edit-table/index.jsx +++ b/src/menu/components/table/edit-table/index.jsx @@ -57,8 +57,8 @@ columns: [], cols: [ { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label1', field: '', Hide: 'false', type: 'text', Width: 120 }, - { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label2', field: '', Hide: 'false', IsSort: 'true', type: 'text', Width: 120 }, - { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label3', field: '', Hide: 'false', IsSort: 'true', type: 'text', Width: 120 }, + { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label2', field: '', Hide: 'false', IsSort: 'false', type: 'text', Width: 120 }, + { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label3', field: '', Hide: 'false', IsSort: 'false', type: 'text', Width: 120 }, ], scripts: [], submit: {intertype: 'system', default: 'true', innerFunc: '', execSuccess: 'grid', execError: 'never', scripts: [], uniques: []}, @@ -67,8 +67,21 @@ this.updateComponent(_card) } else { + let _card = fromJS(card).toJS() + + if (_card.mergeCol) { + let col = _card.cols[_card.mergeCol[0]] + if (col.pops) { + _card.cols.splice(_card.mergeCol[0], 1, ...col.pops) + } + } + + if (_card.wrap.commit === 'simple') { + _card.wrap.commit = 'change' + } + this.setState({ - card: fromJS(card).toJS() + card: _card }) } } @@ -127,19 +140,37 @@ if (card.errors.length === 0) { card.$tables = getTables(card) } + + delete card.$c_ds + delete card.$c_ac + delete card.$c_cl } this.setState({ card: card }) - let _card = card.isNew ? fromJS(card).toJS() : card + let _card = card if (_card.isNew) { + _card = fromJS(card).toJS() _card.cols = _card.cols.filter(a => !a.origin) delete _card.isNew + delete _card.mergeCol + } else if (_card.mergeCol) { + _card = fromJS(card).toJS() + let col = {..._card.cols[_card.mergeCol[0]]} + col.initval = '' + col.pops = [] + + _card.mergeCol.forEach(index => { + col.pops.push(_card.cols[index]) + }) + + _card.cols = _card.cols.filter((col, index) => !_card.mergeCol.includes(index)) + _card.cols.splice(_card.mergeCol[0], 0, col) } - + this.props.updateConfig(_card) } @@ -187,7 +218,13 @@ addSearch = () => { const { card } = this.state - MKEmitter.emit('plusSearch', card.uuid, {uuid: Utils.getuuid(), focus: true, label: 'label', type: 'text', match: '='}, 'simple') + let ratio = 6 + + if (card.search.length) { + ratio = card.search[card.search.length - 1].ratio + } + + MKEmitter.emit('plusSearch', card.uuid, {uuid: Utils.getuuid(), focus: true, label: 'label', type: 'text', match: '=', ratio}, 'simple') } addButton = () => { @@ -259,6 +296,10 @@ res.borderRadius = card.wrap.borderRadius || 0 res.resetContrl = card.wrap.resetContrl || 'init' + if (res.commit === 'check' && !res.tableType) { + res.tableType = 'radio' + } + let _card = {...card, wrap: res} if (res.tableType) { @@ -270,19 +311,46 @@ updatecolumn = (config) => { config.absFields = [] - config.cols.forEach(col => { + config.mergeCol = false + config.hasExtend = false + config.parCtrl = false + + let mapCol = (cols) => { + cols.forEach(col => { + if (col.type === 'number') { + if (col.format === 'abs') { + config.absFields.push(col.field) + } + } else if (col.type === 'extend') { + config.hasExtend = true + if (col.supField) { + config.parCtrl = true + } + } else if (col.type === 'colspan' && col.subcols) { + mapCol(col.subcols) + } + }) + } + + config.cols.forEach((col, index) => { + delete col.pops + if (col.type === 'number') { if (col.format === 'abs') { config.absFields.push(col.field) } + } else if (col.type === 'extend') { + config.hasExtend = true + if (col.supField) { + config.parCtrl = true + } } else if (col.type === 'colspan' && col.subcols) { - col.subcols.forEach(scol => { - if (scol.type === 'number') { - if (scol.format === 'abs') { - config.absFields.push(scol.field) - } - } - }) + mapCol(col.subcols) + } else if (col.type === 'text') { + if (col.editable === 'true' && col.editType === 'popSelect' && /^tab:/.test(col.initval)) { + config.mergeCol = config.mergeCol || [] + config.mergeCol.push(index) + } } }) @@ -327,7 +395,7 @@ <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <CopyComponent type="editable" card={card}/> - <PasteComponent config={card} options={['action', 'search', 'form', 'cols']} updateConfig={this.updateComponent} /> + <PasteComponent config={card} options={['action', 'search', 'form', 'editcols']} updateConfig={this.updateComponent} /> <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/> <DeleteOutlined className="close" title="鍒犻櫎缁勪欢" onClick={() => this.props.deletecomponent(card.uuid)} /> <SettingComponent config={card} updateConfig={this.updateComponent} /> @@ -337,7 +405,7 @@ </Popover> <SearchComponent config={card} updatesearch={this.updateComponent}/> <ActionComponent config={card} setSubConfig={this.setSubConfig} updateaction={this.updateComponent}/> - <ColumnComponent config={card} updatecolumn={this.updatecolumn}/> + <ColumnComponent config={card} updatecolumn={this.updatecolumn} addColumns={this.addColumns}/> <div className="component-name"> <div className="center"> <div className="title" onDoubleClick={() => { -- Gitblit v1.8.0