Commit e8639c6e by zhaochengxiang

主数据关联

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