Commit a5d65a17 by zhaochengxiang

模型批量送审

parent cfa6132f
...@@ -210,6 +210,10 @@ export function* recommandEnglishWords(payload) { ...@@ -210,6 +210,10 @@ export function* recommandEnglishWords(payload) {
return yield call(datamodelerService.recommandEnglishWords, payload); return yield call(datamodelerService.recommandEnglishWords, payload);
} }
export function* startFlow(payload) {
return yield call(datamodelerService.startFlow, payload);
}
export function* getDatasourcesByEnv(payload) { export function* getDatasourcesByEnv(payload) {
return yield call(datamodelerService.getDatasourcesByEnv, payload); return yield call(datamodelerService.getDatasourcesByEnv, payload);
} }
......
...@@ -181,6 +181,10 @@ export function recommandEnglishWords(payload) { ...@@ -181,6 +181,10 @@ export function recommandEnglishWords(payload) {
return PostJSON("/datamodeler/easyDataModelerDesign/recommandEnglishWords", payload); return PostJSON("/datamodeler/easyDataModelerDesign/recommandEnglishWords", payload);
} }
export function startFlow(payload) {
return PostJSON("/datamodeler/easyDataModelerWorkflowSupport/startModelFlow", payload);
}
export function getDatasourcesByEnv (payload) { export function getDatasourcesByEnv (payload) {
return GetJSON("/metadatarepo/rest/metadata/findByModelAndSys", payload); return GetJSON("/metadatarepo/rest/metadata/findByModelAndSys", payload);
} }
......
...@@ -124,9 +124,12 @@ const EditModel = (props) => { ...@@ -124,9 +124,12 @@ const EditModel = (props) => {
setModelerData(data); setModelerData(data);
} }
const onCatalogModalCancel = (id) => { const onCatalogModalCancel = (id = null) => {
setCatalogModalVisible(false); setCatalogModalVisible(false);
save(null, id);
if ((id||'') !== '') {
save(null, id);
}
} }
const onHistory = () => { const onHistory = () => {
......
import React, { useState, useEffect, useRef } from "react"; import React, { useState, useEffect, useRef } from "react";
import { Space, Button, Tooltip, Modal, Divider, Pagination, Table } from 'antd'; import { Space, Button, Tooltip, Modal, Divider, Pagination, Table } from 'antd';
import { EditOutlined, DeleteOutlined, DownOutlined, UpOutlined, HistoryOutlined, PullRequestOutlined } from '@ant-design/icons'; import { EditOutlined, DeleteOutlined, DownOutlined, UpOutlined, HistoryOutlined } from '@ant-design/icons';
import SmoothScroll from 'smooth-scroll'; import SmoothScroll from 'smooth-scroll';
import classnames from 'classnames'; import classnames from 'classnames';
......
import React, { useState } from 'react';
import { Modal, Form, Input } from 'antd';
import LocalStorage from 'local-storage';
import { dispatchLatest } from '../../../../model';
const StartFlowModal = (props) => {
const { visible, onCancel, ids } = props;
const [ form ] = Form.useForm();
const [ confirmLoading, setConfirmLoading ] = useState(false);
const formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 4 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 20 },
},
};
const handleOk = async () => {
try {
const values = await form.validateFields();
setConfirmLoading(true);
dispatchLatest({
type: 'user.fetchSessionInfo',
callback: session => {
dispatchLatest({
type: 'datamodel.startFlow',
payload: {
params: {
user: session?.userName,
modelIds: ids.join(','),
flowDesc: values?.desc
}
},
callback: () => {
reset();
LocalStorage.set('modelChange', !(LocalStorage.get('modelChange')||false));
onCancel && onCancel(true);
},
error: () => {
setConfirmLoading(false);
}
})
},
error: () => {
setConfirmLoading(false);
}
})
} catch (errInfo) {
}
}
const reset = () => {
setConfirmLoading(false);
form.resetFields();
}
return (
<Modal
forceRender
visible={visible}
title='模型送审'
width={520}
confirmLoading={confirmLoading}
onCancel={() => {
reset();
onCancel && onCancel();
}}
onOk={handleOk}
>
<Form
{...formItemLayout}
form={form}
>
<Form.Item
label="送审内容"
name="desc"
rules={[{ required: true, message: '请填写送审内容' }]}
>
<Input.TextArea rows={6} />
</Form.Item>
</Form>
</Modal>
);
}
export default StartFlowModal;
\ No newline at end of file
...@@ -14,6 +14,7 @@ import ImportStockWordDrawer from './Component/ImportStockWordDrawer'; ...@@ -14,6 +14,7 @@ import ImportStockWordDrawer from './Component/ImportStockWordDrawer';
import ExportDDLModal from './Component/ExportDDLModal'; import ExportDDLModal from './Component/ExportDDLModal';
import RecatalogModal from './Component/RecatalogModal'; import RecatalogModal from './Component/RecatalogModal';
import HistoryAndVersionDrawer from './Component/HistoryAndVersionDrawer'; import HistoryAndVersionDrawer from './Component/HistoryAndVersionDrawer';
import StartFlowModal from './Component/StartFlowModal';
import { showMessage, showNotifaction } from '../../../util'; import { showMessage, showNotifaction } from '../../../util';
import { dispatch, dispatchLatest } from '../../../model'; import { dispatch, dispatchLatest } from '../../../model';
import { Action, CatalogId, ModelerId, Hints, ModelerData, PermitCheckOut, Editable, StateId } from '../../../util/constant'; import { Action, CatalogId, ModelerId, Hints, ModelerData, PermitCheckOut, Editable, StateId } from '../../../util/constant';
...@@ -37,6 +38,7 @@ class Model extends React.Component { ...@@ -37,6 +38,7 @@ class Model extends React.Component {
exportDDLModalVisible: false, exportDDLModalVisible: false,
recatalogModalVisible: false, recatalogModalVisible: false,
historyAndVersionDrawerVisible: false, historyAndVersionDrawerVisible: false,
startFlowModalVisible: false,
catalogId: '', catalogId: '',
importModalAction: '', importModalAction: '',
importModalAddMode: '', importModalAddMode: '',
...@@ -320,6 +322,16 @@ class Model extends React.Component { ...@@ -320,6 +322,16 @@ class Model extends React.Component {
window.open(`/api/datamodeler/easyDataModelerExport/word/template?ids=${selectModelerIds.join(',')}`); window.open(`/api/datamodeler/easyDataModelerExport/word/template?ids=${selectModelerIds.join(',')}`);
} }
startFlow = () => {
const { selectModelerIds } = this.state;
if ((selectModelerIds||[]).length === 0) {
showMessage('info', '请先选择模型');
return;
}
this.setState({ startFlowModalVisible: true });
}
onRecatalogBtnClick = () => { onRecatalogBtnClick = () => {
const { selectModelerIds } = this.state; const { selectModelerIds } = this.state;
if ((selectModelerIds||[]).length === 0) { if ((selectModelerIds||[]).length === 0) {
...@@ -412,6 +424,14 @@ class Model extends React.Component { ...@@ -412,6 +424,14 @@ class Model extends React.Component {
this.setState({ historyAndVersionDrawerVisible: false }); this.setState({ historyAndVersionDrawerVisible: false });
} }
onStartFlowModalCancel = (refresh) => {
this.setState({ startFlowModalVisible: false });
if (refresh) {
this.onTableChange();
}
}
importStockModel = () => { importStockModel = () => {
const { catalogId } = this.state; const { catalogId } = this.state;
...@@ -463,7 +483,7 @@ class Model extends React.Component { ...@@ -463,7 +483,7 @@ class Model extends React.Component {
} }
render() { render() {
const { importModalVisible, catalogId, loadingTableData, selectModelerIds, keyword, filterTableData, selectModelerNames, importModalAddMode, exportDDLModalVisible, templateCURDDrawerVisible, wordTemplateModalVisible, constraintDetailDrawerVisible, importWordModalVisible, importStockWordDrawerVisible , loadingStates, modelStates, currentModelState, currentView, recatalogModalVisible, exportDDLModalReference, currentModel, offset, historyAndVersionDrawerVisible, modelerId } = this.state; const { importModalVisible, catalogId, loadingTableData, selectModelerIds, keyword, filterTableData, selectModelerNames, importModalAddMode, exportDDLModalVisible, templateCURDDrawerVisible, wordTemplateModalVisible, constraintDetailDrawerVisible, importWordModalVisible, importStockWordDrawerVisible , loadingStates, modelStates, currentModelState, currentView, recatalogModalVisible, exportDDLModalReference, currentModel, offset, historyAndVersionDrawerVisible, modelerId, startFlowModalVisible } = this.state;
const content = ( const content = (
<ModelTable <ModelTable
...@@ -597,9 +617,12 @@ class Model extends React.Component { ...@@ -597,9 +617,12 @@ class Model extends React.Component {
<Button type='primary'>模型导出<DownOutlined /></Button> <Button type='primary'>模型导出<DownOutlined /></Button>
</Dropdown> </Dropdown>
</Space> </Space>
<Space>
<Button type='primary' onClick={this.startFlow}>模型送审</Button>
</Space>
<Space> <Space>
<Button type='primary' onClick={() => { this.onRecatalogBtnClick(); }}> <Button type='primary' onClick={this.onRecatalogBtnClick}>
模型变更目录 模型变更目录
</Button> </Button>
</Space> </Space>
...@@ -677,6 +700,12 @@ class Model extends React.Component { ...@@ -677,6 +700,12 @@ class Model extends React.Component {
visible={historyAndVersionDrawerVisible} visible={historyAndVersionDrawerVisible}
onCancel={this.onHistoryAndVersionDrawerCancel} onCancel={this.onHistoryAndVersionDrawerCancel}
/> />
<StartFlowModal
ids={selectModelerIds}
visible={startFlowModalVisible}
onCancel={this.onStartFlowModalCancel}
/>
</div> </div>
); );
} }
......
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