发起变更提交-等级判定表分数保存问题修改
This commit is contained in:
@@ -29,6 +29,13 @@ watch(() => props.currentForm, (newVal:any) => {
|
||||
...rest
|
||||
} = newVal;
|
||||
form.value = rest;
|
||||
// 用 Map 建立 question_id -> score 的映射,查找 O(1)
|
||||
const scoreMap = new Map(form.value?.level_score?.map((item:any) => [item.question_id, item.score]) || []);
|
||||
questions.value = questions.value.map((item:any) => ({
|
||||
...item,
|
||||
score: scoreMap.has(item.question_id) ? scoreMap.get(item.question_id) : item.score
|
||||
}));
|
||||
totalScore.value = questions.value.reduce((sum:number, item:any) => sum + (item.score || 0), 0);
|
||||
})
|
||||
|
||||
const aiFail = (e: any) => {
|
||||
@@ -69,6 +76,7 @@ const form = ref<{
|
||||
disciplines: string[],
|
||||
plan_use_date: number | null,
|
||||
risk_tools: string[],
|
||||
level_score: any[],
|
||||
}>({
|
||||
change_type: null,
|
||||
change_level: computed(() => totalScore.value >= 20 ? 2 : 1),
|
||||
@@ -85,6 +93,7 @@ const form = ref<{
|
||||
disciplines: [],
|
||||
plan_use_date: null,
|
||||
risk_tools: [],
|
||||
level_score: [],
|
||||
});
|
||||
// 变更目的选项
|
||||
const PURPOSE_OPTIONS = [
|
||||
@@ -811,7 +820,7 @@ defineExpose({form, questions, applyAiResult, generateLevel: useAiLevel})
|
||||
align-items: center;
|
||||
}
|
||||
.scroll {
|
||||
height: calc(100vh - 395px);
|
||||
height: calc(100vh - 393px);
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
@@ -72,7 +72,7 @@ const openApprovalDrawer = () => {
|
||||
if (item.members && item.members.length > 0) {
|
||||
// 优先选 is_sign=1 的成员 ,否则选第一个
|
||||
const defaultMembers = item.members
|
||||
.filter((m: any) => m.is_sign === 1)
|
||||
.filter((m: any) => m?.is_sign === 1)
|
||||
.map((m: any) => m.user_id);
|
||||
approvers.value[item.id] = defaultMembers.length > 0 ? defaultMembers : [item.members[0].user_id];
|
||||
}
|
||||
@@ -84,10 +84,11 @@ const openApprovalDrawer = () => {
|
||||
// 审批链
|
||||
const approvalChain = computed(() => {
|
||||
let template = getFlowInfo.value;
|
||||
console.log(template);
|
||||
if (!template || template.length === 0) return '暂无审批步骤'
|
||||
const parts = template.map((step: any) => {
|
||||
// 根据 countersign 决定显示名称
|
||||
const displayName = step.countersign ? '专业会签' : step.name
|
||||
const displayName = step.name
|
||||
const members = step.selectedMember
|
||||
let memberText;
|
||||
if (members && members.length > 0) {
|
||||
@@ -157,7 +158,7 @@ function matchApprovers(steps: any[], mapping: Record<number, number[]>) {
|
||||
for (const [stepId, usersId] of Object.entries(mapping)) {
|
||||
const step = steps.find(s => s.id === Number(stepId));
|
||||
if (step) {
|
||||
const members = step.members.filter((m: any) => usersId.includes(m.user_id));
|
||||
const members = props.members.filter((m: any) => usersId.includes(m.user_id));
|
||||
if (members.length > 0) {
|
||||
result.push({
|
||||
countersign: step.countersign,
|
||||
@@ -179,6 +180,7 @@ const finishApprover = async () => {
|
||||
}
|
||||
|
||||
defineExpose({clearApprovers, setRegenerateLoading})
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
Reference in New Issue
Block a user