refactor(workflow): 优化表单渲染逻辑

- 使用 parserKey 替代时间戳作为 parser组件的 key,提升性能
- 仅在加载新表单时更新 parserKey,减少不必要的渲染- 移除了冗余的角色、部门和发起人相关的代码块
This commit is contained in:
JR
2025-08-22 15:46:42 +08:00
parent 1b73a97ec1
commit 326c7c760a

View File

@@ -6,7 +6,7 @@
</div>
<el-col :span="18" :offset="3">
<div class="form-conf" v-if="formOpen">
<parser :key="new Date().getTime()" :form-conf="formData" ref="parser" @getData="getData"/>
<parser :key="parserKey" :form-conf="formData" ref="parser" @getData="getData"/>
</div>
<!-- 审批负责人设置 -->
@@ -104,6 +104,7 @@ export default {
procInsId: null,
formOpen: false,
formData: {},
parserKey: 1,
// 审批表单
approvalForm: {
approvalType: 1, // 默认指定用户
@@ -152,6 +153,7 @@ export default {
this.formData = res.data;
// 表单按钮隐藏
this.formData.formBtns = false;
this.parserKey++ // 只有加载新表单时才更新 key
this.formOpen = true
}
})
@@ -202,21 +204,6 @@ export default {
formData.flowable.candidateUsers = this.approvalUsers.map(user => user.userId).join(',');
formData.flowable.candidateGroups = '';
formData.flowable.text = this.approvalUsers.map(user => user.nickName).join(',');
} else if (this.approvalForm.approvalType === 2) {
// 角色
formData.flowable = formData.flowable || {};
formData.flowable.candidateUsers = '';
formData.flowable.candidateGroups = 'ROLE_';
} else if (this.approvalForm.approvalType === 3) {
// 部门
formData.flowable = formData.flowable || {};
formData.flowable.candidateUsers = '';
formData.flowable.candidateGroups = 'DEPT_';
} else if (this.approvalForm.approvalType === 4) {
// 发起人
formData.flowable = formData.flowable || {};
formData.flowable.candidateUsers = '';
formData.flowable.candidateGroups = '';
}
// 启动流程并将表单数据加入流程变量