yxk-20260804

改善提案-bug修复
已办记录仍携带历史 taskId、taskDefKey,但对应 Flowable 运行任务已结束。BPM 表单误调用了仅允许当前待办访问的评分/选人接口,导致基础信息加载整体失败。
Implementation Changes
修改 ImprovementProposalBPMForm.vue 的 loadProposal:仅当 showProcessHandle=true 时调用 queryMyDeptScore。
showProcessHandle 继续以 formBpm=true、PROCESS_TAB_TYPE='run'、存在当前 taskId 为条件。

Task4 的 queryInstituteVoteCandidates 同样增加 showProcessHandle 条件,避免已办历史记录访问当前节点专用接口。
已办、已阅、流程历史页面仅加载主表和通用投票记录,保持基本信息只读展示;不显示流程办理区域,也不请求当前任务校验接口。
不修改后端 validateRunningTask、评分权限校验或运行待办的正常评分逻辑。
This commit is contained in:
ye1023
2026-08-04 10:45:22 +08:00
parent 9175cff789
commit e75088147f
@@ -377,7 +377,8 @@
const [main, votes, myScore] = await Promise.all([ const [main, votes, myScore] = await Promise.all([
queryDataById(mainId), queryDataById(mainId),
queryImprovementInstituteVoteListByMainId(mainId), queryImprovementInstituteVoteListByMainId(mainId),
isTask('Task_improve002') && processInfo.value.processInstanceId && processInfo.value.taskId // 已办记录会保留历史 taskId;只有运行中的待办才能调用需要 Flowable 当前任务校验的个人评分接口。
showProcessHandle.value && isTask('Task_improve002') && processInfo.value.processInstanceId && processInfo.value.taskId
? queryMyDeptScore(processInfo.value) ? queryMyDeptScore(processInfo.value)
: Promise.resolve(null), : Promise.resolve(null),
]); ]);
@@ -388,7 +389,7 @@
initialAward.value = proposal.value.initialAward || ''; initialAward.value = proposal.value.initialAward || '';
leaderFinalAward.value = proposal.value.leaderFinalAward || ''; leaderFinalAward.value = proposal.value.leaderFinalAward || '';
finalAward.value = resolveInitialFinalAward(proposal.value); finalAward.value = resolveInitialFinalAward(proposal.value);
if (isTask('Task_improve004') && processInfo.value.processInstanceId && processInfo.value.taskId) { if (showProcessHandle.value && isTask('Task_improve004') && processInfo.value.processInstanceId && processInfo.value.taskId) {
instituteVoteCandidates.value = await queryInstituteVoteCandidates(processInfo.value); instituteVoteCandidates.value = await queryInstituteVoteCandidates(processInfo.value);
const candidateIds = new Set(instituteVoteCandidates.value.map((item) => String(item.id))); const candidateIds = new Set(instituteVoteCandidates.value.map((item) => String(item.id)));
// 流程提交失败后重新打开 Task4 时,回显本次尚未流转的有效名单。 // 流程提交失败后重新打开 Task4 时,回显本次尚未流转的有效名单。