Commit af362a02 by zhaochengxiang

修改目录问题

parent 2c3406e1
...@@ -101,7 +101,7 @@ const ImportAction = (props) => { ...@@ -101,7 +101,7 @@ const ImportAction = (props) => {
{ {
(constraints||[]).map((constraint, index) => { (constraints||[]).map((constraint, index) => {
return ( return (
<Option key={index} value={constraint.id}>{ constraint.name||'' }</Option> <Option key={index} value={constraint.id}>{ constraint.cnName||'' }</Option>
) )
}) })
} }
......
...@@ -13,7 +13,7 @@ const type = 'DragableTableBodyRow'; ...@@ -13,7 +13,7 @@ const type = 'DragableTableBodyRow';
const DatatypeInput = ({ value = {}, datatypes, onChange }) => { const DatatypeInput = ({ value = {}, datatypes, onChange }) => {
const [ name, setName ] = useState(value.name||''); const [ name, setName ] = useState(value.name||'');
const [ parameterNames, setParameterNames ] = useState(value.parameterNames||[]); const [ parameterCnNames, setParameterCnNames ] = useState(value.parameterCnNames||[]);
const [ parameterValues, setParameterValues ] = useState(value.parameterValues||[]); const [ parameterValues, setParameterValues ] = useState(value.parameterValues||[]);
const onNameChange = (value) => { const onNameChange = (value) => {
...@@ -26,12 +26,14 @@ const DatatypeInput = ({ value = {}, datatypes, onChange }) => { ...@@ -26,12 +26,14 @@ const DatatypeInput = ({ value = {}, datatypes, onChange }) => {
} }
}) })
setParameterNames(currentDatatype.parameterNames); setParameterCnNames(currentDatatype.parameterCnNames);
setParameterValues(currentDatatype.parameterValues); setParameterValues(currentDatatype.parameterValues);
triggerChange({ triggerChange({
name: value, name: value,
cnName: currentDatatype.cnName,
parameterNames: currentDatatype.parameterNames, parameterNames: currentDatatype.parameterNames,
parameterCnNames: currentDatatype.parameterCnNames,
parameterValues: currentDatatype.parameterValues parameterValues: currentDatatype.parameterValues
}); });
} }
...@@ -40,7 +42,8 @@ const DatatypeInput = ({ value = {}, datatypes, onChange }) => { ...@@ -40,7 +42,8 @@ const DatatypeInput = ({ value = {}, datatypes, onChange }) => {
const newParameterValues = [...parameterValues]; const newParameterValues = [...parameterValues];
newParameterValues[index] = value; //默认为0
newParameterValues[index] = value||0;
setParameterValues(newParameterValues); setParameterValues(newParameterValues);
triggerChange({ parameterValues: newParameterValues }); triggerChange({ parameterValues: newParameterValues });
} }
...@@ -67,7 +70,7 @@ const DatatypeInput = ({ value = {}, datatypes, onChange }) => { ...@@ -67,7 +70,7 @@ const DatatypeInput = ({ value = {}, datatypes, onChange }) => {
{ {
(datatypes||[]) && datatypes.map((_datatype, index) => { (datatypes||[]) && datatypes.map((_datatype, index) => {
return ( return (
<Option key={_datatype.name||''}>{_datatype.name||''}</Option> <Option key={_datatype.name||''}>{_datatype.cnName||''}</Option>
); );
}) })
} }
...@@ -75,11 +78,11 @@ const DatatypeInput = ({ value = {}, datatypes, onChange }) => { ...@@ -75,11 +78,11 @@ const DatatypeInput = ({ value = {}, datatypes, onChange }) => {
</Col> </Col>
</Row> </Row>
{ {
(parameterNames||[]).map((parameterName, index) => { (parameterCnNames||[]).map((parameterCnName, index) => {
return ( return (
<Row key={index} className='mt-2' align='middle'> <Row key={index} className='mt-2' align='middle'>
<Col span={12}> <Col span={12}>
<span>{`${parameterName||''}:`}</span> <span>{`${parameterCnName||''}:`}</span>
</Col> </Col>
<Col span={12}> <Col span={12}>
<InputNumber <InputNumber
...@@ -268,7 +271,13 @@ const ImportActionTable = (props) => { ...@@ -268,7 +271,13 @@ const ImportActionTable = (props) => {
const save = async() => { const save = async() => {
try { try {
const row = await form.validateFields(); const row = await form.validateFields();
console.log('row', row);
(row.datatype.parameterNames||[]).forEach((parameterName, index) => {
if (!row.datatype.parameterValues[index]) {
row.datatype.parameterValues[index] = 0;
}
})
// console.log('row', row);
const newData = [...data]; const newData = [...data];
const index = newData.findIndex((item) => editingKey === item.iid); const index = newData.findIndex((item) => editingKey === item.iid);
...@@ -341,7 +350,16 @@ const ImportActionTable = (props) => { ...@@ -341,7 +350,16 @@ const ImportActionTable = (props) => {
dataIndex: 'datatype', dataIndex: 'datatype',
editable: true, editable: true,
render: (datatype, record, index) => { render: (datatype, record, index) => {
return datatype?(datatype.name||''):'';
let _text = '';
if (datatype) {
_text = datatype.cnName||'';
(datatype.parameterCnNames||[]).forEach((cnName, index) => {
_text += ' ' + cnName + ':' + (datatype.parameterValues[index]?datatype.parameterValues[index]:0);
})
}
return _text;
} }
}, },
{ {
......
...@@ -15,6 +15,7 @@ const ModelTree = (props) => { ...@@ -15,6 +15,7 @@ const ModelTree = (props) => {
const [ item, setItem ] = useState(null); const [ item, setItem ] = useState(null);
const [ visible, setVisible ] = useState(false); const [ visible, setVisible ] = useState(false);
const [ type, setType ] = useState(null); const [ type, setType ] = useState(null);
const [ rootId, setRootId ] = useState('');
const [modal, contextHolder] = Modal.useModal(); const [modal, contextHolder] = Modal.useModal();
...@@ -48,14 +49,23 @@ const ModelTree = (props) => { ...@@ -48,14 +49,23 @@ const ModelTree = (props) => {
recursion(data.subCatalogs); recursion(data.subCatalogs);
setLoading(false); setLoading(false);
setTreeData([ data||{} ]); setTreeData(data.subCatalogs||[]);
setItem(data); setRootId(data.id||'');
onSelect && onSelect(data.key||''); const firstItem = (data.subCatalogs||[]).length>0?data.subCatalogs[0]: null;
setItem(firstItem);
firstItem && onSelect && onSelect(firstItem.key||'');
} }
}) })
} }
const onTreeSelect = (keys,data) => { const onTreeSelect = (keys,data) => {
if ((keys||[]).length === 0) {
return;
}
const _item = {...data.selectedNodes[0]||[]}; const _item = {...data.selectedNodes[0]||[]};
setItem(_item); setItem(_item);
...@@ -159,22 +169,21 @@ const ModelTree = (props) => { ...@@ -159,22 +169,21 @@ const ModelTree = (props) => {
<div <div
className='p-3' className='p-3'
> >
{ <Spin spinning={loading} >
loading? <Spin /> : ( <Tree
<Tree showLine
showLine showIcon={false}
showIcon={false} onSelect={onTreeSelect}
onSelect={onTreeSelect} treeData={treeData}
treeData={treeData} selectedKeys={[item?item.key:'']}
selectedKeys={[item?item.key:'']} />
/> </Spin>
)
}
</div> </div>
<UpdateTreeItemModal <UpdateTreeItemModal
visible={visible} visible={visible}
type={type} type={type}
item={item} item={item}
rootId={rootId}
onOk={onUpdateTreeItemModalOk} onOk={onUpdateTreeItemModalOk}
onCancel={onUpdateTreeItemModalCancel} onCancel={onUpdateTreeItemModalCancel}
/> />
......
import React, { useState } from 'react'; import React, { useState, useEffect } from 'react';
import { Modal, Form, Input } from 'antd'; import { Modal, Form, Input, Radio } from 'antd';
import { dispatchLatest } from '../../../../model'; import { dispatchLatest } from '../../../../model';
class UpdateTreeItemForm extends React.Component { class UpdateTreeItemForm extends React.Component {
constructor(props){
super(props);
this.state = {
radioDisable: false
}
}
componentDidMount() {
this.radioState();
}
componentDidUpdate(preProps, preState) { componentDidUpdate(preProps, preState) {
const { form } = this.props; const { item } = this.props;
if (form && form.resetFields) { if (item!==preProps.item) {
form.resetFields(['name', 'remark']) this.radioState();
} }
} }
radioState = () => {
const { item } = this.props;
this.setState({ radioDisable: item? false: true })
}
render() { render() {
const { item, type, form } = this.props; const { type, form } = this.props;
const { radioDisable } = this.state;
const formItemLayout = { const formItemLayout = {
labelCol: { labelCol: {
...@@ -30,14 +47,15 @@ class UpdateTreeItemForm extends React.Component { ...@@ -30,14 +47,15 @@ class UpdateTreeItemForm extends React.Component {
<Form <Form
{...formItemLayout} {...formItemLayout}
form={form} form={form}
name="basic"
initialValues={
type!=='add'?{
name: item?item.name:'',
remark: item?item.remark:'',
}:null
}
> >
{
type==='add'&&<Form.Item label="目录类型" name="action">
<Radio.Group disabled={radioDisable} >
<Radio value='root'>根目录</Radio>
<Radio value='sub'>子目录</Radio>
</Radio.Group>
</Form.Item>
}
<Form.Item <Form.Item
label="名称" label="名称"
name="name" name="name"
...@@ -59,26 +77,53 @@ class UpdateTreeItemForm extends React.Component { ...@@ -59,26 +77,53 @@ class UpdateTreeItemForm extends React.Component {
const UpdateTreeItemModal = (props) => { const UpdateTreeItemModal = (props) => {
const { onOk, type, item, onCancel, visible } = props; const { onOk, type, item, onCancel, visible, rootId } = props;
const [ confirmLoading, setConfirmLoading ] = useState(false); const [ confirmLoading, setConfirmLoading ] = useState(false);
const [form] = Form.useForm(); const [form] = Form.useForm();
useEffect(() => {
if (visible) {
let _action = '';
if (type === 'add') {
_action = item ? 'sub' : 'root';
}
if (type === 'add') {
form.setFieldsValue({ action: _action, name: '', remark: '' });
} else {
form.setFieldsValue({ action: '', name: item?item.name:'', remark: item?item.remark:'' });
}
}
//eslint-disable-next-line react-hooks/exhaustive-deps
}, [visible])
const handleOk = async () => { const handleOk = async () => {
setConfirmLoading(true); setConfirmLoading(true);
try { try {
const values = await form.validateFields(); const values = await form.validateFields();
// console.log('value action', values.action);
let payload = null; let payload = null;
if (type === 'add') { if (type === 'add' && values.action==='root') {
payload = {
name: values.name||'',
remark: values.remark||'',
parentId: rootId
};
} else if (type === 'add') {
payload = { payload = {
...values, name: values.name||'',
remark: values.remark||'',
parentId: item.id parentId: item.id
}; };
} else { } else {
payload = { payload = {
...item, ...item,
...values, name: values.name||'',
remark: values.remark||'',
} }
} }
...@@ -103,11 +148,15 @@ const UpdateTreeItemModal = (props) => { ...@@ -103,11 +148,15 @@ const UpdateTreeItemModal = (props) => {
return ( return (
<Modal <Modal
forceRender
confirmLoading={confirmLoading} confirmLoading={confirmLoading}
visible={visible} visible={visible}
title={type==='add'?"新增目录":"更新目录"} title={type==='add'?"新增目录":"更新目录"}
onOk={handleOk} onOk={handleOk}
onCancel={onCancel} onCancel={() => {
setConfirmLoading(false);
onCancel && onCancel();
}}
> >
<UpdateTreeItemForm form={form} item={item} type={type} /> <UpdateTreeItemForm form={form} item={item} type={type} />
</Modal> </Modal>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment