xjj hace 2 años
padre
commit
50adefce06
Se han modificado 4 ficheros con 50 adiciones y 15 borrados
  1. 25 5
      src/pages/Detail/FlowModal.js
  2. 12 3
      src/pages/Flow/Flow.js
  3. 2 1
      src/pages/Flow/models/flow.js
  4. 11 6
      src/pages/List/List.js

+ 25 - 5
src/pages/Detail/FlowModal.js

@@ -1,5 +1,18 @@
 import React, { useEffect, useState, useRef, useMemo, memo } from 'react';
-import { Modal, Input, Select, List, Row, Col, Table, message, Steps, Space, Button, Popover } from 'antd';
+import {
+  Modal,
+  Input,
+  Select,
+  List,
+  Row,
+  Col,
+  Table,
+  message,
+  Steps,
+  Space,
+  Button,
+  Popover,
+} from 'antd';
 import Flow from '@/components/Flow/index';
 import { connect } from 'dva';
 import { GetTokenFromUrl, getToken } from '@/utils/utils';
@@ -29,6 +42,7 @@ function FlowModal(props) {
     dispatch,
     isOut,
     onCommit,
+    commitLoading,
     currentUser,
   } = props;
   const [data, setData] = useState([]);
@@ -232,9 +246,13 @@ function FlowModal(props) {
 
           // 显示拒绝原因
           if (item.audit_comment) {
-            dom = <Popover content={item.audit_comment} title="原因">{txt}</Popover>
+            dom = (
+              <Popover content={item.audit_comment} title="原因">
+                {txt}
+              </Popover>
+            );
           } else {
-            dom = txt
+            dom = txt;
           }
           return item.audit_status != 0 ? (
             <Button onClick={() => handleChangeClick(item)}>{dom}</Button>
@@ -328,9 +346,11 @@ function FlowModal(props) {
         visible={versionVisible}
         onClose={() => setVersionVisible(false)}
         onOk={values => {
-          onCommit?.(values);
-          setVersionVisible(false);
+          onCommit?.(values, null, () => {
+            setVersionVisible(false);
+          });
         }}
+        loading={commitLoading}
       />
     </>
   );

+ 12 - 3
src/pages/Flow/Flow.js

@@ -2,7 +2,7 @@ import Flow, { FLOW_TYPE } from '@/components/Flow';
 import { connect } from 'dva';
 import React, { useEffect } from 'react';
 import { UnityAction } from '@/utils/utils';
-import { Button } from 'antd';
+import { Button, Spin } from 'antd';
 import router from 'umi/router';
 
 @connect(({ xflow, user }) => ({
@@ -11,6 +11,11 @@ import router from 'umi/router';
   permission: user.currentUser.Permission,
 }))
 class FlowPage extends React.PureComponent {
+  constructor(props) {
+    super(props);
+    this.state = { spinning: false };
+  }
+
   onUpdate(node) {
     const { dispatch, flowDetail } = this.props;
     let params = {
@@ -31,6 +36,9 @@ class FlowPage extends React.PureComponent {
         nodeId: node.Id,
         body: params,
       },
+      callback: () => {
+        this.setState({ spinning: false });
+      },
     });
   }
 
@@ -59,6 +67,7 @@ class FlowPage extends React.PureComponent {
 
     UnityAction.on('NODE_SAVE', nodeConfig => {
       this.onUpdate(nodeConfig);
+      this.setState({ spinning: true });
     });
   }
   componentWillUnmount() {
@@ -83,7 +92,7 @@ class FlowPage extends React.PureComponent {
     }
 
     return (
-      <div>
+      <Spin spinning={this.state.spinning}>
         {/* <Form></Form> */}
         <Button style={{ marginBottom: 20 }} onClick={() => router.go(-1)}>
           返回
@@ -95,7 +104,7 @@ class FlowPage extends React.PureComponent {
             // onUpdate={node => this.onUpdate(node)}
           />
         )}
-      </div>
+      </Spin>
     );
   }
 }

+ 2 - 1
src/pages/Flow/models/flow.js

@@ -195,10 +195,11 @@ export default {
         payload: { flowList: res.data },
       });
     },
-    *updateNode({ payload }, { call, put }) {
+    *updateNode({ payload, callback }, { call, put }) {
       const data = yield call(updateNode, payload);
       console.log(data);
       message.success('修改成功');
+      callback && callback();
     },
     *queryAuditList({ payload }, { call, put }) {
       const response = yield call(queryAuditList, payload);

+ 11 - 6
src/pages/List/List.js

@@ -1,5 +1,5 @@
 import React, { useState, useEffect } from 'react';
-import { Table} from 'antd';
+import { Table } from 'antd';
 import { connect } from 'dva';
 import router from 'umi/router';
 import FlowModal from '../Detail/FlowModal';
@@ -13,6 +13,7 @@ function List(props) {
   const [versionVisible, setVersionVisible] = useState(false);
   const [flowDetail, setFlowDetail] = useState();
   const [loading2, setLoading2] = useState(false);
+  const [commitLoading, setCommitLoading] = useState(false);
 
   let token = getToken();
 
@@ -35,9 +36,9 @@ function List(props) {
       width: '35%',
       render: item => {
         if (!item.is_parent) return '';
-        let p = project.list.find(p => p.id == item.project_id)
-        if(p) return `${p.project_name}(${p.project_full_code})`
-      }
+        let p = project.list.find(p => p.id == item.project_id);
+        if (p) return `${p.project_name}(${p.project_full_code})`;
+      },
     },
     {
       title: '操作',
@@ -65,7 +66,7 @@ function List(props) {
       },
     },
   ];
-  console.log(project)
+  console.log(project);
   const queryList = page => {
     console.log(page);
     dispatch({
@@ -108,7 +109,7 @@ function List(props) {
     return !loadingVersion.effects['detail/queryComment'] && loadingVersion.models.detail;
   };
 
-  const onCommit = async (values, id) => {
+  const onCommit = async (values, id, callback) => {
     let currentNode = flowDetail.nodes.find?.(item => item.Id == version.template_node_id);
     let sheets = await queryRecordSheet({ gridKey: version.id, 'JWT-TOKEN': token });
     // if (!currentNode.muti_version) {
@@ -136,6 +137,7 @@ function List(props) {
       data: sheets,
       base_id: version.id,
     };
+    setCommitLoading(true);
     dispatch({
       type: 'list/commitSheet',
       payload: params,
@@ -144,6 +146,8 @@ function List(props) {
         const data = await queryBoomFlowDetail({ id: newVersion.template_id });
         console.log(data);
         setFlowDetail(data);
+        setCommitLoading(false);
+        callback && callback();
       },
     });
   };
@@ -166,6 +170,7 @@ function List(props) {
         version={version}
         onCommit={onCommit}
         onChangeVersion={version => changeVersion(version)}
+        commitLoading={commitLoading}
       />
     </div>
   );