From 50d46dfe34adfba168c2a47239c75c6ca2761043 Mon Sep 17 00:00:00 2001
From: pengm <674192343@qq.com>
Date: Wed, 26 Nov 2025 14:10:55 +0800
Subject: [PATCH] 1.同步审批流单据展示逻辑,同意,驳回等按钮点击后增加loading
---
src/components/Common/CommonExamInfo/index.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 51 insertions(+), 6 deletions(-)
diff --git a/src/components/Common/CommonExamInfo/index.js b/src/components/Common/CommonExamInfo/index.js
index 5dc5d26..83ac453 100644
--- a/src/components/Common/CommonExamInfo/index.js
+++ b/src/components/Common/CommonExamInfo/index.js
@@ -1,11 +1,11 @@
/* eslint-disable */
import React, { Component } from 'react';
import moment from 'moment';
-import { Input, Layout, Steps, Select, Button, Modal,message, Spin } from 'antd-v4';
+import { Input, Layout, Steps, Select, Button, Modal,message, Spin } from 'antd';
import { UserOutlined } from '@ant-design/icons';
import * as commonUtils from '@/utils/utils';/* 通用方法 */
import * as commonServices from '@/services/services';/* 服务类 */
-import commonConfig from '../../../utils/config';
+import * as commonConfig from '../../../utils/config';
import flowPicture2 from '@/assets/flow/flowpic.png';
import styles from './index.less';
import AntdDraggableModal from "../AntdDraggableModal";
@@ -47,6 +47,23 @@ class CommonExamInfo extends Component {
message.warn("请输入驳回理由!")
return;
}
+ // 如果是同意按钮,设置loading状态并开始进度计
+ this.setState({
+ flowLoading: true,
+ progressCount: 0
+ });
+
+ // 模拟进度计数直到101
+ const progressInterval = setInterval(() => {
+ this.setState(prevState => {
+ const newCount = prevState.progressCount + 1;
+ if (newCount > 101) {
+ clearInterval(progressInterval);
+ return { progressCount: 101 };
+ }
+ return { progressCount: newCount };
+ });
+ }, 50); // 每50ms增加1,大约5秒到101
const bizFlowVo = sFlowObj.bizFlowVo;
const sTableParamsValue= sFlowObj.bizFlowVo?.sTableParamsValue;
const sFormData= commonUtils.isNotEmptyObject(sTableParamsValue) ? JSON.parse(sTableParamsValue) : {};
@@ -63,6 +80,8 @@ class CommonExamInfo extends Component {
const sValue = this.state[name];
if (btnName === 'agree' && commonUtils.isEmptyObject(sValue)) {
message.warn(`${child.title} 为必填项!`);
+ // 如果是同意按钮,清除loading状态
+ this.setState({ flowLoading: false });
return;
}
sFormData[name]= sValue;
@@ -94,7 +113,10 @@ class CommonExamInfo extends Component {
data.selectMap = {};
data.comment = textareaValue;
const { token }= this.props;
- console.log('data传参', data);
+
+ // console.log('接口开始执行,等待1分钟...');
+ // await new Promise(resolve => setTimeout(resolve, 10000));
+ // console.log('1分钟等待结束,开始处理请求');
const sReturn = (await commonServices.postValueService(token, data, url)).data;
if(commonUtils.isNotEmptyObject(sReturn)) {
if (sReturn.code > 0 || sReturn.code === 0) {
@@ -126,14 +148,24 @@ class CommonExamInfo extends Component {
// if (iframeDoc.document) iframeDoc = iframeDoc.document; // 处理IE兼容性
iframeWindow.location.reload(); // 刷新iframe中的页面
}
- this.setState({ historyNewList: historyList, bHandleShow: false, flowLoading: false}) ;
+ // 确保进度计数到101后清除loading状态
+ this.setState({
+ historyNewList: historyList,
+ bHandleShow: false,
+ flowLoading: false,
+ progressCount: 101
+ });
}
} else {
this.props.getServiceError(sReturn);
+ // 操作失败时清除loading状态
+ this.setState({ flowLoading: false });
}
}else {
message.warn('操作异常!')
+ // 操作异常时清除loading状态
+ this.setState({ flowLoading: false });
}
}
@@ -338,12 +370,23 @@ class CommonExamInfo extends Component {
dataDynamicList && dataDynamicList.map((child) => {
const name = child.name;
const title = child.title;
- const value = child.value;
+ let value = child.value;
let bEdit = !child.bEdit; /* 是否编辑 */
+ const sRealValue = child.sRealValue;
/* 如果 isHandle 为 true,代表只能查看, 就不允许编辑 */
if(bEdit) {
bEdit = !isHandle;
}
+ let bHtml =false;
+ if(commonUtils.isNotEmptyObject(value)) {
+ if(value.includes('br')) {
+ value = String(value).replace(/
/gi, '\n');
+ }
+ if(value.includes('<')) {
+ value= String(value).replace(/<br\s*\/?>/gi, '\n')
+ }
+ bHtml = true;
+ }
const type= child.type; /* 文本类型 */
const bSelect = child.bSelect; /* 是否下拉 */
const selectList = child.selectList;
@@ -366,6 +409,8 @@ class CommonExamInfo extends Component {
options={selectList}
onChange={(value, option) => this.handleOptionChange(value, option, name)}
/> :
+ !bEdit && type === 's' && bSelect ?
+