From f0bf8c399c354c22227f8f1a76ed806098db59c0 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 21 五月 2024 16:51:02 +0800 Subject: [PATCH] 2024-05-21 --- src/tabviews/custom/components/table/edit-table/normalTable/index.jsx | 113 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 65 insertions(+), 48 deletions(-) diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx index 4bcdb13..762b303 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx @@ -562,6 +562,10 @@ if (config.noValue === 'hide' && !value) { value = 0 + } + + if (config.required === 'true' && !value) { + err = `${config.label}涓嶅彲涓�${config.noValue === 'hide' ? '绌�' : '0'}` } else { if (typeof(config.max) === 'number' && value > config.max) { err = config.label + '鏈�澶т负' + config.max @@ -727,7 +731,7 @@ } render() { - let { col, config, record, style, className, ...resProps } = this.props + let { col, record, style, className, ...resProps } = this.props const { editing } = this.state if (!col) return (<td {...resProps} className={className} style={style}/>) @@ -747,10 +751,10 @@ if (col.editType === 'select' && col.options.length > 0) { content = col.map.get(content) || content } else if (col.editType === 'switch') { - if (content === config.openVal) { - content = config.openText - } else if (content === config.closeVal) { - content = config.closeText + if (content === col.openVal) { + content = col.openText + } else if (content === col.closeVal) { + content = col.closeText } } else if (col.editType === 'popSelect') { if (col.showField) { @@ -866,6 +870,7 @@ } if (col.format === 'thdSeparator') { + content = content + '' content = content.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') } @@ -1009,7 +1014,7 @@ } children = ( - <CardCellComponent data={record} cards={config} elements={col.elements}/> + <CardCellComponent data={record} cards={col.config} elements={col.elements}/> ) } @@ -1040,7 +1045,7 @@ } render() { - let { col, config, record, style, className, ...resProps } = this.props + let { col, record, style, className, ...resProps } = this.props if (!col) return (<td {...resProps} className={className} style={style}/>) @@ -1091,10 +1096,10 @@ if (col.editType === 'select' && col.options.length > 0) { content = col.map.get(content) || content } else if (col.editType === 'switch') { - if (content === config.openVal) { - content = config.openText - } else if (content === config.closeVal) { - content = config.closeText + if (content === col.openVal) { + content = col.openText + } else if (content === col.closeVal) { + content = col.closeText } } else if (col.editType === 'popSelect') { if (col.showField) { @@ -1190,6 +1195,7 @@ } if (col.format === 'thdSeparator') { + content = content + '' content = content.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') } @@ -1322,7 +1328,7 @@ } children = ( - <CardCellComponent data={record} cards={config} elements={col.elements}/> + <CardCellComponent data={record} cards={col.config} elements={col.elements}/> ) } @@ -1383,7 +1389,6 @@ let deForms = [] let _forms = {} let hasBid = false - let index = 0 let checkForms = [] let allForms = [] @@ -1396,25 +1401,12 @@ cell.children = getColumns(item.subcols, sk || item.uuid) } else { if (item.editable === 'true') { - item.$sort = index - index++ _forms[item.field] = item allForms.push({uuid: sk || item.uuid, field: item.field}) checkForms.push(item.field) - if (item.ctrlField) { - item.ctrlValue = item.ctrlValue.split(',') - } - - if (item.type === 'number' && item.clearField) { - fields.forEach(cell => { - if (cell.field === item.clearField) { - item.clearName = cell.label - } - }) - } else if (item.type === 'text' && item.editType === 'select') { - item.map = new Map() + if (item.type === 'text' && item.editType === 'select') { if (item.resourceType === '1') { let _option = Utils.getSelectQueryOptions(item) @@ -1426,20 +1418,6 @@ item.arr_field = _option.field deForms.push(item) - } else { - item.options.forEach(cell => { - item.map.set(cell.value, cell.label) - }) - } - } else if (item.type === 'text' && item.editType === 'date') { - item.format = 'YYYY-MM-DD' - - if (item.precision === 'hour') { - item.format = 'YYYY-MM-DD HH' - } else if (item.precision === 'minute') { - item.format = 'YYYY-MM-DD HH:mm' - } else if (item.precision === 'second') { - item.format = 'YYYY-MM-DD HH:mm:ss' } } } @@ -1459,8 +1437,7 @@ $key: item.uuid, onCell: record => ({ record, - col: item, - config: item.type === 'custom' ? {setting, columns: fields} : null, + col: item }) } } @@ -1537,11 +1514,44 @@ } UNSAFE_componentWillReceiveProps(nextProps) { - const { BID } = this.props + const { BID, parCtrl } = this.props const { deForms } = this.state if (deForms && nextProps.BID !== BID) { this.improveActionForm(deForms, nextProps.BID) + } + if (parCtrl && !is(fromJS(this.props.columns), fromJS(nextProps.columns))) { + let getColumns = (cols, sk) => { + return cols.map(item => { + let cell = null + + if (item.type === 'colspan') { + cell = { title: item.label, align: item.Align, $key: item.uuid } + cell.children = getColumns(item.subcols, sk || item.uuid) + } else { + cell = { + align: item.Align, + dataIndex: item.uuid, + title: item.editable === 'true' ? <span>{item.label}<EditOutlined className="system-color mk-edit-sign"/></span> : item.label, + sorter: (item.field || item.sortField) && item.IsSort === 'true', + width: item.Width || 120, + $key: item.uuid, + onCell: record => ({ + record, + col: item + }) + } + } + + return cell + }) + } + + let _columns = getColumns(nextProps.columns) + + this.setState({ + columns: _columns + }) } } @@ -1656,7 +1666,9 @@ } else if (col.type === 'number') { let val = record[col.field] - if (col.noValue === 'hide' && !val) { + if (col.required === 'true' && !val) { + err = `${col.label}涓嶅彲涓�${col.noValue === 'hide' ? '绌�' : '0'}` + } else if (col.noValue === 'hide' && !val) { if (col.clearField && checkForms.includes(col.clearField) && !record[col.clearField]) { err = `璇峰~鍐� ${col.label} 鎴� ${col.clearName}` } @@ -1748,7 +1760,10 @@ transferData = (data, type) => { const { edData, tableId } = this.state - if (type === 'delete') { + if (type === 'clear') { + this.setState({edData: [], midData: []}) + return + } else if (type === 'delete') { } else if (type === 'line') { let value = '' @@ -2270,7 +2285,9 @@ item[col.field] = val } else if (col.type === 'number') { let val = item[col.field] - if (col.noValue === 'hide' && !val) { + if (col.required === 'true' && !val) { + err = `${col.label}涓嶅彲涓�${col.noValue === 'hide' ? '绌�' : '0'}` + } else if (col.noValue === 'hide' && !val) { if (col.clearField && checkForms.includes(col.clearField) && !item[col.clearField]) { let msg = `璇峰~鍐� ${col.label} 鎴� ${col.clearName}` if (!line.includes(msg)) { @@ -2652,7 +2669,7 @@ {setting.hasSubmit && edData.length > 0 ? <div className="edit-custom-table-btn-wrap" style={submit.wrapStyle}> <Button style={submit.style} onClick={() => setTimeout(() => {this.submit()}, 10)} loading={loading} className="submit-table" type="link">鎻愪氦</Button> </div> : null} - <div className={`edit-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} style={style}> + <div className={`edit-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} style={style}> <Table rowKey="$$uuid" components={components} -- Gitblit v1.8.0