diff --git a/src/views/gh/improvementProposal/ImprovementProposal.data.ts b/src/views/gh/improvementProposal/ImprovementProposal.data.ts index 10f1848..e8a7ba8 100644 --- a/src/views/gh/improvementProposal/ImprovementProposal.data.ts +++ b/src/views/gh/improvementProposal/ImprovementProposal.data.ts @@ -131,6 +131,38 @@ export const improvementDeptScoreColumns: JVxeColumn[] = [ { required: true, message: '${title}不能为空' }, ], }, + { + title: '安全得分', + key: 'safetyScore', + type: JVxeTypes.inputNumber, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '质量得分', + key: 'qualityScore', + type: JVxeTypes.inputNumber, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '效率得分', + key: 'efficiencyScore', + type: JVxeTypes.inputNumber, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '成本得分', + key: 'costScore', + type: JVxeTypes.inputNumber, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, { title: '改善效果得分', key: 'effectScore', @@ -292,13 +324,17 @@ export const superQuerySchema = { scorerId: {title: '评委ID',order: 2,view: 'text', type: 'string',}, scorerName: {title: '评委姓名',order: 3,view: 'text', type: 'string',}, scoreStatus: {title: '评分状态:pending/completed',order: 4,view: 'text', type: 'string',}, - effectScore: {title: '改善效果得分',order: 5,view: 'number', type: 'number',}, - promotionScore: {title: '可推广度得分',order: 6,view: 'number', type: 'number',}, - originalityScore: {title: '独创性得分',order: 7,view: 'number', type: 'number',}, - effortScore: {title: '努力度得分',order: 8,view: 'number', type: 'number',}, - totalScore: {title: '加权总分',order: 9,view: 'number', type: 'number',}, - scoreOpinion: {title: '评分意见',order: 10,view: 'textarea', type: 'string',}, - scoreTime: {title: '评分时间',order: 11,view: 'datetime', type: 'string',}, + safetyScore: {title: '安全得分',order: 5,view: 'number', type: 'number',}, + qualityScore: {title: '质量得分',order: 6,view: 'number', type: 'number',}, + efficiencyScore: {title: '效率得分',order: 7,view: 'number', type: 'number',}, + costScore: {title: '成本得分',order: 8,view: 'number', type: 'number',}, + effectScore: {title: '改善效果平均得分',order: 9,view: 'number', type: 'number',}, + promotionScore: {title: '可推广度得分',order: 10,view: 'number', type: 'number',}, + originalityScore: {title: '独创性得分',order: 11,view: 'number', type: 'number',}, + effortScore: {title: '努力度得分',order: 12,view: 'number', type: 'number',}, + totalScore: {title: '加权总分',order: 13,view: 'number', type: 'number',}, + scoreOpinion: {title: '评分意见',order: 14,view: 'textarea', type: 'string',}, + scoreTime: {title: '评分时间',order: 15,view: 'datetime', type: 'string',}, } }, improvementInstituteVote: { diff --git a/src/views/gh/improvementProposal/components/ImprovementProposalBPMForm.vue b/src/views/gh/improvementProposal/components/ImprovementProposalBPMForm.vue index ca8b155..350f4ea 100644 --- a/src/views/gh/improvementProposal/components/ImprovementProposalBPMForm.vue +++ b/src/views/gh/improvementProposal/components/ImprovementProposalBPMForm.vue @@ -112,9 +112,23 @@ - + - + + + + + + + + + + + + + + +
改善效果得分按安全、质量、效率、成本四项的平均分自动计算:{{ effectAveragePreview }}
@@ -218,6 +232,11 @@ if (!currentScore.value) return '未保存'; return scoreLocked.value ? '评分已锁定' : '已保存,待流程提交'; }); + const effectAveragePreview = computed(() => { + const values = ['safetyScore', 'qualityScore', 'efficiencyScore', 'costScore'].map((key) => scoreForm.value[key]); + if (values.some((value) => value === undefined || value === null)) return '-'; + return (values.reduce((sum, value) => sum + Number(value), 0) / values.length).toFixed(2); + }); const currentVote = computed(() => voteRows.value.find((item) => String(item.voterId) === currentUserId.value)); watch( @@ -318,7 +337,10 @@ function openScoreModal() { const score = currentScore.value; scoreForm.value = { - effectScore: score?.effectScore ?? undefined, + safetyScore: score?.safetyScore ?? undefined, + qualityScore: score?.qualityScore ?? undefined, + efficiencyScore: score?.efficiencyScore ?? undefined, + costScore: score?.costScore ?? undefined, promotionScore: score?.promotionScore ?? undefined, originalityScore: score?.originalityScore ?? undefined, effortScore: score?.effortScore ?? undefined, @@ -329,7 +351,7 @@ async function saveScoreDraft() { if (!hasValidScoreValues()) { - createMessage.warning('请完整填写 0 到 100 分之间的四项评分'); + createMessage.warning('请完整填写 0 到 100 分之间的七项评分'); return; } savingScore.value = true; @@ -346,7 +368,10 @@ function createEmptyScoreForm() { return { - effectScore: undefined, + safetyScore: undefined, + qualityScore: undefined, + efficiencyScore: undefined, + costScore: undefined, promotionScore: undefined, originalityScore: undefined, effortScore: undefined, @@ -355,7 +380,7 @@ } function hasValidScoreValues() { - return ['effectScore', 'promotionScore', 'originalityScore', 'effortScore'].every((key) => { + return ['safetyScore', 'qualityScore', 'efficiencyScore', 'costScore', 'promotionScore', 'originalityScore', 'effortScore'].every((key) => { const value = scoreForm.value[key]; return value !== undefined && value !== null && Number(value) >= 0 && Number(value) <= 100; });