Przeglądaj źródła

修复报警处理跳转

zengy 4 dni temu
rodzic
commit
9a5c2c2145
1 zmienionych plików z 12 dodań i 5 usunięć
  1. 12 5
      src/views/subSystem/alarm/common/disposeList.vue

+ 12 - 5
src/views/subSystem/alarm/common/disposeList.vue

@@ -35,6 +35,7 @@
 <script setup name="AlarmDisposeList">
 import { ref, reactive, watch, onBeforeUnmount } from 'vue'
 import { useRouter } from 'vue-router'
+import { ElMessage } from 'element-plus'
 import { Search, Refresh } from '@element-plus/icons-vue'
 import { getAlarms } from '@/api/alarm'
 import { levelTone, auditStatusTone, rangeParams } from './js/alarmOperationsModel'
@@ -46,16 +47,22 @@ import { useDict } from '@/utils/dict'
 
 const router = useRouter()
 const { alarm_level: alarmLevels } = useDict('alarm_level')
-const { scope, scopeKey } = useAlarmScope()
+const { scope, scopeKey, menu } = useAlarmScope()
 const empty = () => ({ alarmNo: '', keyword: '', alarmLevel: undefined })
 const filters = reactive(empty()), dates = ref([]), rows = ref([]), total = ref(0)
 const pageNum = ref(1), pageSize = ref(10), ascending = ref(false), loading = ref(false), error = ref('')
 
-// 跳转到工单处置页,并带上工单号(orderNo)定位到对应工单,由处置页自动查询。
-// 工单处置菜单路由 path 为 /subSystem/pipeNetwork/ops/pworkOrder/dispose,按后缀(忽略大小写)精确匹配。
+// 工单处置页由多个业务菜单复用,path 末段为 workOrderDispose,靠 query.rootTypeId 区分业务范围;
+// 兼容运维自身的 Pworkdisposition 菜单与旧 pworkOrder/dispose 路径。
 function goDispose(row) {
-  const target = router.getRoutes().find(r => r.path.toLowerCase().endsWith('pworkorder/dispose'))
-  if (target) router.push({ path: target.path, query: { keyword: row.orderNo || '' } })
+  const keyword = row.orderNo || ''
+  if (!keyword) return ElMessage.warning('该报警未关联工单编号')
+  const target = menu('workOrderDispose') || menu('Pworkdisposition')
+    || router.getRoutes().find(r => /workOrderDispose|Pworkdisposition|pworkOrder\/dispose/i.test(r.path))
+  if (!target) return ElMessage.warning('当前账号未配置工单处置菜单')
+  const query = { ...(target.query || {}), keyword }
+  if (query.rootTypeId == null && scope.value.rootTypeId != null) query.rootTypeId = scope.value.rootTypeId
+  return router.push({ path: target.path, query })
 }
 
 let generation = 0