From 1da6506bf58270bacc2a4345002c6b082835580e Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 21 十月 2021 23:17:08 +0800 Subject: [PATCH] 2021-10-21 --- src/menu/components/table/normal-table/columns/index.jsx | 56 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 41 insertions(+), 15 deletions(-) diff --git a/src/menu/components/table/normal-table/columns/index.jsx b/src/menu/components/table/normal-table/columns/index.jsx index ee4f5ed..9c87844 100644 --- a/src/menu/components/table/normal-table/columns/index.jsx +++ b/src/menu/components/table/normal-table/columns/index.jsx @@ -53,16 +53,16 @@ if (index !== undefined) { return connectDragSource( - connectDropTarget(<th {...restProps} index={index} style={{ cursor: 'move', textAlign: align }}> + connectDropTarget(<th {...restProps} index={index} style={{ cursor: 'move', textAlign: align }} onDoubleClick={() => column && this.props.editColumn(column)}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ - <div className="mk-popover-control"> + <div className="mk-popover-control" onDoubleClick={(e) => e.stopPropagation()}> {column && ['custom', 'colspan', 'action'].includes(column.type) ? <Icon className="plus" title="娣诲姞" type="plus" onClick={() => this.props.addElement(column)} /> : null } <Icon className="edit" title="缂栬緫" type="edit" onClick={() => this.props.editColumn(column)} /> {column && column.type === 'custom' ? <Icon className="style" title="璋冩暣鏍峰紡" onClick={() => this.props.changeStyle(column)} type="font-colors" /> : null} <Icon className="close" title="鍒犻櫎" type="delete" onClick={this.deleteCol} /> - {column && ['text', 'number'].includes(column.type) ? <MarkColumn columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null } + {column && ['text', 'number', 'formula'].includes(column.type) ? <MarkColumn columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null } </div> } trigger="hover"> {children} @@ -71,15 +71,15 @@ ) } else if (column) { return ( - <th {...restProps} key={column.uuid}> + <th {...restProps} key={column.uuid} onDoubleClick={() => this.props.editColumn(column)}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ - <div className="mk-popover-control"> + <div className="mk-popover-control" onDoubleClick={(e) => e.stopPropagation()}> {column && ['custom', 'colspan'].includes(column.type) ? <Icon className="plus" title="娣诲姞" type="plus" onClick={() => this.props.addElement(column)} /> : null } <Icon className="edit" title="缂栬緫" type="edit" onClick={() => this.props.editColumn(column)} /> <Icon className="close" title="鍒犻櫎" type="delete" onClick={this.deleteCol} /> - {column && ['text', 'number'].includes(column.type) ? <MarkColumn columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null } + {column && ['text', 'number', 'formula'].includes(column.type) ? <MarkColumn columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null } </div> } trigger="hover"> {children} @@ -123,9 +123,9 @@ ) class EditableColumnCell extends Component { - updateCard = (vals, action) => { + updateCard = (vals, btn) => { const { column } = this.props - this.props.upComponent({...column, elements: vals}, action) + this.props.upComponent({...column, elements: vals}, btn) } shouldComponentUpdate (nextProps, nextState) { @@ -155,9 +155,19 @@ </td> ) } else if (column) { + let val = column.field || '' + if (column.type === 'index') { + val = '$Index' + } else if (column.type === 'formula') { + val = column.formula + if (column.eval === 'false') { + val = val.replace(/\n/ig, '<br/>').replace(/\s/ig, ' ') + val = <span dangerouslySetInnerHTML={{__html: val}}></span> + } + } return ( <td style={{...style, minWidth: column.Width || 100}} className={className}> - {column.field || (column.type === 'index' ? '$Index' : '')} + {val} {column.Hide === 'true' ? <Icon style={{marginLeft: '5px', color: 'orange', fontSize: '12px'}} type="close-circle" /> : null} {column.marks && column.marks.length ? <Icon className="profile" type="ant-design"/> : null} </td> @@ -269,18 +279,19 @@ }) } - updateCol = (col, action) => { + updateCol = (col, btn) => { let _columns = fromJS(this.state.columns).toJS() _columns = this.loopCol(_columns, col) this.setState({ columns: _columns, }, () => { - if (action) { - this.props.updatecolumn({...this.props.config, cols: _columns, action}) - } else { - this.props.updatecolumn({...this.props.config, cols: _columns}) + let config = {...this.props.config, cols: _columns} + if (btn) { + config.action = config.action.filter(item => item.uuid !== btn.uuid) } + + this.props.updatecolumn(config) }) } @@ -304,7 +315,7 @@ }) this.updateCol(column) } else if (column.type === 'custom') { - let newcard = {uuid: Utils.getuuid(), focus: true, eleType: 'text', datatype: 'dynamic'} + let newcard = {uuid: Utils.getuuid(), focus: true, eleType: 'text', datatype: 'dynamic', style: {paddingLeft: '4px'}} // 娉ㄥ唽浜嬩欢-娣诲姞鍏冪礌 MKEmitter.emit('cardAddElement', [config.uuid, column.uuid], newcard) @@ -512,6 +523,20 @@ }) } + clear = () => { + const _this = this + + confirm({ + content: '纭畾娓呯┖鏄剧ず鍒楀悧锛�', + onOk() { + _this.setState({columns: []}, () => { + _this.props.updatecolumn({..._this.props.config, cols: []}) + }) + }, + onCancel() {} + }) + } + componentDidMount () { MKEmitter.addListener('submitStyle', this.getStyle) } @@ -554,6 +579,7 @@ <Icon title="澶嶅埗鏄剧ず鍒�" type="copy" onClick={this.copycolumn} /> <MarkColumn columns={fields} type="line" marks={lineMarks} onSubmit={this.updateLineMarks} /> <Icon title="鍚屾瀛楁闆�" type="file-sync" onClick={this.syncfield} /> + <Icon title="娓呯┖鏄剧ず鍒�" type="delete" onClick={this.clear}/> </div> <DndProvider> <Table -- Gitblit v1.8.0