Commit b01afe0d by zhaochengxiang

模型对比范围多选

parent 80e8725c
...@@ -97,7 +97,7 @@ const FC = (props) => { ...@@ -97,7 +97,7 @@ const FC = (props) => {
payload: { payload: {
data: { data: {
...basicRows, ...basicRows,
jobCatalogItems: rangeRows, ...rangeRows,
strategyItemPropertyTypes: strategyRows, strategyItemPropertyTypes: strategyRows,
jobSchedule: scheduleRows, jobSchedule: scheduleRows,
} }
...@@ -116,7 +116,7 @@ const FC = (props) => { ...@@ -116,7 +116,7 @@ const FC = (props) => {
data: { data: {
...task, ...task,
...basicRows, ...basicRows,
jobCatalogItems: rangeRows, ...rangeRows,
strategyItemPropertyTypes: strategyRows, strategyItemPropertyTypes: strategyRows,
jobSchedule: scheduleRows, jobSchedule: scheduleRows,
} }
...@@ -390,28 +390,26 @@ const BasicForm = React.forwardRef(function ({ type, task }, ref) { ...@@ -390,28 +390,26 @@ const BasicForm = React.forwardRef(function ({ type, task }, ref) {
const ModelRangeItem = ({ value, onChange }) => { const ModelRangeItem = ({ value, onChange }) => {
const [loading, setLoading] = React.useState(false) const [loading, setLoading] = React.useState(false)
const [treeData, setTreeData] = React.useState() const [treeData, setTreeData] = React.useState()
const [treeSelectedKey, setTreeSelectedKey] = React.useState() const [treeSelectedKeys, setTreeSelectedKeys] = React.useState()
React.useEffect(() => { React.useEffect(() => {
getTreeData() getTreeData()
}, []) }, [])
React.useEffect(() => { React.useEffect(() => {
if (treeSelectedKey) { const newData = []
const treeIndex = (treeList??[]).findIndex(item => item.key === treeSelectedKey) for (const key of treeSelectedKeys??[]) {
const index = (treeList??[]).findIndex(item => item.key === key)
if (treeIndex !== -1) { if (index !== -1) {
onChange?.({ newData.push({
modelCatalogIdList: treeList[treeIndex].ids??[], modelCatalogIdList: treeList[index].ids??[],
modelCatalogNameList: treeList[treeIndex].names??[] modelCatalogNameList: treeList[index].names??[]
}) })
} else {
onChange?.()
} }
} else {
onChange?.()
} }
}, [treeSelectedKey])
onChange?.(newData)
}, [treeSelectedKeys])
const generateList = (data, list, ids, names) => { const generateList = (data, list, ids, names) => {
(data||[]).forEach(node => { (data||[]).forEach(node => {
...@@ -474,17 +472,18 @@ const ModelRangeItem = ({ value, onChange }) => { ...@@ -474,17 +472,18 @@ const ModelRangeItem = ({ value, onChange }) => {
}) })
} }
const onTreeSelect = (selectedKeys) => { const onTreeChange = (selectedKeys) => {
setTreeSelectedKey(selectedKeys) setTreeSelectedKeys(selectedKeys)
} }
return ( return (
<TreeSelect <TreeSelect
multiple
loading={loading} loading={loading}
dropdownStyle={{ maxHeight: 400, overflow: 'auto' }} dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
treeData={treeData1} treeData={treeData1}
value={treeSelectedKey?[treeSelectedKey]:undefined} value={treeSelectedKeys??[]}
onSelect={onTreeSelect} onChange={onTreeChange}
placeholder="请选择模型范围" placeholder="请选择模型范围"
/> />
) )
...@@ -496,7 +495,7 @@ const MetadataRangeItem = ({ value, onChange }) => { ...@@ -496,7 +495,7 @@ const MetadataRangeItem = ({ value, onChange }) => {
const [currentDomainId, setCurrentDomainId] = React.useState() const [currentDomainId, setCurrentDomainId] = React.useState()
const [loadingTreeData, setLoadingTreeData] = React.useState(false) const [loadingTreeData, setLoadingTreeData] = React.useState(false)
const [treeData, setTreeData] = React.useState() const [treeData, setTreeData] = React.useState()
const [treeSelectedKey, setTreeSelectedKey] = React.useState() const [treeSelectedKeys, setTreeSelectedKeys] = React.useState()
React.useEffect(() => { React.useEffect(() => {
getDomains() getDomains()
...@@ -509,28 +508,31 @@ const MetadataRangeItem = ({ value, onChange }) => { ...@@ -509,28 +508,31 @@ const MetadataRangeItem = ({ value, onChange }) => {
}, [currentDomainId]) }, [currentDomainId])
React.useEffect(() => { React.useEffect(() => {
if (currentDomainId && treeSelectedKey) { if (currentDomainId) {
const newData = []
const domainIndex = (domains??[]).findIndex(item => item.domainId === currentDomainId) const domainIndex = (domains??[]).findIndex(item => item.domainId === currentDomainId)
const treeIndex = (treeList??[]).findIndex(item => item.key === treeSelectedKey) for (const key of treeSelectedKeys??[]) {
const index = (treeList??[]).findIndex(item => item.key === key)
if (domainIndex !== -1 && treeIndex !== -1) { if (domainIndex!==-1 && index !== -1) {
onChange?.({ newData.push({
metadataCatalogIdList: [ metadataCatalogIdList: [
`${domains[domainIndex].domainId}`, `${domains[domainIndex].domainId}`,
...treeList[treeIndex].ids??[], ...treeList[index].ids??[],
], ],
metadataCatalogNameList: [ metadataCatalogNameList: [
domains[domainIndex].domainName, domains[domainIndex].domainName,
...treeList[treeIndex].names??[], ...treeList[index].names??[]
] ]
}) })
} else { }
onChange?.()
} }
onChange?.(newData)
} else { } else {
onChange?.() onChange?.()
} }
}, [currentDomainId, treeSelectedKey]) }, [currentDomainId, treeSelectedKeys])
const generateList = (data, list, ids, names) => { const generateList = (data, list, ids, names) => {
(data||[]).forEach(node => { (data||[]).forEach(node => {
...@@ -591,7 +593,6 @@ const MetadataRangeItem = ({ value, onChange }) => { ...@@ -591,7 +593,6 @@ const MetadataRangeItem = ({ value, onChange }) => {
item.title = item.catalogName item.title = item.catalogName
item.value = `${item.catalogId}` item.value = `${item.catalogId}`
item.idStr = `${item.catalogId}` item.idStr = `${item.catalogId}`
item.disabled = true
item.children = [] item.children = []
for (let child of item.scopes??[]) { for (let child of item.scopes??[]) {
...@@ -599,7 +600,6 @@ const MetadataRangeItem = ({ value, onChange }) => { ...@@ -599,7 +600,6 @@ const MetadataRangeItem = ({ value, onChange }) => {
child.title = child.scopeName child.title = child.scopeName
child.value = `${item.catalogId}-${child.scopeId}` child.value = `${item.catalogId}-${child.scopeId}`
child.idStr = `${child.scopeId}` child.idStr = `${child.scopeId}`
child.disabled = true
item.children.push(child) item.children.push(child)
} }
} }
...@@ -616,11 +616,11 @@ const MetadataRangeItem = ({ value, onChange }) => { ...@@ -616,11 +616,11 @@ const MetadataRangeItem = ({ value, onChange }) => {
const onDomainChange = (val) => { const onDomainChange = (val) => {
setCurrentDomainId(val) setCurrentDomainId(val)
setTreeData() setTreeData()
setTreeSelectedKey() onChange?.()
} }
const onTreeSelect = (selectedKeys) => { const onTreeChange = (selectedKeys) => {
setTreeSelectedKey(selectedKeys) setTreeSelectedKeys(selectedKeys)
} }
const updateTreeData = (list, key, children) => const updateTreeData = (list, key, children) =>
...@@ -692,7 +692,6 @@ const MetadataRangeItem = ({ value, onChange }) => { ...@@ -692,7 +692,6 @@ const MetadataRangeItem = ({ value, onChange }) => {
value: item._id, value: item._id,
scopeId: node?.scopeId, scopeId: node?.scopeId,
idStr: item._id, idStr: item._id,
disabled: true,
...item ...item
})) }))
...@@ -709,8 +708,6 @@ const MetadataRangeItem = ({ value, onChange }) => { ...@@ -709,8 +708,6 @@ const MetadataRangeItem = ({ value, onChange }) => {
} }
}); });
console.log('treeSelectedKey', treeSelectedKey)
return ( return (
<Row gutter={15}> <Row gutter={15}>
<Col span={6}> <Col span={6}>
...@@ -725,9 +722,10 @@ const MetadataRangeItem = ({ value, onChange }) => { ...@@ -725,9 +722,10 @@ const MetadataRangeItem = ({ value, onChange }) => {
</Col> </Col>
<Col span={18}> <Col span={18}>
<TreeSelect <TreeSelect
multiple
loading={loadingTreeData} loading={loadingTreeData}
value={treeSelectedKey?[treeSelectedKey]:undefined} value={treeSelectedKeys??[]}
onSelect={onTreeSelect} onChange={onTreeChange}
dropdownStyle={{ maxHeight: 400, overflow: 'auto' }} dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
treeData={treeData} treeData={treeData}
loadData={onLoadData} loadData={onLoadData}
...@@ -753,7 +751,10 @@ const Range = React.forwardRef(function ({ type, task }, ref) { ...@@ -753,7 +751,10 @@ const Range = React.forwardRef(function ({ type, task }, ref) {
}), [ranges, isAdding]) }), [ranges, isAdding])
React.useEffect(() => { React.useEffect(() => {
setRanges(task?.jobCatalogItems) setRanges({
jobMetadataCatalogItems: task?.jobMetadataCatalogItems??[],
jobModelCatalogItems: task?.jobModelCatalogItems??[],
})
}, [task]) }, [task])
const onAddClick = () => { const onAddClick = () => {
...@@ -763,21 +764,14 @@ const Range = React.forwardRef(function ({ type, task }, ref) { ...@@ -763,21 +764,14 @@ const Range = React.forwardRef(function ({ type, task }, ref) {
} }
const onOkClick = async () => { const onOkClick = async () => {
rangesRef.current = ranges??[]
if (!isAdding) return if (!isAdding) return
try { try {
const rows = await form.validateFields() const rows = await form.validateFields()
setRanges({
let newRanges = [...ranges??[]] ...ranges,
newRanges = [...newRanges, { ...rows,
...rows.modelRange, })
...rows.metadataRange,
}]
setRanges(newRanges)
rangesRef.current = newRanges
setAdding(false) setAdding(false)
} catch(e) { } catch(e) {
throw new Error() throw new Error()
...@@ -789,11 +783,13 @@ const Range = React.forwardRef(function ({ type, task }, ref) { ...@@ -789,11 +783,13 @@ const Range = React.forwardRef(function ({ type, task }, ref) {
} }
const onRangeDeleteClick = (index) => { const onRangeDeleteClick = (index) => {
const newRanges = [...ranges??[]] // const newRanges = [...ranges??[]]
newRanges.splice(index, 1) // newRanges.splice(index, 1)
setRanges(newRanges) // setRanges(newRanges)
} }
rangesRef.current = ranges
return ( return (
<div> <div>
{ {
...@@ -812,7 +808,7 @@ const Range = React.forwardRef(function ({ type, task }, ref) { ...@@ -812,7 +808,7 @@ const Range = React.forwardRef(function ({ type, task }, ref) {
<Col span={10}> <Col span={10}>
<Form.Item <Form.Item
label="数据模型范围" label="数据模型范围"
name="modelRange" name="jobModelCatalogItems"
rules={[{ required: true, message: '请选择模型范围!' }]} rules={[{ required: true, message: '请选择模型范围!' }]}
> >
<ModelRangeItem /> <ModelRangeItem />
...@@ -821,7 +817,7 @@ const Range = React.forwardRef(function ({ type, task }, ref) { ...@@ -821,7 +817,7 @@ const Range = React.forwardRef(function ({ type, task }, ref) {
<Col span={10}> <Col span={10}>
<Form.Item <Form.Item
label="元数据范围" label="元数据范围"
name="metadataRange" name="jobMetadataCatalogItems"
rules={[{ required: true, message: '请选择元数据范围!' }]} rules={[{ required: true, message: '请选择元数据范围!' }]}
> >
<MetadataRangeItem /> <MetadataRangeItem />
...@@ -837,18 +833,18 @@ const Range = React.forwardRef(function ({ type, task }, ref) { ...@@ -837,18 +833,18 @@ const Range = React.forwardRef(function ({ type, task }, ref) {
</Form> </Form>
} }
{ {
(ranges??[]).map((item, index) => { // (ranges??[]).map((item, index) => {
return ( // return (
<Row className={type==='detail'?'mb-2':'mb-1'} key={generateUUID()} align='middle' gutter={15}> // <Row className={type==='detail'?'mb-2':'mb-1'} key={generateUUID()} align='middle' gutter={15}>
<Col span={type==='detail'?24:12}> // <Col span={type==='detail'?24:12}>
{`【模型】${(item.modelCatalogNameList??[]).join('/')} -【元数据】${(item.metadataCatalogNameList??[]).join('/')}`} // {`【模型】${(item.modelCatalogNameList??[]).join('/')} -【元数据】${(item.metadataCatalogNameList??[]).join('/')}`}
</Col> // </Col>
{ // {
type !== 'detail' && <Button type='link' onClick={() => onRangeDeleteClick(index)}>删除</Button> // type !== 'detail' && <Button type='link' onClick={() => onRangeDeleteClick(index)}>删除</Button>
} // }
</Row> // </Row>
) // )
}) // })
} }
</div> </div>
) )
......
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