Commit fe1235c7 by zhaochengxiang

字段编辑优化

parent 90483a08
......@@ -358,10 +358,10 @@ const ImportAction = (props) => {
const getAllNewKeysAfterTableChange = (newModelerData) => {
//分布键
let newDistribution = [...(newModelerData.easyDataModelerDistributionKey||[])];
let newDistribution = [];
(newDistribution||[]).forEach((item, index) => {
const _index = (newModelerData.easyDataModelerDataModelAttributes||[]).findIndex(_item => item.name === _item.name);
(newModelerData.easyDataModelerDistributionKey||[]).forEach((item, index) => {
const _index = (newModelerData.easyDataModelerDataModelAttributes||[]).findIndex(_item => item.iid === _item.iid);
if (_index !== -1) {
newDistribution.push({...newModelerData.easyDataModelerDataModelAttributes[_index]});
......@@ -373,10 +373,10 @@ const ImportAction = (props) => {
}
//主键
let newPrimary = [...(newModelerData.easyDataModelerPrimaryKey||[])];
let newPrimary = [];
(newPrimary||[]).forEach((item, index) => {
const _index = (newModelerData.easyDataModelerDataModelAttributes||[]).findIndex(_item => item.name === _item.name);
(newModelerData.easyDataModelerPrimaryKey||[]).forEach((item, index) => {
const _index = (newModelerData.easyDataModelerDataModelAttributes||[]).findIndex(_item => item.iid === _item.iid);
if (_index !== -1) {
newPrimary.push({...newModelerData.easyDataModelerDataModelAttributes[_index]});
......@@ -393,7 +393,7 @@ const ImportAction = (props) => {
const newKeys = [];
(newPartition.keys||[]).forEach((item, index) => {
const _index = (newModelerData.easyDataModelerDataModelAttributes||[]).findIndex(_item => item.name === _item.name);
const _index = (newModelerData.easyDataModelerDataModelAttributes||[]).findIndex(_item => item.iid === _item.iid);
if (_index !== -1) {
newKeys.push({...newModelerData.easyDataModelerDataModelAttributes[_index]});
......@@ -406,6 +406,21 @@ const ImportAction = (props) => {
newPartition = null;
}
//类主键
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 newEasyDataModelerIndices = [...(newModelerData.easyDataModelerIndices||[])];
(newModelerData.easyDataModelerIndices||[]).forEach((easyDataModelerIndex, index) => {
......@@ -427,7 +442,7 @@ const ImportAction = (props) => {
newEasyDataModelerIndices = newEasyDataModelerIndices.filter(item => (item.indexedEasyDataModelAttributes||[]).length > 0);
return { partition: newPartition, easyDataModelerDistributionKey: newDistribution, easyDataModelerPrimaryKey: newPrimary, easyDataModelerIndices: newEasyDataModelerIndices };
return { partition: newPartition, easyDataModelerDistributionKey: newDistribution, easyDataModelerPrimaryKey: newPrimary, easyDataModelerIndices: newEasyDataModelerIndices, semiPrimaryKey: newSemiPrimary};
}
return (
......
......@@ -82,7 +82,7 @@ const TemplateSelect = ({ value = {}, templates = [], onChange, ...restProps })
const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) => {
const onAttributeChange = (value) => {
const currentAttributes = (modelerData?.easyDataModelerDataModelAttributes||[]).filter(attribute => (value||[]).indexOf(attribute.name)!==-1);
const currentAttributes = (modelerData?.easyDataModelerDataModelAttributes||[]).filter(attribute => (value||[]).indexOf(attribute.iid)!==-1);
triggerChange(currentAttributes);
}
......@@ -94,15 +94,15 @@ const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) =
//value有可能为空
value = value ? value: [];
let attributeNames = [];
let attributeIds = [];
value.forEach(attribute => {
attributeNames.push(attribute.name);
attributeIds.push(attribute.iid);
})
return (
<Select
onChange={(value) => { onAttributeChange && onAttributeChange(value) }}
value={attributeNames}
value={attributeIds}
placeholder='请选择字段名称'
style={{ width: 300 }}
mode='multiple'
......@@ -111,7 +111,7 @@ const AttributesSelect = ({ value = [], modelerData, onChange, ...restProps }) =
{
(modelerData?.easyDataModelerDataModelAttributes||[]).map((attribute, index) => {
return (
<Option key={index} value={attribute.name||''}>{attribute.name||''}</Option>
<Option key={index} value={attribute.iid||''}>{attribute.name||''}</Option>
);
})
}
......@@ -134,7 +134,7 @@ const PartitionSelect = ({ value = {}, modelerData, partitionTypes = [], onChang
}
const onAttributeChange = (value) => {
const currentAttributes = (modelerData?.easyDataModelerDataModelAttributes||[]).filter(attribute => (value||[]).indexOf(attribute.name)!==-1);
const currentAttributes = (modelerData?.easyDataModelerDataModelAttributes||[]).filter(attribute => (value||[]).indexOf(attribute.iid)!==-1);
triggerChange({ keys: currentAttributes });
}
......@@ -149,9 +149,9 @@ const PartitionSelect = ({ value = {}, modelerData, partitionTypes = [], onChang
//value有可能为空
value = value ? value: {};
let attributeNames = [];
let attributeIds = [];
(value?.keys||[]).forEach(attribute => {
attributeNames.push(attribute.name);
attributeIds.push(attribute.iid);
})
return (
......@@ -173,7 +173,7 @@ const PartitionSelect = ({ value = {}, modelerData, partitionTypes = [], onChang
</Select>
<Select
onChange={(value) => { onAttributeChange && onAttributeChange(value) }}
value={attributeNames}
value={attributeIds}
placeholder='请选择字段名称'
style={{ width: 200, marginLeft: 5 }}
mode='multiple'
......@@ -182,7 +182,7 @@ const PartitionSelect = ({ value = {}, modelerData, partitionTypes = [], onChang
{
(modelerData?.easyDataModelerDataModelAttributes||[]).map((attribute, index) => {
return (
<Option key={index} value={attribute.name||''}>{attribute.name||''}</Option>
<Option key={index} value={attribute.iid||''}>{attribute.name||''}</Option>
);
})
}
......@@ -399,7 +399,7 @@ const ImportActionHeader = (props) => {
setOnlyShowRequireChange(e.target.checked);
}
let distributionDescription = '', primaryDescription = '', partitionsDescription = '';
let distributionDescription = '', primaryDescription = '', partitionsDescription = '', semiPrimaryDescription = '';
if (!editable && modelerData) {
//分布
......@@ -438,6 +438,17 @@ const ImportActionHeader = (props) => {
if (modelerData?.partition?.partitionType?.name) {
partitionsDescription += '/' + modelerData?.partition?.partitionType?.name||'';
}
//类主键
if (modelerData?.semiPrimaryKey) {
(modelerData?.semiPrimaryKey||[]).forEach((item, index) => {
if (index > 0) {
semiPrimaryDescription += ',';
}
semiPrimaryDescription += item.name||'';
})
}
}
return (
......@@ -583,10 +594,10 @@ const ImportActionHeader = (props) => {
<Col span={8}>
<Form.Item
label="类主键"
name="semiPrimaryKeysDescription"
name="semiPrimaryKey"
labelAlign="left"
>
<Input style={{ width: 300 }} />
<AttributesSelect modelerData={modelerData} />
</Form.Item>
</Col>
</Row>
......@@ -650,7 +661,7 @@ const ImportActionHeader = (props) => {
<Descriptions.Item label="分布键">{highlightSearchContentByTerms(distributionDescription||'', terms)}</Descriptions.Item>
<Descriptions.Item label="分区键">{highlightSearchContentByTerms(partitionsDescription||'', terms)}</Descriptions.Item>
<Descriptions.Item label="主键">{highlightSearchContentByTerms(primaryDescription||'', terms)}</Descriptions.Item>
<Descriptions.Item label="类主键">{highlightSearchContentByTerms(modelerData.semiPrimaryKeysDescription||'', terms)}</Descriptions.Item>
<Descriptions.Item label="类主键">{highlightSearchContentByTerms(semiPrimaryDescription||'', terms)}</Descriptions.Item>
<Descriptions.Item label="加载方式">{highlightSearchContentByTerms(modelerData.dataLoadingStrategy||'', terms)}</Descriptions.Item>
<Descriptions.Item label="更新时间">{highlightSearchContentByTerms(modelerData.dataUpdatingTiming||'', terms)}</Descriptions.Item>
<Descriptions.Item label="维护历史">{highlightSearchContentByTerms(modelerData.maintenanceRecords||'', terms)}</Descriptions.Item>
......
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