Commit cb9047b7 by zhaochengxiang

目录简称

parent ae7cf066
...@@ -348,7 +348,7 @@ const EditModel = (props) => { ...@@ -348,7 +348,7 @@ const EditModel = (props) => {
</div> */} </div> */}
<div className='edit-container'> <div className='edit-container'>
<div className='edit-container-card'> <div className='edit-container-card'>
<ImportAction hints={hints} onChange={onActionChange} action={action} modelerId={modelerId} ddl={ddl} form={form} terms={terms} roughModelerData={roughModelerData} permitCheckOut={permitCheckOut} stateId={stateId} versionId={versionId} autoTabKey={autoTabKey} logicId={logicId} metadataId={metadataId} {...props} /> <ImportAction hints={hints} onChange={onActionChange} action={action} modelerId={modelerId} ddl={ddl} form={form} terms={terms} roughModelerData={roughModelerData} permitCheckOut={permitCheckOut} stateId={stateId} versionId={versionId} autoTabKey={autoTabKey} logicId={logicId} metadataId={metadataId} catalogId={catalogId} {...props} />
</div> </div>
</div> </div>
<div className='edit-footer'> <div className='edit-footer'>
......
...@@ -210,6 +210,9 @@ const ImportAction = React.forwardRef((props, ref) => { ...@@ -210,6 +210,9 @@ const ImportAction = React.forwardRef((props, ref) => {
dispatch({ dispatch({
type: 'datamodel.getDraftUsingMetadataId', type: 'datamodel.getDraftUsingMetadataId',
payload: { payload: {
params: {
dataCatalogId: catalogId,
},
data: { data: {
metadataTableId: _metadataId, metadataTableId: _metadataId,
modelerModelingConstraint: _constraint, modelerModelingConstraint: _constraint,
......
import React, { useState, useEffect, useMemo, useRef } from 'react'; import React, { useState, useEffect, useMemo, useRef } from 'react';
import { Form, Input, Row, Col, Select, AutoComplete, Button, Divider, Tooltip, Checkbox, Space } from 'antd'; import { Form, Input, Row, Col, Select, AutoComplete, Button, Divider, Tooltip, Checkbox, Space, Typography } from 'antd';
import { DownOutlined, UpOutlined, ExclamationCircleFilled, WarningFilled, MinusCircleOutlined, PlusOutlined } from '@ant-design/icons'; import { DownOutlined, UpOutlined, ExclamationCircleFilled, WarningFilled, MinusCircleOutlined, PlusOutlined } from '@ant-design/icons';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
import classnames from 'classnames'; import classnames from 'classnames';
...@@ -49,6 +49,26 @@ const updateOptions = [ ...@@ -49,6 +49,26 @@ const updateOptions = [
const dataTypeRemark = '描述ETL框架中目标表的数据类型'; const dataTypeRemark = '描述ETL框架中目标表的数据类型';
const bindingLoadRemark = '描述ETL框架绑定加载列表,如chain、daily、current等'; const bindingLoadRemark = '描述ETL框架绑定加载列表,如chain、daily、current等';
const NameInput = ({ value, prefixName, onChange }) => {
const customName = useMemo(() => {
let _customName = (value??'')
if (prefixName) {
_customName = (value??'').slice(prefixName.length);
}
return _customName
}, [value, prefixName])
return (
<Input value={customName} onChange={(e) => {
onChange?.(`${prefixName??''}${e.target.value}`)
}}
addonBefore={prefixName&&<Tooltip title={`简称:${prefixName}`}>
<Typography.Text ellipsis={true} style={{ maxWidth: 150 }}>{prefixName}</Typography.Text>
</Tooltip>}
/>
)
}
const ImportActionHeader = (props) => { const ImportActionHeader = (props) => {
const { editable, form, modelerData, constraints, templates, onConstraintChange, onTemplateChange, validateReports, onChange, terms, supportedPartitionTypes } = props; const { editable, form, modelerData, constraints, templates, onConstraintChange, onTemplateChange, validateReports, onChange, terms, supportedPartitionTypes } = props;
...@@ -81,7 +101,6 @@ const ImportActionHeader = (props) => { ...@@ -81,7 +101,6 @@ const ImportActionHeader = (props) => {
}, [modelerData?.dataType]) }, [modelerData?.dataType])
useEffect(() => { useEffect(() => {
setAutoTranslate((modelerData.name||'')===''); setAutoTranslate((modelerData.name||'')==='');
if (modelerData) { if (modelerData) {
form?.setFieldsValue(modelerData); form?.setFieldsValue(modelerData);
...@@ -99,7 +118,6 @@ const ImportActionHeader = (props) => { ...@@ -99,7 +118,6 @@ const ImportActionHeader = (props) => {
if (modelerData && modelerData.distributionKey) { if (modelerData && modelerData.distributionKey) {
return (modelerData.distributionKey.keys??[]).map(item => item.name).toString() return (modelerData.distributionKey.keys??[]).map(item => item.name).toString()
} }
return ''; return '';
}, [modelerData]) }, [modelerData])
...@@ -553,27 +571,28 @@ const ImportActionHeader = (props) => { ...@@ -553,27 +571,28 @@ const ImportActionHeader = (props) => {
onChange && onChange(changedValues, allValues); onChange && onChange(changedValues, allValues);
//有手动编辑过英文名称并且有内容的情况下, 不能通过编辑中文名称自动翻译 // //有手动编辑过英文名称并且有内容的情况下, 不能通过编辑中文名称自动翻译
if (changedValues.hasOwnProperty('name')) { // if (changedValues.hasOwnProperty('name')) {
setAutoTranslate(changedValues.name===''); // setAutoTranslate(changedValues.name==='');
} else if (changedValues.hasOwnProperty('cnName')) { // } else if (changedValues.hasOwnProperty('cnName')) {
if (autoTranslate) { // if (autoTranslate) {
dispatchLatest({ // dispatchLatest({
type: 'datamodel.translatePhase', // type: 'datamodel.translatePhase',
payload: { // payload: {
params: { // params: {
phaseInChinese: changedValues.cnName, // phaseInChinese: changedValues.cnName,
} // }
}, // },
callback: data => { // callback: data => {
if ((data?.translated||'') !== '') { // if ((data?.translated||'') !== '') {
form?.setFieldsValue({ name: data?.translated||'' }); // form?.setFieldsValue({ name: data?.translated||'' });
onChange && onChange({...changedValues, ...{name: data?.translated||''}}, {...allValues, ...{name: data?.translated||''}}); // onChange && onChange({...changedValues, ...{name: data?.translated||''}}, {...allValues, ...{name: data?.translated||''}});
} // }
} // }
}) // })
} // }
} else if (changedValues.hasOwnProperty('dataType')) { // }
if (changedValues.hasOwnProperty('dataType')) {
if (changedValues.dataType) { if (changedValues.dataType) {
onChange?.({...changedValues, bindingLoadRange: ''}, {...allValues, bindingLoadRange: ''}); onChange?.({...changedValues, bindingLoadRange: ''}, {...allValues, bindingLoadRange: ''});
} else { } else {
...@@ -631,7 +650,9 @@ const ImportActionHeader = (props) => { ...@@ -631,7 +650,9 @@ const ImportActionHeader = (props) => {
style={{ marginBottom }} style={{ marginBottom }}
> >
{ {
editable ? <AutoComplete options={options} onSearch={onSearch} /> : <span className='word-wrap'>{highlightSearchContentByTerms(modelerData?.name, terms)}</span> editable ? <NameInput
prefixName={modelerData?.prefixName}
/> : <span className='word-wrap'>{highlightSearchContentByTerms(modelerData?.name, terms)}</span>
} }
</Form.Item> </Form.Item>
</Col> </Col>
......
...@@ -32,20 +32,8 @@ class UpdateTreeItemForm extends React.Component { ...@@ -32,20 +32,8 @@ class UpdateTreeItemForm extends React.Component {
const { type, form } = this.props; const { type, form } = this.props;
const { radioDisable } = this.state; const { radioDisable } = this.state;
const formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 6 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 18 },
},
};
return ( return (
<Form <Form
{...formItemLayout}
form={form} form={form}
> >
{ {
...@@ -64,6 +52,20 @@ class UpdateTreeItemForm extends React.Component { ...@@ -64,6 +52,20 @@ class UpdateTreeItemForm extends React.Component {
<Input /> <Input />
</Form.Item> </Form.Item>
<Form.Item <Form.Item
label="简称"
name="abbreviation"
rules={[{ required: true, message: '请输入简称!' }]}
>
<Input />
</Form.Item>
<Form.Item
label="范围"
name="rangeList"
rules={[{ required: true, message: '请输入范围!' }]}
>
<Input />
</Form.Item>
<Form.Item
label="描述" label="描述"
name="remark" name="remark"
rules={[{ required: true, message: '请输入描述!' }]} rules={[{ required: true, message: '请输入描述!' }]}
...@@ -83,18 +85,15 @@ const UpdateTreeItemModal = (props) => { ...@@ -83,18 +85,15 @@ const UpdateTreeItemModal = (props) => {
useEffect(() => { useEffect(() => {
if (visible) { if (visible) {
let _action = ''; let _action = '';
if (type === 'add') { if (type === 'add') {
_action = item ? 'sub' : 'root'; _action = item ? 'sub' : 'root';
} }
form.setFields([{ name: 'name', errors: [] }, { name: 'remark', errors: [] }]);
if (type === 'add') { if (type === 'add') {
form.setFieldsValue({ action: _action, name: '', remark: '' }); form.setFieldsValue({ action: _action });
} else { } else {
form.setFieldsValue({ action: '', name: item?item.name:'', remark: item?item.remark:'' }); form.setFieldsValue({ action: '', ...item, rangeList: (item?.rangeList??[]).toString() });
} }
} }
//eslint-disable-next-line react-hooks/exhaustive-deps //eslint-disable-next-line react-hooks/exhaustive-deps
...@@ -110,21 +109,21 @@ const UpdateTreeItemModal = (props) => { ...@@ -110,21 +109,21 @@ const UpdateTreeItemModal = (props) => {
let payload = null; let payload = null;
if (type === 'add' && values.action==='root') { if (type === 'add' && values.action==='root') {
payload = { payload = {
name: values.name||'', ...values,
remark: values.remark||'', rangeList: (values.rangeList??'').split(','),
parentId: rootId parentId: rootId
}; };
} else if (type === 'add') { } else if (type === 'add') {
payload = { payload = {
name: values.name||'', ...values,
remark: values.remark||'', rangeList: (values.rangeList??'').split(','),
parentId: item.id parentId: item.id
}; };
} else { } else {
payload = { payload = {
...item, ...item,
name: values.name||'', ...values,
remark: values.remark||'', rangeList: (values.rangeList??'').split(','),
} }
} }
...@@ -134,8 +133,8 @@ const UpdateTreeItemModal = (props) => { ...@@ -134,8 +133,8 @@ const UpdateTreeItemModal = (props) => {
data: payload data: payload
}, },
callback: id => { callback: id => {
setConfirmLoading(false); setConfirmLoading(false);
form.resetFields();
if (onOk) { if (onOk) {
onOk(id, payload); onOk(id, payload);
...@@ -152,13 +151,14 @@ const UpdateTreeItemModal = (props) => { ...@@ -152,13 +151,14 @@ const UpdateTreeItemModal = (props) => {
return ( return (
<Modal <Modal
forceRender destroyOnClose
confirmLoading={confirmLoading} confirmLoading={confirmLoading}
visible={visible} visible={visible}
title={type==='add'?"新增目录":"更新目录"} title={type==='add'?"新增目录":"更新目录"}
onOk={handleOk} onOk={handleOk}
onCancel={() => { onCancel={() => {
setConfirmLoading(false); setConfirmLoading(false);
form.resetFields();
onCancel && onCancel(); onCancel && onCancel();
}} }}
> >
......
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