diff --git a/src/main/java/com/rebuild/core/service/approval/FormBuilder.java b/src/main/java/com/rebuild/core/service/approval/FormBuilder.java index 9a8e7dfa0..7dd53b758 100644 --- a/src/main/java/com/rebuild/core/service/approval/FormBuilder.java +++ b/src/main/java/com/rebuild/core/service/approval/FormBuilder.java @@ -11,7 +11,9 @@ import cn.devezhao.persist4j.Entity; import cn.devezhao.persist4j.Record; import cn.devezhao.persist4j.engine.ID; import com.alibaba.fastjson.JSONArray; +import com.rebuild.core.DefinedException; import com.rebuild.core.configuration.general.FormsBuilder; +import com.rebuild.core.support.i18n.Language; /** * 审批可修改字段表单 @@ -39,6 +41,10 @@ public class FormBuilder { */ public JSONArray build(JSONArray elements) { Record data = UseFormsBuilder.instance.findRecord(record, user, elements); + if (data == null) { + throw new DefinedException(403, Language.L("无法读取审批记录")); + } + UseFormsBuilder.instance.buildModelElements(elements, data.getEntity(), data, user); return elements; } diff --git a/src/main/java/com/rebuild/web/RebuildWebConfigurer.java b/src/main/java/com/rebuild/web/RebuildWebConfigurer.java index 71aa85c09..f60fb2b99 100644 --- a/src/main/java/com/rebuild/web/RebuildWebConfigurer.java +++ b/src/main/java/com/rebuild/web/RebuildWebConfigurer.java @@ -7,6 +7,7 @@ See LICENSE and COMMERCIAL in the project root for license information. package com.rebuild.web; +import cn.devezhao.bizz.security.AccessDeniedException; import cn.devezhao.commons.ThrowableUtils; import cn.devezhao.commons.web.ServletUtils; import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; @@ -41,7 +42,6 @@ import org.thymeleaf.spring5.view.ThymeleafViewResolver; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.nio.file.AccessDeniedException; import java.util.List; import java.util.Map; @@ -184,6 +184,8 @@ public class RebuildWebConfigurer implements WebMvcConfigurer, ErrorViewResolver } } + if (StringUtils.isBlank(errorMsg)) errorMsg = Language.L("系统繁忙,请稍后重试"); + error.getModel().put("error_code", errorCode); error.getModel().put("error_msg", errorMsg); diff --git a/src/main/resources/web/assets/js/rb-approval.js b/src/main/resources/web/assets/js/rb-approval.js index 759c3d16e..f3bc94bb3 100644 --- a/src/main/resources/web/assets/js/rb-approval.js +++ b/src/main/resources/web/assets/js/rb-approval.js @@ -219,6 +219,14 @@ class ApprovalUsersForm extends RbFormHandler { } renderUsers() { + if (this.state.hasError) { + return ( +
+ +
+ ) + } + const approverHas = (this.state.nextApprovers || []).length > 0 || this.state.approverSelfSelecting const ccHas = (this.state.nextCcs || []).length > 0 || this.state.ccSelfSelecting @@ -284,7 +292,13 @@ class ApprovalUsersForm extends RbFormHandler { } getNextStep(approval) { - $.get(`/app/entity/approval/fetch-nextstep?record=${this.props.id}&approval=${approval || this.props.approval}`, (res) => this.setState(res.data)) + $.get(`/app/entity/approval/fetch-nextstep?record=${this.props.id}&approval=${approval || this.props.approval}`, (res) => { + if (res.error_code === 0) { + this.setState({ ...res.data, hasError: null }) + } else { + this.setState({ hasError: res.error_msg }) + } + }) } } @@ -398,10 +412,10 @@ class ApprovalApproveForm extends ApprovalUsersForm { {this.renderUsers()}
(this._btns = c)}> - -