Commit f3e2e3bd by zhaochengxiang

支持hive

parent f966f357
......@@ -519,7 +519,7 @@ const ImportAction = React.forwardRef((props, ref) => {
let newPartition = {...(newModelerData.partition||{})};
if (newModelerData.dbType === 'Hive') {
newPartition.keys = (newPartition.keys??[]).filter(item => (newModelerData.easyDataModelerDataModelAttributes??[]).findIndex(_item => item.iid === _item.iid) === -1)
newPartition.keys = (newPartition.keys??[]).filter(item => (newModelerData.easyDataModelerDataModelAttributes??[]).findIndex(_item => item.name === _item.name) === -1)
} else {
newPartition.keys = (newPartition.keys??[]).filter(item => (newModelerData.easyDataModelerDataModelAttributes??[]).findIndex(_item => item.iid === _item.iid) !== -1)
}
......
......@@ -9,6 +9,7 @@ import { dispatch, dispatchLatest } from '../../../../model';
import Rule from '../../ModelConfig/Component/rule-readonly';
import DebounceInput from './DebounceInput';
import HivePartitionAddKey from './hive-partition-add-key';
import { Detail as KeysDetail } from './hive-partition-add-key';
import './ImportActionHeader.less';
......@@ -286,7 +287,11 @@ const ImportActionHeader = (props) => {
style={{ marginBottom }}
>
{
editable ? <DistributionItem modelerData={modelerData} /> : <span className='word-wrap'>{highlightSearchContentByTerms(distributionDescription, terms)}</span>
editable ? <DistributionItem modelerData={modelerData} /> : <Tooltip
overlayClassName='tooltip-common'
title={<KeysDetail value={modelerData?.distributionKey?.keys} />}>
<span className='word-wrap'>{highlightSearchContentByTerms(distributionDescription, terms)}</span>
</Tooltip>
}
</Form.Item>
</Col>
......@@ -297,7 +302,11 @@ const ImportActionHeader = (props) => {
style={{ marginBottom }}
>
{
editable ? <PartitionSelect modelerData={modelerData} partitionTypes={supportedPartitionTypes} /> : <span className='word-wrap'>{highlightSearchContentByTerms(partitionsDescription, terms)}</span>
editable ? <PartitionSelect modelerData={modelerData} partitionTypes={supportedPartitionTypes} /> : <Tooltip
overlayClassName='tooltip-common'
title={<KeysDetail value={modelerData?.partition?.keys} />}>
<span className='word-wrap'>{highlightSearchContentByTerms(partitionsDescription, terms)}</span>
</Tooltip>
}
</Form.Item>
</Col>
......@@ -308,7 +317,11 @@ const ImportActionHeader = (props) => {
style={{ marginBottom }}
>
{
editable ? <AttributesSelect modelerData={modelerData} mode='tags' /> : <span className='word-wrap'>{highlightSearchContentByTerms(semiPrimaryDescription, terms)}</span>
editable ? <AttributesSelect modelerData={modelerData} mode='tags' /> : <Tooltip
overlayClassName='tooltip-common'
title={<KeysDetail value={modelerData?.easyDataModelerSemiPrimaryKey} />}>
<span className='word-wrap'>{highlightSearchContentByTerms(semiPrimaryDescription, terms)}</span>
</Tooltip>
}
</Form.Item>
</Col>
......@@ -398,7 +411,11 @@ const ImportActionHeader = (props) => {
style={{ marginBottom }}
>
{
editable ? <HivePartitionSelect modelerData={modelerData} partitionTypes={supportedPartitionTypes} /> : <span className='word-wrap'>{highlightSearchContentByTerms(partitionsDescription, terms)}</span>
editable ? <HivePartitionSelect modelerData={modelerData} partitionTypes={supportedPartitionTypes} /> : <Tooltip
overlayClassName='tooltip-common'
title={<KeysDetail value={modelerData?.partition?.keys} />}>
<span className='word-wrap'>{highlightSearchContentByTerms(partitionsDescription, terms)}</span>
</Tooltip>
}
</Form.Item>
</Col>
......@@ -427,7 +444,12 @@ const ImportActionHeader = (props) => {
]}
>
{
editable ? <DistributionBucketItem modelerData={modelerData} /> : <span className='word-wrap'>{highlightSearchContentByTerms(distributionBucketDescription, terms)}</span>
editable ? <DistributionBucketItem modelerData={modelerData} /> :
<Tooltip
overlayClassName='tooltip-common'
title={<KeysDetail value={modelerData?.distributionKey?.keys} />}>
<span className='word-wrap'>{highlightSearchContentByTerms(distributionBucketDescription, terms)}</span>
</Tooltip>
}
</Form.Item>
</Col>
......@@ -1095,7 +1117,6 @@ const HivePartitionSelect = ({ value, onChange, partitionTypes, modelerData }) =
}
}}
open={false}
style={{ width: 300 }}
value={(value?.keys??[]).map(item => item.iid)}
options={(value?.keys??[]).map(item => ({ label: item.name, value: item.iid }))}
allowClear
......
......@@ -274,4 +274,51 @@ const Basic = React.forwardRef(function ({ modelerData, value }, ref) {
/>
</>
)
})
\ No newline at end of file
})
export const Detail = ({ value }) => {
const columns = [
{
title: '中文名称',
dataIndex: 'cnName',
},
{
title: '英文名称',
dataIndex: 'name',
},
{
title: '类型',
dataIndex: 'datatype',
render: (_, record, __) => {
if (record?.datatype) {
if ((record?.datatype?.name==='Char'||record?.datatype?.name==='Varchar') && record?.datatype?.parameterValues?.length>0) {
return `${record?.datatype?.name||''}(${(record?.datatype?.parameterValues[0]?record.datatype.parameterValues[0]:0)})`;
} else if ((record?.datatype?.name==='Decimal'||record?.datatype?.name==='Numeric') && record?.datatype?.parameterValues?.length>1) {
return `${record?.datatype?.name||''}(${(record?.datatype?.parameterValues[0]?record.datatype.parameterValues[0]:0)},${(record?.datatype?.parameterValues[1]?record.datatype.parameterValues[1]:0)})`;
}
return record.datatype.name||'';
}
return '';
}
},
{
title: '业务含义',
dataIndex: 'remark',
},
]
return (
<div style={{ width: 500, maxHeight: 300, overflow: 'auto' }}>
<Table
columns={columns}
dataSource={value??[]}
pagination={false}
/>
</div>
)
}
\ No newline at end of file
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