Commit e8639c6e by zhaochengxiang

主数据关联

parent 45ba3fb1
......@@ -209,6 +209,7 @@ const ManageTable = (props) => {
<div className='data-master-content p-3'>
<ResizeableTable
rowKey='_id'
loading={loading}
rowSelection={rowSelection}
columns={columns}
dataSource={tableData}
......
......@@ -94,12 +94,15 @@ const ManageTree = (props) => {
setLoading(false);
setData(data||[]);
const firstModelNodeId = findFirstModelNode(data||[]);
if ((selectedKeysRef.current||[]).length===0 && (data||[]).length>0) {
onTreeSelect([data[0]._id]);
onTreeSelect([firstModelNodeId]);
}
if ((expandedKeys||[]).length===0 && (data||[]).length>0) {
setExpandedKeys([data[0]._id]);
setExpandedKeys([firstModelNodeId]);
setAutoExpandParent(true);
} else {
setExpandedKeys(Array.from(new Set([...expandedKeys, ...selectedKeysRef.current])));
setAutoExpandParent(true);
......@@ -124,7 +127,10 @@ const ManageTree = (props) => {
const paths = value.split('/');
setKeyword(paths[paths.length-1]);
onTreeSelect([option.key]);
if (isModelNode(option.key)) {
onTreeSelect([option.key]);
}
setExpandedKeys(Array.from(new Set([...expandedKeys, option.key])));
setAutoExpandParent(true);
};
......@@ -138,16 +144,52 @@ const ManageTree = (props) => {
setAutoExpandParent(false);
}
const onTreeSelect = (selectedKeys) => {
const onTreeSelect = (selectedKeys, e = null) => {
if (selectedKeys.length === 0) {
return;
}
if (e && e?.node && !isModelNode(e?.node?.key)) {
return;
}
setSelectedKeys(selectedKeys);
selectedKeysRef.current = selectedKeys;
onClick && onClick(selectedKeys[0]);
}
const isModelNode = (value) => {
return ((value||[]).indexOf('Model=') !== -1);
}
const findFirstModelNode = (values) => {
const generateList = (data, list) => {
(data||[]).forEach(node => {
const {_id, name} = node;
list.push(node);
if (node.children) {
generateList(node.children, list);
}
});
};
const newTreeList = [];
generateList(values, newTreeList);
let firstModelNodeId = '';
newTreeList.some(item => {
if (isModelNode(item._id)) {
firstModelNodeId = item._id;
}
return isModelNode(item._id);
})
return firstModelNodeId;
}
return (
<div className='data-master-tree'>
<div className='header p-3'>
......
......@@ -51,11 +51,13 @@ const UpdateDataMasterModal = (props) => {
const row = await form.validateFields();
setConfirmLoading(true);
let url = '';
let url = '', newData = {};
if (action === 'add') {
url = 'msd.addData';
newData = row;
} else {
url = 'msd.updateData';
newData = {...data, ...row};
}
dispatch({
......@@ -64,7 +66,7 @@ const UpdateDataMasterModal = (props) => {
params: {
modelId: nodeId,
},
data: row
data: newData
},
callback: () => {
setConfirmLoading(false);
......
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