Commit ca8ae47a by zhaochengxiang

送审

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