From 3dbc8924ba2f3f2ed8770df621fc3f11e707a868 Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Thu, 12 Mar 2026 10:32:36 +0800 Subject: [PATCH] =?UTF-8?q?fix--=E5=A4=84=E7=90=86=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E5=90=8C=E6=97=B6=E9=80=89=E6=8B=A9=20?= =?UTF-8?q?=E4=B8=8D=E4=BA=88=E8=BF=BD=E8=B4=A3=E5=92=8C=E5=85=B6=E4=BB=96?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E8=83=BD=E5=90=8C=E6=97=B6=E9=80=89=E6=89=80?= =?UTF-8?q?=E5=AF=B9=E3=80=81=E5=B8=82=E5=B1=80=E3=80=81=E5=88=86=E5=B1=80?= =?UTF-8?q?=E9=80=9A=E6=8A=A5=E6=89=B9=E8=AF=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/negative/verify-sfss.vue | 63 ++++++++++++++++++++++++ src/components/negative/verify.vue | 64 +++++++++++++++++++++++++ 2 files changed, 127 insertions(+) diff --git a/src/components/negative/verify-sfss.vue b/src/components/negative/verify-sfss.vue index 60b466b..66066a8 100644 --- a/src/components/negative/verify-sfss.vue +++ b/src/components/negative/verify-sfss.vue @@ -1604,6 +1604,7 @@ import {getConfinementListAll} from "@/api/work/confinement"; import {timeFormat} from "@/utils/util"; import {maileRepeatt} from "@/api/data/complaintCollection"; import DuplicateDrawerWithDetail from "@/views/data/DuplicateDrawerWithDetail.vue"; +import feedback from "@/utils/feedback"; //获取数据 const catchSotre = useCatchStore(); @@ -2008,12 +2009,74 @@ async function validate() { (item) => item.type === BlameType.PERSONAL && !arr.includes(item.blameIdCode) ); if (blame.length) { + feedback.msgError( `涉及人员【${blame.map((item) => item.blameName).join("、")}】未关联领导`); throw new Error( `涉及人员【${blame.map((item) => item.blameName).join("、")}】未关联领导` ); } } + + // ========== 处理结果校验逻辑 ========== + // 1. 涉及人员:处理结果为14(不予追责)时,不能同时选择其他处理结果 + const personalBlames = form.value.blames.filter(item => item.type === BlameType.PERSONAL); + for (const item of personalBlames) { + if (item.handleResultCode && item.handleResultCode.length > 0) { + // 如果包含14(不予追责),则不能同时选择其他处理结果 + if (item.handleResultCode.includes('14')) { + if (item.handleResultCode.length > 1) { + feedback.msgError(`涉及人员【${item.blameName}】的处理结果为"不予追责"时,不能同时选择其他处理结果`); + throw new Error(`涉及人员【${item.blameName}】的处理结果为"不予追责"时,不能同时选择其他处理结果`); + } + } + // 涉及人员不能同时包含1、1-1、1-2 + const has1 = item.handleResultCode.includes('1'); + const has1_1 = item.handleResultCode.includes('1-1'); + const has1_2 = item.handleResultCode.includes('1-2'); + if ((has1 && has1_1) || (has1 && has1_2) || (has1_1 && has1_2)) { + feedback.msgError(`涉及人员【${item.blameName}】的处理结果不能同时包含"所队通报批评"、"市局通报批评"、"分局通报批评"`); + throw new Error(`涉及人员【${item.blameName}】的处理结果不能同时包含"所队通报批评"、"市局通报批评"、"分局通报批评"`); + } + } + } + + // 2. 涉及领导:处理结果为14(不予追责)时,不能同时选择其他处理结果 + const leaderBlames = form.value.blameLeaders; + for (const item of leaderBlames) { + if (item.leadHandleResultCode && item.leadHandleResultCode.length > 0) { + // 如果包含14(不予追责),则不能同时选择其他处理结果 + if (item.leadHandleResultCode.includes('14')) { + if (item.leadHandleResultCode.length > 1) { + feedback.msgError(`涉及领导【${item.leadName}】的处理结果为"不予追责"时,不能同时选择其他处理结果`); + throw new Error(`涉及领导【${item.leadName}】的处理结果为"不予追责"时,不能同时选择其他处理结果`); + } + } + // 涉及领导不能同时包含1、1-1、1-2 + const has1 = item.leadHandleResultCode.includes('1'); + const has1_1 = item.leadHandleResultCode.includes('1-1'); + const has1_2 = item.leadHandleResultCode.includes('1-2'); + if ((has1 && has1_1) || (has1 && has1_2) || (has1_1 && has1_2)) { + feedback.msgError(`涉及领导【${item.leadName}】的处理结果不能同时包含"所队通报批评"、"市局通报批评"、"分局通报批评"`); + throw new Error(`涉及领导【${item.leadName}】的处理结果不能同时包含"所队通报批评"、"市局通报批评"、"分局通报批评"`); + } + } + } + + // 3. 涉及单位:处理结果为2-1(涉及单位的不与追责)时,不能同时选择其他处理结果 + const departBlames = form.value.blames.filter(item => item.type === BlameType.DEPARTMENT); + for (const item of departBlames) { + if (item.handleResultCode && item.handleResultCode.length > 0) { + // 如果包含2-1(涉及单位的不与追责),则不能同时选择其他处理结果 + if (item.handleResultCode.includes('2-1')) { + if (item.handleResultCode.length > 1) { + feedback.msgError(`涉及单位【${item.blameDepartName}】的处理结果为"不与追责"时,不能同时选择其他处理结果`); + throw new Error(`涉及单位【${item.blameDepartName}】的处理结果为"不与追责"时,不能同时选择其他处理结果`); + } + } + } + } + // ========== 处理结果校验逻辑结束 ========== + return form.value; } diff --git a/src/components/negative/verify.vue b/src/components/negative/verify.vue index 96b26ab..1dcde98 100644 --- a/src/components/negative/verify.vue +++ b/src/components/negative/verify.vue @@ -1598,6 +1598,7 @@ import { import useCatchStore from "@/stores/modules/catch"; import { getConfinementListAll } from "@/api/work/confinement"; import {Warning} from "@element-plus/icons-vue"; +import feedback from "@/utils/feedback"; //获取数据 const catchSotre = useCatchStore(); const dict = catchSotre.getDicts([ @@ -1935,6 +1936,7 @@ async function validate() { (item) => item.type === BlameType.PERSONAL && !arr.includes(item.blameIdCode) ); if (blame.length) { + feedback.msgError(`涉及人员【${blame.map((item) => item.blameName).join("、")}】未关联领导`); throw new Error( `涉及人员【${blame.map((item) => item.blameName).join("、")}】未关联领导` ); @@ -1960,10 +1962,72 @@ async function validate() { if (duplicatePerson) { // showSamePersonDialog.value = true; + feedback.msgError( `涉及人员【${duplicatePerson.blameName}】与涉及领导不能为同一人`); throw new Error(`涉及人员【${duplicatePerson.blameName}】与涉及领导不能为同一人`); } } + + // ========== 处理结果校验逻辑 ========== + // 1. 涉及人员:处理结果为14(不予追责)时,不能同时选择其他处理结果 + const personalBlames = form.value.blames.filter(item => item.type === BlameType.PERSONAL); + for (const item of personalBlames) { + if (item.handleResultCode && item.handleResultCode.length > 0) { + // 如果包含14(不予追责),则不能同时选择其他处理结果 + if (item.handleResultCode.includes('14')) { + if (item.handleResultCode.length > 1) { + feedback.msgError(`涉及人员【${item.blameName}】的处理结果为"不予追责"时,不能同时选择其他处理结果`); + throw new Error(`涉及人员【${item.blameName}】的处理结果为"不予追责"时,不能同时选择其他处理结果`); + } + } + // 涉及人员不能同时包含1、1-1、1-2 + const has1 = item.handleResultCode.includes('1'); + const has1_1 = item.handleResultCode.includes('1-1'); + const has1_2 = item.handleResultCode.includes('1-2'); + if ((has1 && has1_1) || (has1 && has1_2) || (has1_1 && has1_2)) { + feedback.msgError(`涉及人员【${item.blameName}】的处理结果不能同时包含"所队通报批评"、"市局通报批评"、"分局通报批评"`); + throw new Error(`涉及人员【${item.blameName}】的处理结果不能同时包含"所队通报批评"、"市局通报批评"、"分局通报批评"`); + } + } + } + + // 2. 涉及领导:处理结果为14(不予追责)时,不能同时选择其他处理结果 + const leaderBlames = form.value.blameLeaders; + for (const item of leaderBlames) { + if (item.leadHandleResultCode && item.leadHandleResultCode.length > 0) { + // 如果包含14(不予追责),则不能同时选择其他处理结果 + if (item.leadHandleResultCode.includes('14')) { + if (item.leadHandleResultCode.length > 1) { + feedback.msgError(`涉及领导【${item.leadName}】的处理结果为"不予追责"时,不能同时选择其他处理结果`); + throw new Error(`涉及领导【${item.leadName}】的处理结果为"不予追责"时,不能同时选择其他处理结果`); + } + } + // 涉及领导不能同时包含1、1-1、1-2 + const has1 = item.leadHandleResultCode.includes('1'); + const has1_1 = item.leadHandleResultCode.includes('1-1'); + const has1_2 = item.leadHandleResultCode.includes('1-2'); + if ((has1 && has1_1) || (has1 && has1_2) || (has1_1 && has1_2)) { + feedback.msgError(`涉及领导【${item.leadName}】的处理结果不能同时包含"所队通报批评"、"市局通报批评"、"分局通报批评"`); + throw new Error(`涉及领导【${item.leadName}】的处理结果不能同时包含"所队通报批评"、"市局通报批评"、"分局通报批评"`); + } + } + } + + // 3. 涉及单位:处理结果为2-1(涉及单位的不与追责)时,不能同时选择其他处理结果 + const departBlames = form.value.blames.filter(item => item.type === BlameType.DEPARTMENT); + for (const item of departBlames) { + if (item.handleResultCode && item.handleResultCode.length > 0) { + // 如果包含2-1(涉及单位的不与追责),则不能同时选择其他处理结果 + if (item.handleResultCode.includes('2-1')) { + if (item.handleResultCode.length > 1) { + feedback.msgError(`涉及单位【${item.blameDepartName}】的处理结果为"不与追责"时,不能同时选择其他处理结果`); + throw new Error(`涉及单位【${item.blameDepartName}】的处理结果为"不与追责"时,不能同时选择其他处理结果`); + } + } + } + } + // ========== 处理结果校验逻辑结束 ========== + return form.value; }