소스 검색

工单处置数据权限改成rootTypeId参数控制

zengy 21 시간 전
부모
커밋
59175331a0
2개의 변경된 파일과 15개의 추가작업 그리고 24개의 파일을 삭제
  1. 3 3
      src/views/subSystem/manholeCover/mRealTimemonit/mRealApicture.vue
  2. 12 21
      src/views/subSystem/pipeNetwork/ops/workOrder/dispose.vue

+ 3 - 3
src/views/subSystem/manholeCover/mRealTimemonit/mRealApicture.vue

@@ -34,9 +34,9 @@
         <h3>井盖监测采集数据</h3>
       </div>
       <el-table v-loading="loading" :data="list" border stripe size="small" :header-cell-style="{ background: '#f5f7fa', color: '#606266' }">
-        <el-table-column prop="imeiCardNumber" label="设备编码" width="140" show-overflow-tooltip />
-        <el-table-column prop="equipmentName" label="设备名称" width="140" show-overflow-tooltip />
-        <el-table-column prop="createTime" label="采集时间" width="158" />
+        <el-table-column prop="imeiCardNumber" label="设备编码" min-width="140" show-overflow-tooltip />
+        <el-table-column prop="equipmentName" label="设备名称" min-width="140" show-overflow-tooltip />
+        <el-table-column prop="createTime" label="采集时间" min-width="158" />
         <el-table-column label="倾斜角度(°)" width="96" align="center">
           <template #default="{ row }">{{ row.tiltAngle || '—' }}</template>
         </el-table-column>

+ 12 - 21
src/views/subSystem/pipeNetwork/ops/workOrder/dispose.vue

@@ -477,33 +477,23 @@ const route = useRoute()
 const userStore = useUserStore()
 
 /**
- * 本组件被多个菜单复用,不同菜单按业务口径查询不同范围的工单:
- * - 运维工单处置菜单(默认):查询全部工单
- * - 燃气工单管理菜单:仅查 parentTypeId=3 的设备工单
- * - 排水工单菜单:仅查 parentTypeId=2 的设备工单
- * - 案件工单处置菜单:仅查 parentTypeId=4 的设备工单
+ * 本组件被多个菜单复用,业务口径(查哪类设备的工单)由菜单在 sys_menu.query 中配置的
+ * rootTypeId 下发,与项目整体约定一致(报警复核、设备预警阈值等菜单均使用 {"rootTypeId":N} 隔离范围)。
  *
- * 判定方式:同一组件由后台 sys_menu.component 指向本文件时,菜单的 path 会体现在路由 path 中,
- * 因此按路由 path 关键字区分来源;匹配不上时走默认(全量),保证新菜单接入不会误过滤。
- * 若后续调整菜单 path,同步维护 MENU_DEVICE_TYPE_SCOPE.pathKey 即可。
+ * 各菜单 path 统一为 workOrderDispose,仅通过 query.rootTypeId 区分;不再依赖路由 path 关键字推断,
+ * 新增业务菜单只需在后台配置 {"rootTypeId":N},无需改代码、无需重新发版。
+ * rootTypeId 为空表示不限制(全量工单)。
  */
-const MENU_DEVICE_TYPE_SCOPE = [
-  { pathKey: 'BusinessWorkOrder', parentTypeId: '3', name: '燃气' },
-  { pathKey: 'DrainageWorkOrder', parentTypeId: '2', name: '排水' },
-  { pathKey: 'orderDisposal', parentTypeId: '4', name: '案件' },
-  { pathKey: 'maintain', parentTypeId: '1', name: '设备维修派单' }
-]
-
 const menuScope = computed(() => {
-  const curPath = String(route.path || '')
-  return MENU_DEVICE_TYPE_SCOPE.find((m) => curPath.includes(m.pathKey))
+  const rt = route.query.rootTypeId
+  return rt != null && rt !== '' ? String(rt) : undefined
 })
 
-/** 统一构造查询入参:命中业务菜单时附加设备父类别过滤,且不随查询重置丢失 */
+/** 统一构造查询入参:命中业务菜单时附加 rootTypeId 过滤,且不随查询重置丢失 */
 function buildQueryParams() {
   return {
     ...queryParams,
-    ...(menuScope.value ? { deviceTypeParentId: menuScope.value.parentTypeId } : {})
+    ...(menuScope.value ? { rootTypeId: menuScope.value } : {})
   }
 }
 
@@ -1064,10 +1054,11 @@ function handleDelete(o) {
 }
 
 // 同一组件被多个菜单复用(运维处置/燃气/排水/案件/设备维修派单),
+// 各菜单 path 统一为 workOrderDispose,仅靠 query.rootTypeId 区分业务口径,
 // 路由切换时组件实例被复用、onMounted 不会重新执行,
-// 必须监听路由变化按新菜单的业务口径重新拉取数据
+// 必须监听 fullPath(含 query)按新菜单的业务口径重新拉取数据
 watch(
-  () => route.path,
+  () => route.fullPath,
   (nv, ov) => {
     if (nv === ov) return
     // 支持从报警处理列表跳转进来时按工单号预填筛选;其余入口不带该 query,行为与之前一致