From 0ce44a823c464d863d30d9a38e603e6a7e6340cc Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Tue, 28 Jul 2026 10:37:24 +0800 Subject: [PATCH] =?UTF-8?q?2026-07-28=20=E5=BC=82=E5=B8=B8=E8=A7=84?= =?UTF-8?q?=E5=88=99=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/sys/sceneExceptionRuleConfig.vue | 107 ++++++++++++++++-- .../modules/yieldReport/com_separate_roll.vue | 1 + 2 files changed, 100 insertions(+), 8 deletions(-) diff --git a/src/views/modules/sys/sceneExceptionRuleConfig.vue b/src/views/modules/sys/sceneExceptionRuleConfig.vue index 66403dd..fed8bbd 100644 --- a/src/views/modules/sys/sceneExceptionRuleConfig.vue +++ b/src/views/modules/sys/sceneExceptionRuleConfig.vue @@ -149,8 +149,8 @@ @selection-change="handleConditionSelection" style="width: 100%;"> - - + + @@ -162,12 +162,17 @@ {{ getResponsibilityDeptLabel(scope.row) }} + + + - + @@ -249,6 +254,24 @@ + + + + + + + + 保存 关闭 @@ -269,6 +292,7 @@ import { deleteSceneExceptionRuleCondition } from '@/api/sys/sceneExceptionRule' import { getSiteAndBuByUserName, getUserRoleList } from '@/api/qc/qc' +import { getWorkCenterList } from '@/api/orderIssure/soIssueNotify' export default { data () { @@ -290,6 +314,7 @@ export default { }, buList: [], roleList: [], + workCenterList: [], mainDialogVisible: false, mainDialogTitle: '新增异常规则', mainForm: { @@ -323,7 +348,9 @@ export default { warningLevel: '一般', animationEffect: '系统默认', responsibilityDept: '', - triggerEvent: '' + triggerEvent: '', + triggerWorkCenter: '', + triggerWorkCenterList: [] }, relationFieldOptions: ['排数', '分切卷数', '总卷数', '良品数', '面损', '性能不良', '不良数', '良率', '不良率', '总数'], compareSymbolOptions: ['>', '=', '<', '>=', '<='], @@ -349,6 +376,7 @@ export default { created () { this.loadBuList() this.loadRoleList() + this.loadWorkCenterList() this.getDataList() }, mounted () { @@ -381,6 +409,16 @@ export default { } }) }, + loadWorkCenterList () { + const params = { username: this.$store.state.user.name } + getWorkCenterList(params).then(({ data }) => { + if (data && data.code === 0) { + this.workCenterList = data.rows || [] + } else { + this.workCenterList = [] + } + }) + }, getResponsibilityDeptLabel (row) { if (!row) { return '' @@ -394,6 +432,40 @@ export default { const matched = (this.roleList || []).find(item => String(item.roleId) === String(row.responsibilityDept)) return matched ? matched.roleName : row.responsibilityDept }, + getWorkCenterLabel (workCenterNo) { + if (!workCenterNo) { + return '' + } + const matched = (this.workCenterList || []).find(item => item.workCenterNo === workCenterNo) + return matched ? matched.workCenterDesc : workCenterNo + }, + parseTriggerWorkCenterList (triggerWorkCenter) { + if (!triggerWorkCenter) { + return [] + } + const rawArr = String(triggerWorkCenter).split(/[,;,;]/) + const result = [] + rawArr.forEach(item => { + const value = item ? item.trim() : '' + if (value && result.indexOf(value) === -1) { + result.push(value) + } + }) + return result + }, + joinTriggerWorkCenterList (triggerWorkCenterList) { + return this.parseTriggerWorkCenterList((triggerWorkCenterList || []).join(';')).join(';') + }, + formatTriggerWorkCenter (row) { + if (!row || !row.triggerWorkCenter) { + return '' + } + const workCenterNoList = this.parseTriggerWorkCenterList(row.triggerWorkCenter) + if (workCenterNoList.length === 0) { + return '' + } + return workCenterNoList.map(item => this.getWorkCenterLabel(item)).join('、') + }, queryRule () { this.pageIndex = 1 this.getDataList() @@ -578,7 +650,9 @@ export default { warningLevel: '一般', animationEffect: '系统默认', responsibilityDept: '', - triggerEvent: parentConditionNo ? '异常代码' : '' + triggerEvent: parentConditionNo ? '异常代码' : '', + triggerWorkCenter: '', + triggerWorkCenterList: [] } this.applyConditionRule() this.conditionEditVisible = true @@ -621,7 +695,9 @@ export default { warningLevel: row.warningLevel, animationEffect: row.animationEffect, responsibilityDept: row.responsibilityDept, - triggerEvent: row.parentConditionNo ? row.triggerEvent : '' + triggerEvent: row.parentConditionNo ? row.triggerEvent : '', + triggerWorkCenter: row.triggerWorkCenter || '', + triggerWorkCenterList: this.parseTriggerWorkCenterList(row.triggerWorkCenter) } this.applyConditionRule() this.conditionEditVisible = true @@ -651,6 +727,10 @@ export default { this.$message.warning('请选择是否强制') return } + if (!this.conditionForm.triggerWorkCenterList || this.conditionForm.triggerWorkCenterList.length === 0) { + this.$message.warning('请选择触发工序') + return + } if (this.isChildCondition && !this.conditionForm.triggerEvent) { this.$message.warning('请选择触发异常事件') return @@ -660,8 +740,13 @@ export default { } else if (this.conditionForm.triggerEvent === '异常代码') { this.conditionForm.forceType = '提示' } + const payload = this.buildConditionPayload() + if (!payload.triggerWorkCenter) { + this.$message.warning('请选择触发工序') + return + } if (this.conditionForm.mode === 'add') { - saveSceneExceptionRuleCondition(this.conditionForm).then(({ data }) => { + saveSceneExceptionRuleCondition(payload).then(({ data }) => { if (data && data.code === 0) { this.conditionEditVisible = false this.$message.success('操作成功') @@ -671,7 +756,7 @@ export default { } }) } else { - updateSceneExceptionRuleCondition(this.conditionForm).then(({ data }) => { + updateSceneExceptionRuleCondition(payload).then(({ data }) => { if (data && data.code === 0) { this.conditionEditVisible = false this.$message.success('操作成功') @@ -682,6 +767,12 @@ export default { }) } }, + buildConditionPayload () { + const payload = JSON.parse(JSON.stringify(this.conditionForm || {})) + payload.triggerWorkCenter = this.joinTriggerWorkCenterList(payload.triggerWorkCenterList || []) + delete payload.triggerWorkCenterList + return payload + }, deleteCondition () { if (this.conditionSelection.length === 0) { this.$message.warning('请勾选要删除的触发条件') diff --git a/src/views/modules/yieldReport/com_separate_roll.vue b/src/views/modules/yieldReport/com_separate_roll.vue index 828bc18..df7e67c 100644 --- a/src/views/modules/yieldReport/com_separate_roll.vue +++ b/src/views/modules/yieldReport/com_separate_roll.vue @@ -2136,6 +2136,7 @@ export default { itemNo: this.scheduleData.itemNo, seqNo: this.scheduleData.seqNo, rollNo: this.scheduleData.rollNo, + workCenterNo: this.scheduleData.workCenterNo || '', operatorId: this.pageData.operatorId, functionName: actionName || '', fixture: this.pageData.fixture || '',