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) }}
+
+
+ {{ formatTriggerWorkCenter(scope.row) }}
+
+
{{ scope.row.parentConditionNo ? scope.row.triggerEvent : '' }}
-
+
编辑
@@ -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 || '',