Commit 316266f1 by zhaochengxiang

按规范区分数据表

parent 9c1212d2
...@@ -133,8 +133,8 @@ export function* getAllConstraints() { ...@@ -133,8 +133,8 @@ export function* getAllConstraints() {
return yield call(datamodelerService.constraints); return yield call(datamodelerService.constraints);
} }
export function* getAllTemplates() { export function* getAllTemplates(payload) {
return yield call(datamodelerService.templates); return yield call(datamodelerService.templates, payload);
} }
export function* getTemplate(payload) { export function* getTemplate(payload) {
......
...@@ -85,8 +85,8 @@ export function constraints() { ...@@ -85,8 +85,8 @@ export function constraints() {
} }
//模版 //模版
export function templates() { export function templates(payload) {
return GetJSON("/datamodeler/easyDataModelerTemplateCURD/getAllDataModelTemplates"); return GetJSON("/datamodeler/easyDataModelerTemplateCURD/getAllDataModelTemplates", payload);
} }
export function getTemplate(payload) { export function getTemplate(payload) {
......
...@@ -59,24 +59,23 @@ const ImportAction = (props) => { ...@@ -59,24 +59,23 @@ const ImportAction = (props) => {
setLoading(true); setLoading(true);
dispatch({ dispatch({
type: 'datamodel.getAllConstraintsAndTemplates', type: 'datamodel.getAllConstraints',
callback: data => { callback: data => {
setConstraints(data.constraints||[]); setConstraints(data);
setTemplates(data.templates||[]);
if (action === 'add') { if (action === 'add') {
setConstraint((data.constraints||[]).length>0?data.constraints[0]:{}); // setConstraint(data?.length>0?data[0]:{});
setTemplate({}); // setTemplate({});
if ((hints||[]).length>0) { if ((hints||[]).length>0) {
getDraft((data.constraints||[]).length>0?data.constraints[0]:{}, {} ,hints); getDraft(data?.length>0?data[0]:{}, {} ,hints);
} else if ((ddl||'').length>0) { } else if ((ddl||'').length>0) {
getDraftUsingDDL((data.constraints||[]).length>0?data.constraints[0]:{}, {} ,ddl); getDraftUsingDDL(data?.length>0?data[0]:{}, {} ,ddl);
} else if ((modelerId||'')!=='') { } else if ((modelerId||'')!=='') {
getCurrentDataModel(); getCurrentDataModel();
} else if (roughModelerData) { } else if (roughModelerData) {
setLoading(false); setLoading(false);
getExtraData(roughModelerData); getExtraData(roughModelerData);
} else { } else {
getDraft((data.constraints||[]).length>0?data.constraints[0]:{}, {} ,[]); getDraft(data?.length>0?data[0]:{}, {} ,[]);
} }
} else if(action === 'edit' || action === 'detail' || action ==='flow' || action === 'detail-version') { } else if(action === 'edit' || action === 'detail' || action ==='flow' || action === 'detail-version') {
getCurrentDataModel(); getCurrentDataModel();
...@@ -89,6 +88,26 @@ const ImportAction = (props) => { ...@@ -89,6 +88,26 @@ const ImportAction = (props) => {
//eslint-disable-next-line react-hooks/exhaustive-deps //eslint-disable-next-line react-hooks/exhaustive-deps
}, [action, hints, modelerId, ddl ]); }, [action, hints, modelerId, ddl ]);
useEffect(() => {
if (constraint?.name) {
getTemplates();
} else {
setTemplates([]);
}
}, [constraint])
const getTemplates = () => {
dispatch({
type: 'datamodel.getAllTemplates',
payload: {
constraintName: constraint.name
},
callback: data => {
setTemplates(data);
}
})
}
const getDraft = (_constraint, _template, _hints) => { const getDraft = (_constraint, _template, _hints) => {
dispatch({ dispatch({
type: 'datamodel.getDraft', type: 'datamodel.getDraft',
......
...@@ -370,6 +370,7 @@ const ImportActionHeader = (props) => { ...@@ -370,6 +370,7 @@ const ImportActionHeader = (props) => {
const [ maintenanceRecords, setMaintenanceRecords ] = useState(null); const [ maintenanceRecords, setMaintenanceRecords ] = useState(null);
const [ dataTypeList, setDataTypeList ] = useState(null); const [ dataTypeList, setDataTypeList ] = useState(null);
const [ bindingLoadRangeList, setBindingLoadRangeList ] = useState(null); const [ bindingLoadRangeList, setBindingLoadRangeList ] = useState(null);
const [ dataCircumstances, setDataCircumstances ] = useState(null);
useEffect(() => { useEffect(() => {
getDataTypeList(); getDataTypeList();
...@@ -404,6 +405,7 @@ const ImportActionHeader = (props) => { ...@@ -404,6 +405,7 @@ const ImportActionHeader = (props) => {
setAutoTranslate((modelerData.name||'')===''); setAutoTranslate((modelerData.name||'')==='');
if (modelerData) { if (modelerData) {
form?.setFieldsValue(modelerData); form?.setFieldsValue(modelerData);
setDataCircumstances(modelerData.dataCircumstances);
if ((modelerData.id||'')!=='' && maintenanceRecords===null) { if ((modelerData.id||'')!=='' && maintenanceRecords===null) {
getMaintenanceRecords(); getMaintenanceRecords();
...@@ -715,12 +717,14 @@ const ImportActionHeader = (props) => { ...@@ -715,12 +717,14 @@ const ImportActionHeader = (props) => {
</Form.Item> </Form.Item>
</Col> </Col>
<Col xs={24} sm={24} lg={12} xl={8}> <Col xs={24} sm={24} lg={12} xl={8}>
<Form.Item <Tooltip title={dataCircumstances?null:'描述数据表中数据的更新频率、每日增量情况、数据量级和历史数据'}>
label="数据情况" <Form.Item
name="dataCircumstances" label="数据情况"
> name="dataCircumstances"
<Input placeholder='描述数据表中数据的更新频率、每日增量情况、数据量级和历史数据' /> >
</Form.Item> <Input placeholder='描述数据表中数据的更新频率、每日增量情况、数据量级和历史数据' />
</Form.Item>
</Tooltip>
</Col> </Col>
<Col xs={24} sm={24} lg={12} xl={8}> <Col xs={24} sm={24} lg={12} xl={8}>
<Form.Item <Form.Item
......
...@@ -26,6 +26,7 @@ const TemplateAction = (props) => { ...@@ -26,6 +26,7 @@ const TemplateAction = (props) => {
cnName: '', cnName: '',
name: '', name: '',
remark: '', remark: '',
constraintName: '',
}); });
} }
if (action === 'add') { if (action === 'add') {
...@@ -55,6 +56,7 @@ const TemplateAction = (props) => { ...@@ -55,6 +56,7 @@ const TemplateAction = (props) => {
cnName: data.cnName||'', cnName: data.cnName||'',
name: data.name||'', name: data.name||'',
remark: data.remark||'', remark: data.remark||'',
constraintName: data.constraintName||''
}); });
} }
}, },
......
import React from 'react'; import React, { useEffect, useState } from 'react';
import { Form, Input, Row, Col, Descriptions } from 'antd'; import { Form, Input, Row, Col, Descriptions, Select } from 'antd';
import { dispatch } from '../../../../model';
const { TextArea } = Input; const { TextArea } = Input;
const TemplateActionHeader = (props) => { const TemplateActionHeader = (props) => {
const { editable, form, templateData } = props; const { editable, form, templateData } = props;
const [constraints, setConstraints] = useState([]);
useEffect(() => {
getConstraints();
//eslint-disable-next-line react-hooks/exhaustive-deps
}, [])
const getConstraints = () => {
dispatch({
type: 'datamodel.getAllConstraints',
callback: data => {
setConstraints(data);
},
})
}
const formItemLayout = { const formItemLayout = {
labelCol: { labelCol: {
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 5 }, sm: { span: 4 },
}, },
wrapperCol: { wrapperCol: {
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 19 }, sm: { span: 20 },
}, },
}; };
...@@ -23,7 +40,7 @@ const TemplateActionHeader = (props) => { ...@@ -23,7 +40,7 @@ const TemplateActionHeader = (props) => {
form={form} form={form}
{...formItemLayout} {...formItemLayout}
> >
<Row> <Row gutter={20}>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="中文名称" label="中文名称"
...@@ -31,7 +48,7 @@ const TemplateActionHeader = (props) => { ...@@ -31,7 +48,7 @@ const TemplateActionHeader = (props) => {
labelAlign="left" labelAlign="left"
rules={[{ required: true, message: '请输入中文名称!' }]} rules={[{ required: true, message: '请输入中文名称!' }]}
> >
<Input /> <Input placeholder='请输入中文名称' />
</Form.Item> </Form.Item>
</Col> </Col>
<Col span={12}> <Col span={12}>
...@@ -41,11 +58,11 @@ const TemplateActionHeader = (props) => { ...@@ -41,11 +58,11 @@ const TemplateActionHeader = (props) => {
labelAlign="left" labelAlign="left"
rules={[{ required: true, message: '请输入英文名称!' }]} rules={[{ required: true, message: '请输入英文名称!' }]}
> >
<Input /> <Input placeholder='请输入英文名称' />
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
<Row> <Row gutter={20}>
<Col span={12}> <Col span={12}>
<Form.Item <Form.Item
label="描述" label="描述"
...@@ -53,7 +70,21 @@ const TemplateActionHeader = (props) => { ...@@ -53,7 +70,21 @@ const TemplateActionHeader = (props) => {
labelAlign="left" labelAlign="left"
rules={[{ required: true, message: '请输入描述!' }]} rules={[{ required: true, message: '请输入描述!' }]}
> >
<TextArea rows={4} /> <TextArea rows={4} placeholder='请输入描述' />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
label="规范"
name="constraintName"
labelAlign="left"
rules={[{ required: true, message: '请选择规范!' }]}
>
<Select placeholder='请选择规范'>
{
constraints?.map((constraint, index) => <Select.Option key={index} value={constraint.name}>{constraint.cnName}</Select.Option> )
}
</Select>
</Form.Item> </Form.Item>
</Col> </Col>
</Row> </Row>
...@@ -63,6 +94,7 @@ const TemplateActionHeader = (props) => { ...@@ -63,6 +94,7 @@ const TemplateActionHeader = (props) => {
<Descriptions.Item label="中文名称">{templateData.cnName||''}</Descriptions.Item> <Descriptions.Item label="中文名称">{templateData.cnName||''}</Descriptions.Item>
<Descriptions.Item label="英文名称">{templateData.name||''}</Descriptions.Item> <Descriptions.Item label="英文名称">{templateData.name||''}</Descriptions.Item>
<Descriptions.Item label="描述">{templateData.remark||''}</Descriptions.Item> <Descriptions.Item label="描述">{templateData.remark||''}</Descriptions.Item>
<Descriptions.Item label="规范">{templateData.constraintCnName||''}</Descriptions.Item>
</Descriptions> </Descriptions>
) )
) )
......
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { Table, Button, Tooltip, Modal, Divider } from 'antd'; import { Table, Button, Tooltip, Modal, Divider, Select, Space } from 'antd';
import { Action, TemplateId } from '../../../../util/constant'; import { Action, TemplateId } from '../../../../util/constant';
import { dispatch } from '../../../../model'; import { dispatch } from '../../../../model';
import { showMessage } from '../../../../util'; import { showMessage } from '../../../../util';
const TemplateCURD = (props) => { const TemplateCURD = (props) => {
const [constraints, setConstraints] = useState([]);
const [ templates, setTemplates ] = useState([]); const [ templates, setTemplates ] = useState([]);
const [ loading, setLoading ] = useState(false); const [ loading, setLoading ] = useState(false);
const [currentConstraint, setCurrentConstraint] = useState(undefined);
const [modal, contextHolder] = Modal.useModal(); const [modal, contextHolder] = Modal.useModal();
useEffect(() => { useEffect(() => {
getConstraints();
}, [])
useEffect(() => {
getTemplates(); getTemplates();
window?.addEventListener("storage", storageChange);
window?.addEventListener("storage", (e) => { return () => {
if (e.key === 'templateChange') { window?.removeEventListener("storage", storageChange);
getTemplates(); }
} }, [currentConstraint])
});
}, []) const storageChange = (e) => {
if (e.key === 'templateChange') {
getTemplates();
}
}
const columns = [ const columns = [
{ {
...@@ -61,10 +69,16 @@ const TemplateCURD = (props) => { ...@@ -61,10 +69,16 @@ const TemplateCURD = (props) => {
ellipsis: true, ellipsis: true,
}, },
{ {
title: '规范',
dataIndex: 'constraintCnName',
ellipsis: true,
},
{
title: '更新时间', title: '更新时间',
dataIndex: 'modifiedTs', dataIndex: 'modifiedTs',
width: 120, width: 150,
ellipsis: true, ellipsis: true,
render: (_, record) => record.modifiedTs ? new Date(record.modifiedTs).toLocaleString() : ''
}, },
{ {
title: '操作', title: '操作',
...@@ -99,10 +113,22 @@ const TemplateCURD = (props) => { ...@@ -99,10 +113,22 @@ const TemplateCURD = (props) => {
} }
]; ];
const getConstraints = () => {
dispatch({
type: 'datamodel.getAllConstraints',
callback: data => {
setConstraints(data);
},
})
}
const getTemplates = () => { const getTemplates = () => {
setLoading(true); setLoading(true);
dispatch({ dispatch({
type: 'datamodel.getAllTemplates', type: 'datamodel.getAllTemplates',
payload: {
constraintName: currentConstraint
},
callback: data => { callback: data => {
setTemplates(data||[]); setTemplates(data||[]);
setLoading(false); setLoading(false);
...@@ -148,12 +174,23 @@ const TemplateCURD = (props) => { ...@@ -148,12 +174,23 @@ const TemplateCURD = (props) => {
return ( return (
<div> <div>
<div className='d-flex mb-3' style={{ alignItems: 'center' }}> <div className='d-flex mb-3' style={{ alignItems: 'center', justifyContent: 'space-between' }}>
<Button <Button
onClick={onAddClick} onClick={onAddClick}
> >
新建 新建
</Button> </Button>
<Select
placeholder='请选择规范'
allowClear
style={{ width: 200 }}
onChange={(val) => {
setCurrentConstraint(val);
}}>
{
constraints?.map((constraint, index) => <Select.Option key={index} value={constraint.name}>{constraint.cnName}</Select.Option> )
}
</Select>
</div> </div>
<Table <Table
loading={loading} loading={loading}
......
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