Commit 2f5cb5db by zhaochengxiang

400问题

parent c7633b3b
......@@ -368,10 +368,6 @@ const ImportAction = (props) => {
}
})
if ((newDistribution||[]).length === 0) {
newDistribution = null;
}
//主键
let newPrimary = [];
......@@ -382,10 +378,6 @@ const ImportAction = (props) => {
newPrimary.push({...newModelerData.easyDataModelerDataModelAttributes[_index]});
}
})
if ((newPrimary||[]).length === 0) {
newPrimary = null;
}
//分区
let newPartition = {...(newModelerData.partition||[])};
......@@ -407,19 +399,7 @@ const ImportAction = (props) => {
}
//类主键
let newSemiPrimary = [];
(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 newSemiPrimary = [...(newModelerData.easyDataModelerSemiPrimaryKey||[])];
//索引
let newEasyDataModelerIndices = [...(newModelerData.easyDataModelerIndices||[])];
......@@ -442,7 +422,7 @@ const ImportAction = (props) => {
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 (
......
import React, { useState, useEffect } from 'react';
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 './ImportActionHeader.less';
......@@ -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 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);
}
......@@ -91,13 +105,23 @@ const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) =
onChange?.(changedValue);
};
//value有可能为空
value = value ? value: [];
//value有可能为空
value = value ? value: [];
let attributeIds = [];
value.forEach(attribute => {
attributeIds.push(attribute.iid);
})
let attributeIds = [];
let newAttributes = [...(modelerData?.easyDataModelerDataModelAttributes||[])];
value.forEach(attribute => {
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 (
<Select
......@@ -105,13 +129,13 @@ const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) =
value={attributeIds}
placeholder='请选择字段名称'
style={{ width: 300 }}
mode='multiple'
mode={mode}
allowClear={true}
>
{
(modelerData?.easyDataModelerDataModelAttributes||[]).map((attribute, index) => {
(newAttributes||[]).map((attribute, index) => {
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) => {
}
//类主键
if (modelerData?.semiPrimaryKey) {
(modelerData?.semiPrimaryKey||[]).forEach((item, index) => {
if (modelerData?.easyDataModelerSemiPrimaryKey) {
(modelerData?.easyDataModelerSemiPrimaryKey||[]).forEach((item, index) => {
if (index > 0) {
semiPrimaryDescription += ',';
}
......@@ -594,10 +618,10 @@ const ImportActionHeader = (props) => {
<Col span={8}>
<Form.Item
label="类主键"
name="semiPrimaryKey"
name="easyDataModelerSemiPrimaryKey"
labelAlign="left"
>
<AttributesSelect modelerData={modelerData} />
<AttributesSelect modelerData={modelerData} mode='tags' />
</Form.Item>
</Col>
</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