From da64ab0923bf8817fc8599a6e37b953ce38f64c8 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 27 八月 2023 18:37:36 +0800 Subject: [PATCH] 2023-08-27 --- src/templates/zshare/modalform/datatable/index.jsx | 74 +++++++++++++++++++++++++------------ 1 files changed, 50 insertions(+), 24 deletions(-) diff --git a/src/templates/zshare/modalform/datatable/index.jsx b/src/templates/zshare/modalform/datatable/index.jsx index ec8b5a1..8f3e62b 100644 --- a/src/templates/zshare/modalform/datatable/index.jsx +++ b/src/templates/zshare/modalform/datatable/index.jsx @@ -6,9 +6,11 @@ import { PlusOutlined, EditOutlined, DeleteOutlined, SwapOutlined } from '@ant-design/icons' import Utils from '@/utils/utils.js' -import FileUpload from '@/tabviews/zshare/fileupload' +import asyncComponent from '@/utils/asyncComponent' +// import FileUpload from '@/tabviews/zshare/fileupload' import './index.scss' +const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent')) const EditableContext = React.createContext() let dragingIndex = -1 @@ -73,12 +75,13 @@ getInput = (form) => { const { inputType, record } = this.props if (inputType === 'file') { - return <FileUpload config={{ - initval: record ? (record.$url || '') : '', - suffix: '', - maxfile: 1, - fileType: 'picture-card' - }}/> + return <SourceComponent initialValue={record ? (record.$url || '') : ''} type="" placement="right"/> + // return <FileUpload config={{ + // initval: record ? (record.$url || '') : '', + // suffix: '', + // maxfile: 1, + // fileType: 'picture-card' + // }}/> } else { return <Input onPressEnter={() => this.getValue(form)} /> } @@ -143,7 +146,6 @@ class EdiDataTable extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� transfield: PropTypes.object, // 瀛楁鍚嶇О type: PropTypes.string, // 鏄惁涓哄叧鑱旇〃鍗� display: PropTypes.string, // 鏁版嵁绫诲瀷锛屾枃鏈�佸浘鐗� @@ -172,6 +174,7 @@ !is(fromJS(this.props.fields), fromJS(nextProps.fields)) || !is(fromJS(this.props.linkSubFields), fromJS(nextProps.linkSubFields)) || this.props.display !== nextProps.display || + (nextProps.multiple && this.props.multiple !== nextProps.multiple) || this.props.type !== nextProps.type ) { this.setState({editingKey: ''}, () => { @@ -183,9 +186,9 @@ } getCloumns = () => { - const { display, fields, linkSubFields, transfield, type } = this.props + const { display, fields, linkSubFields, transfield, type, multiple } = this.props let columns = [] - let keys = ['ParentID'] + let keys = ['ParentID', 'pid'] if (display === 'picture') { columns.push({ @@ -199,16 +202,27 @@ return <span style={{display: 'block', width: '70px', height: '70px'}}><img style={{width: '100%', height: '100%'}} src={text} alt="" /></span> } }) - } else { - columns = fields.map(item => { - keys.push(item.field) - return { - title: item.field, - dataIndex: item.field, - editable: true, + } else if (display === 'color') { + columns.push({ + title: 'Color', + dataIndex: '$color', + inputType: 'text', + editable: true, + render: (text) => { + if (!text) return '' + return <div style={{height: '20px', background: text}}></div> } }) } + + fields.forEach(item => { + keys.push(item.field) + columns.push({ + title: item.field, + dataIndex: item.field, + editable: true, + }) + }) if (linkSubFields.length > 0) { linkSubFields.forEach(m => { @@ -227,6 +241,14 @@ dataIndex: '$value', editable: true, }) + + if (multiple === 'dropdown' && display === 'text') { + columns.unshift({ + title: 'pid', + dataIndex: 'pid', + editable: true, + }) + } if (type === 'link') { columns.unshift({ @@ -261,7 +283,7 @@ <span className="hide-control" title="鏄剧ず/闅愯棌" onClick={() => {editingKey === '' && this.handleHide(record.key)}}><SwapOutlined /></span> {editingKey === '' ? <Popconfirm overlayClassName="popover-confirm" - title={this.props.dict['model.query.delete']} + title="纭畾鍒犻櫎鍚�?" onConfirm={() => this.handleDelete(record.key) }> <span className="danger"><DeleteOutlined /></span> @@ -369,11 +391,13 @@ if (display === 'picture') { item.$url = '' - } else { - fields.forEach(f => { - item[f.field] = `${this.state.data.length + 1}` - }) + } else if (display === 'color') { + item.$color = '' } + + fields.forEach(f => { + item[f.field] = `${this.state.data.length + 1}` + }) let data = [...this.state.data, item] @@ -416,6 +440,8 @@ } render() { + const { display, fields } = this.props + const components = { body: { row: DragableBodyRow, @@ -441,9 +467,9 @@ }) let addable = false - if (this.props.display === 'picture') { + if (display === 'picture' || display === 'color') { addable = true - } else if (this.props.fields && this.props.fields.length > 0) { + } else if (fields && fields.length > 0) { addable = true } -- Gitblit v1.8.0