Commit 2f5cb5db by zhaochengxiang

400问题

parent c7633b3b
...@@ -368,10 +368,6 @@ const ImportAction = (props) => { ...@@ -368,10 +368,6 @@ const ImportAction = (props) => {
} }
}) })
if ((newDistribution||[]).length === 0) {
newDistribution = null;
}
//主键 //主键
let newPrimary = []; let newPrimary = [];
...@@ -383,10 +379,6 @@ const ImportAction = (props) => { ...@@ -383,10 +379,6 @@ const ImportAction = (props) => {
} }
}) })
if ((newPrimary||[]).length === 0) {
newPrimary = null;
}
//分区 //分区
let newPartition = {...(newModelerData.partition||[])}; let newPartition = {...(newModelerData.partition||[])};
...@@ -407,19 +399,7 @@ const ImportAction = (props) => { ...@@ -407,19 +399,7 @@ const ImportAction = (props) => {
} }
//类主键 //类主键
let newSemiPrimary = []; let newSemiPrimary = [...(newModelerData.easyDataModelerSemiPrimaryKey||[])];
(newModelerData.semiPrimaryKey||[]).forEach((item, index) => {
const _index = (newModelerData.easyDataModelerDataModelAttributes||[]).findIndex(_item => item.iid === _item.iid);
if (_index !== -1) {
newSemiPrimary.push({...newModelerData.easyDataModelerDataModelAttributes[_index]});
}
})
if ((newSemiPrimary||[]).length === 0) {
newSemiPrimary = null;
}
//索引 //索引
let newEasyDataModelerIndices = [...(newModelerData.easyDataModelerIndices||[])]; let newEasyDataModelerIndices = [...(newModelerData.easyDataModelerIndices||[])];
...@@ -442,7 +422,7 @@ const ImportAction = (props) => { ...@@ -442,7 +422,7 @@ const ImportAction = (props) => {
newEasyDataModelerIndices = newEasyDataModelerIndices.filter(item => (item.indexedEasyDataModelAttributes||[]).length > 0); newEasyDataModelerIndices = newEasyDataModelerIndices.filter(item => (item.indexedEasyDataModelAttributes||[]).length > 0);
return { partition: newPartition, easyDataModelerDistributionKey: newDistribution, easyDataModelerPrimaryKey: newPrimary, easyDataModelerIndices: newEasyDataModelerIndices, semiPrimaryKey: newSemiPrimary}; return { partition: newPartition, easyDataModelerDistributionKey: newDistribution, easyDataModelerPrimaryKey: newPrimary, easyDataModelerIndices: newEasyDataModelerIndices, easyDataModelerSemiPrimaryKey: newSemiPrimary};
} }
return ( return (
......
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { Form, Input, Row, Col, Descriptions, Select, AutoComplete, Checkbox } from 'antd'; import { Form, Input, Row, Col, Descriptions, Select, AutoComplete, Checkbox } from 'antd';
import { highlightSearchContentByTerms } from '../../../../util'; import { highlightSearchContentByTerms, generateUUID } from '../../../../util';
import { dispatchLatest } from '../../../../model'; import { dispatchLatest } from '../../../../model';
import './ImportActionHeader.less'; import './ImportActionHeader.less';
...@@ -79,10 +79,24 @@ const TemplateSelect = ({ value = {}, templates = [], onChange, ...restProps }) ...@@ -79,10 +79,24 @@ const TemplateSelect = ({ value = {}, templates = [], onChange, ...restProps })
) )
} }
const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) => { const AttributesSelect = ({ value = [], modelerData, onChange, mode = 'multiple', ...restProps }) => {
const onAttributeChange = (value) => { const onAttributeChange = (value) => {
const currentAttributes = (modelerData?.easyDataModelerDataModelAttributes||[]).filter(attribute => (value||[]).indexOf(attribute.iid)!==-1); let currentAttributes = [];
if (mode === 'multiple') {
currentAttributes = (modelerData?.easyDataModelerDataModelAttributes||[]).filter(attribute => (value||[]).indexOf(attribute.iid)!==-1);
} else {
(value||[]).forEach(item => {
const filterAttributes = (newAttributes||[]).filter(attribute => item ===attribute.iid);
if (filterAttributes.length !== 0) {
currentAttributes = [...currentAttributes, ...filterAttributes];
} else {
currentAttributes = [...currentAttributes, { name: item, iid: generateUUID() }];
}
})
}
triggerChange(currentAttributes); triggerChange(currentAttributes);
} }
...@@ -95,8 +109,18 @@ const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) = ...@@ -95,8 +109,18 @@ const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) =
value = value ? value: []; value = value ? value: [];
let attributeIds = []; let attributeIds = [];
let newAttributes = [...(modelerData?.easyDataModelerDataModelAttributes||[])];
value.forEach(attribute => { value.forEach(attribute => {
attributeIds.push(attribute.iid); attributeIds.push(attribute.iid);
if (mode === 'tags') {
const filterAttributes = (modelerData?.easyDataModelerDataModelAttributes||[]).filter(_attribute => attribute.iid ===_attribute.iid);
if (filterAttributes.length === 0) {
newAttributes = [...newAttributes, attribute];
}
}
}) })
return ( return (
...@@ -105,13 +129,13 @@ const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) = ...@@ -105,13 +129,13 @@ const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) =
value={attributeIds} value={attributeIds}
placeholder='请选择字段名称' placeholder='请选择字段名称'
style={{ width: 300 }} style={{ width: 300 }}
mode='multiple' mode={mode}
allowClear={true} allowClear={true}
> >
{ {
(modelerData?.easyDataModelerDataModelAttributes||[]).map((attribute, index) => { (newAttributes||[]).map((attribute, index) => {
return ( return (
<Option key={index} value={attribute.iid||''}>{attribute.name||''}</Option> <Option key={index} value={attribute.iid?attribute.iid:(attribute.name||'')}>{attribute.name||''}</Option>
); );
}) })
} }
...@@ -440,8 +464,8 @@ const ImportActionHeader = (props) => { ...@@ -440,8 +464,8 @@ const ImportActionHeader = (props) => {
} }
//类主键 //类主键
if (modelerData?.semiPrimaryKey) { if (modelerData?.easyDataModelerSemiPrimaryKey) {
(modelerData?.semiPrimaryKey||[]).forEach((item, index) => { (modelerData?.easyDataModelerSemiPrimaryKey||[]).forEach((item, index) => {
if (index > 0) { if (index > 0) {
semiPrimaryDescription += ','; semiPrimaryDescription += ',';
} }
...@@ -594,10 +618,10 @@ const ImportActionHeader = (props) => { ...@@ -594,10 +618,10 @@ const ImportActionHeader = (props) => {
<Col span={8}> <Col span={8}>
<Form.Item <Form.Item
label="类主键" label="类主键"
name="semiPrimaryKey" name="easyDataModelerSemiPrimaryKey"
labelAlign="left" labelAlign="left"
> >
<AttributesSelect modelerData={modelerData} /> <AttributesSelect modelerData={modelerData} mode='tags' />
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
......
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