Commit ca8ae47a by zhaochengxiang

送审

parent d64e8680
......@@ -258,7 +258,7 @@ export function recommandEnglishWords(payload) {
}
export function startFlow(payload) {
return Post("/datamodeler/easyDataModelerWorkflowSupport/startModelFlow", payload);
return Post("/datamodeler/easyDataModelerWorkflowSupport/addPhysicalModelApproval", payload);
}
export function getDatasourcesByEnv (payload) {
......
import React, { useState } from 'react';
import { Modal, Form, Input } from 'antd';
import { Modal, Form, Input, Button, Spin } from 'antd';
import LocalStorage from 'local-storage';
import { dispatchLatest } from '../../../../model';
import { dispatch } from '../../../../model';
import { showNotifaction } from '../../../../util';
const StartFlowModal = (props) => {
const { visible, onCancel, ids } = props;
const { visible, onCancel, items } = props;
const [ form ] = Form.useForm();
const [ confirmLoading, setConfirmLoading ] = useState(false);
const [form] = Form.useForm();
const [waiting, setWaiting] = useState(false);
const formItemLayout = {
labelCol: {
......@@ -22,29 +22,20 @@ const StartFlowModal = (props) => {
},
};
const handleOk = async () => {
const save = async () => {
try {
const values = await form.validateFields();
setConfirmLoading(true);
dispatchLatest({
type: 'user.fetchSessionInfo',
callback: session => {
dispatchLatest({
const rows = await form.validateFields();
setWaiting(true);
dispatch({
type: 'datamodel.startFlow',
payload: {
params: {
user: session?.userName,
modelIds: ids.join(','),
flowDesc: values?.desc
data: {
modelInfoList: items,
sendReviewExplain: rows.desc,
}
},
callback: data => {
reset();
if ((data||'') !== '') {
if (data) {
showNotifaction('送审提示', data, 5);
}
......@@ -53,15 +44,10 @@ const StartFlowModal = (props) => {
event.key = 'modelChange';
window?.dispatchEvent(event);
onCancel && onCancel(true);
},
error: () => {
setConfirmLoading(false);
}
})
close(true)
},
error: () => {
setConfirmLoading(false);
setWaiting(false);
}
})
......@@ -70,36 +56,44 @@ const StartFlowModal = (props) => {
}
}
const reset = () => {
setConfirmLoading(false);
const close = (val) => {
setWaiting(false);
form.resetFields();
onCancel?.(val)
}
const footer = React.useMemo(() => {
return [
<Button key={'cancel'}
onClick={() => close()}
>取消</Button>,
<Button key={'save'} type='primary'
disabled={waiting}
onClick={() => save()}
>保存</Button>
]
}, [close, save, waiting])
return (
<Modal
forceRender
destroyOnClose
visible={visible}
title='模型送审'
width={520}
confirmLoading={confirmLoading}
onCancel={() => {
reset();
onCancel && onCancel();
}}
onOk={handleOk}
>
<Form
{...formItemLayout}
form={form}
footer={footer}
onCancel={() => { close() }}
>
<Spin spinning={waiting}>
<Form {...formItemLayout} form={form}>
<Form.Item
label="送审内容"
label="送审简述"
name="desc"
rules={[{ required: true, message: '请填写送审内容' }]}
rules={[{ required: true, message: '请填写送审简述' }]}
>
<Input.TextArea rows={6} />
</Form.Item>
</Form>
</Spin>
</Modal>
);
}
......
......@@ -586,7 +586,7 @@ class ModelComponet extends React.Component {
}
render() {
const { importModalVisible, catalogId, loadingTableData, selectModelerIds, keyword, filterTableData, selectModelerNames, exportDDLModalVisible, exportOtherModalVisible, importStockWordDrawerVisible , loadingStates, modelStates, currentModelState, currentView, recatalogModalVisible, exportDDLModalReference, currentModel, offset, historyAndVersionDrawerVisible, modelerId, startFlowModalVisible, expandTree, showMode } = this.state;
const { importModalVisible, catalogId, loadingTableData, selectModelerIds, keyword, filterTableData, selectModelerNames, exportDDLModalVisible, exportOtherModalVisible, importStockWordDrawerVisible , loadingStates, modelStates, currentModelState, currentView, recatalogModalVisible, exportDDLModalReference, currentModel, offset, historyAndVersionDrawerVisible, modelerId, startFlowModalVisible, expandTree, showMode, tableData } = this.state;
const content = (
<ModelTable
......@@ -610,13 +610,24 @@ class ModelComponet extends React.Component {
'data-model-collapse': !expandTree
});
let disableStartFlow = false, startFlowTip = '';
if ((currentView==='dir'&&currentModelState==='2')||(currentView!=='dir'&&catalogId==='2')) {
disableStartFlow = true;
startFlowTip = '只有草稿状态下的模型才能送审';
} else if ((selectModelerIds||[]).length===0) {
let disableStartFlow = false, startFlowTip = '', selectModelers = [];
if ((selectModelerIds||[]).length===0) {
disableStartFlow = true;
startFlowTip = '请先选择模型';
} else {
selectModelerIds?.forEach(id => {
let index = (tableData||[]).findIndex(item => item.id === id);
if (index !== -1) {
const modelItem = tableData[index];
selectModelers.push(modelItem);
if (modelItem.state?.id !== '1') {
disableStartFlow = true;
startFlowTip = '只有草稿状态下的模型才能送审';
}
}
});
}
return (
......@@ -652,12 +663,6 @@ class ModelComponet extends React.Component {
</Tooltip>
</Space>
{/* <Space>
<Tooltip title={startFlowTip}>
<Button onClick={this.startFlow} disabled={disableStartFlow}>送审</Button>
</Tooltip>
</Space> */}
<Space>
<Tooltip title={(selectModelerIds||[]).length===0?'请先选择模型':''}>
<Button onClick={this.onRecatalogBtnClick} disabled={(selectModelerIds||[]).length===0}>变更目录</Button>
......@@ -669,6 +674,14 @@ class ModelComponet extends React.Component {
<Button onClick={this.onBatchDeleteBtnClick} disabled={(selectModelerIds||[]).length===0}>删除</Button>
</Tooltip>
</Space>
{
(currentView==='dir' || (currentView==='state'&&catalogId==='1')) && <Space>
<Tooltip title={startFlowTip}>
<Button onClick={this.startFlow} disabled={disableStartFlow}>送审</Button>
</Tooltip>
</Space>
}
</React.Fragment>
}
......@@ -788,7 +801,7 @@ class ModelComponet extends React.Component {
/>
<StartFlowModal
ids={selectModelerIds}
items={selectModelers}
visible={startFlowModalVisible}
onCancel={this.onStartFlowModalCancel}
/>
......
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