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 ? +
{sRealValue}
: bEdit && type === 'm' && !bSelect ?