소스 검색

月度工分汇总

wanglt 3 달 전
부모
커밋
3783508372

+ 30 - 0
ygtx-ui/src/views/gxt/gxtOrder/index.vue

@@ -1248,6 +1248,9 @@ import ViewDialog from "@/components/gxtOrder/view.vue";
 import ApproveDialog from "@/components/gxtOrder/approve.vue";
 import ShutdownDialog from "@/components/gxtOrder/shutdown.vue";
 import BackfillFinalizeDialog from '@/components/gxtOrder/backfillFinalize.vue'
+import { useRoute } from 'vue-router';
+import { watch } from 'vue';
+const route = useRoute(); // 获取当前路由信息
 
 // 初始化禁用状态为 false(单选框默认可用)
 const infoEntryDisabled = ref(false);
@@ -1944,6 +1947,33 @@ onMounted(() => {
 
 })
 
+// 监听路由变化(包括首次加载和后续跳转)
+watch(
+  () => route.path, // 监听路由路径变化(也可监听 route.params、route.query 等)
+  (newPath, oldPath) => {
+    getFromRoute(); // 执行的逻辑
+  },
+  { immediate: true } // 立即触发一次(首次加载时执行)
+);
+
+function getFromRoute () {
+  // 检查是否从月度工分汇总页面跳转而来,如果有工单编号则自动筛选
+  const fromRoute = sessionStorage.getItem('fromRoute');
+  const workOrderNo = sessionStorage.getItem('workOrderProjectNo');
+  if (fromRoute === '/workScore/monthScore' && workOrderNo) {
+    // 更新查询参数
+    queryParams.value.workOrderProjectNo = workOrderNo;
+    listGxtOrder(queryParams.value).then(response => {
+      if(response.rows && response.rows.length > 0) {
+        handleDetail(response.rows[0]);
+      }
+    })
+    // 清除sessionStorage中的临时数据
+    sessionStorage.removeItem('fromRoute');
+    sessionStorage.removeItem('workOrderProjectNo');
+  }
+}
+
 function getMaintenanceCenterAndStationList() {
   listMaintenanceCenters().then(response => {
     maintenanceCenterOptions.value = response.data.map(item => {

+ 31 - 2
ygtx-ui/src/views/gxt/monthScore/index.vue

@@ -103,7 +103,11 @@
           </div>
           <div class="form-content" style="margin-top: 20px;">
             <el-table :data="workOrderList" style="width: 100%">
-              <el-table-column prop="workOrderProjectNo" label="工单编号"></el-table-column>
+              <el-table-column label="工单编号">
+                <template #default="scope">
+                  <el-button link type="primary" @click="handleWorkOrderClick(scope.row)">{{ scope.row.workOrderProjectNo }}</el-button>
+                </template>
+              </el-table-column>
               <el-table-column prop="model" label="机型"></el-table-column>
               <el-table-column prop="leader" label="工作负责人"></el-table-column>
               <el-table-column prop="acceptUserName" label="接单人"></el-table-column>
@@ -137,7 +141,11 @@
           </div>
           <div class="form-content" style="margin-top: 20px;">
             <el-table :data="repairOrderList" style="width: 100%">
-              <el-table-column prop="workOrderProjectNo" label="工单编号"></el-table-column>
+              <el-table-column label="工单编号">
+                <template #default="scope">
+                  <el-button link type="primary" @click="handleRepairOrderClick(scope.row)">{{ scope.row.workOrderProjectNo }}</el-button>
+                </template>
+              </el-table-column>
               <el-table-column prop="model" label="机型"></el-table-column>
               <el-table-column prop="leader" label="工作负责人"></el-table-column>
               <el-table-column prop="acceptUserName" label="接单人"></el-table-column>
@@ -610,6 +618,27 @@ export default {
       const dictItem = this.gxtMaintenanceType.find(item => item.label === label);
       return dictItem ? dictItem.value : '';
     },
+    
+    // 处理工单编号点击事件
+    handleWorkOrderClick(row) {
+      // 记录来源路由和工单编号
+      sessionStorage.setItem('fromRoute', '/workScore/monthScore');
+      sessionStorage.setItem('workOrderProjectNo', row.workOrderProjectNo);
+      // 跳转到维保工单列表页面
+      this.$router.push({
+        path: '/workOrder/gxtOrder'
+      });
+    },
+    
+    handleRepairOrderClick(row) {
+      // 记录来源路由和工单编号
+      sessionStorage.setItem('fromRouteRepair', '/workScore/monthScore');
+      sessionStorage.setItem('workOrderProjectNoRepair', row.workOrderProjectNo);
+      // 跳转到维保工单列表页面
+      this.$router.push({
+        path: '/workOrder/repairOrder'
+      });
+    },
   }
 }
 </script>

+ 31 - 2
ygtx-ui/src/views/gxt/monthScore/info.vue

@@ -38,7 +38,11 @@
           </div>
           <div class="form-content" style="margin-top: 20px;">
             <el-table :data="workOrderList" style="width: 100%">
-              <el-table-column prop="workOrderProjectNo" label="工单编号"></el-table-column>
+              <el-table-column label="工单编号">
+                <template #default="scope">
+                  <el-button link type="primary" @click="handleWorkOrderClick(scope.row)">{{ scope.row.workOrderProjectNo }}</el-button>
+                </template>
+              </el-table-column>
               <el-table-column prop="model" label="机型"></el-table-column>
               <el-table-column prop="leader" label="工作负责人"></el-table-column>
               <el-table-column prop="acceptUserName" label="接单人"></el-table-column>
@@ -73,7 +77,11 @@
           </div>
           <div class="form-content" style="margin-top: 20px;">
             <el-table :data="repairOrderList" style="width: 100%">
-              <el-table-column prop="workOrderProjectNo" label="工单编号"></el-table-column>
+              <el-table-column label="工单编号">
+                <template #default="scope">
+                  <el-button link type="primary" @click="handleRepairOrderClick(scope.row)">{{ scope.row.workOrderProjectNo }}</el-button>
+                </template>
+              </el-table-column>
               <el-table-column prop="model" label="机型"></el-table-column>
               <el-table-column prop="leader" label="工作负责人"></el-table-column>
               <el-table-column prop="acceptUserName" label="接单人"></el-table-column>
@@ -482,6 +490,27 @@ export default {
         this.$message.error('获取维修工单数据异常');
       });
     },
+    
+    // 处理工单编号点击事件
+    handleWorkOrderClick(row) {
+      // 记录来源路由和工单编号
+      sessionStorage.setItem('fromRoute', '/workScore/monthScore');
+      sessionStorage.setItem('workOrderProjectNo', row.workOrderProjectNo);
+      // 跳转到维保工单列表页面
+      this.$router.push({
+        path: '/workOrder/gxtOrder'
+      });
+    },
+    
+    handleRepairOrderClick(row) {
+      // 记录来源路由和工单编号
+      sessionStorage.setItem('fromRouteRepair', '/workScore/monthScore');
+      sessionStorage.setItem('workOrderProjectNoRepair', row.workOrderProjectNo);
+      // 跳转到维保工单列表页面
+      this.$router.push({
+        path: '/workOrder/repairOrder'
+      });
+    },
   }
 }
 </script>

+ 20 - 0
ygtx-ui/src/views/gxt/repairOrder/index.vue

@@ -2317,6 +2317,24 @@ const returnRules = ref({
   ]
 })
 
+function getFromRoute() {
+  // 检查是否从月度工分汇总页面跳转而来,如果有工单编号则自动筛选
+  const fromRoute = sessionStorage.getItem('fromRouteRepair');
+  const workOrderNo = sessionStorage.getItem('workOrderProjectNoRepair');
+  if (fromRoute === '/workScore/monthScore' && workOrderNo) {
+    // 更新查询参数
+    queryParams.value.workOrderProjectNo = workOrderNo;
+    listRepairOrder(queryParams.value).then(response => {
+      if(response.rows && response.rows.length > 0) {
+        handleView(response.rows[0]);
+      }
+    })
+    // 清除sessionStorage中的临时数据
+    sessionStorage.removeItem('fromRouteRepair');
+    sessionStorage.removeItem('workOrderProjectNoRepair');
+  }
+}
+
 // 监听窗口大小变化
 function handleResize() {
   tableHeight.value = window.innerHeight - 300
@@ -2451,6 +2469,7 @@ onMounted(() => {
   getGetMisDataConfig() // 获取配置参数
   getExportFieldsData() // 获取导出字段数据
   window.addEventListener('resize', handleResize)
+  getFromRoute()
 })
 
 // 监听风机编号和场站变化,自动刷新故障信息列表
@@ -2475,6 +2494,7 @@ watch(() => route.query, (newQuery, oldQuery) => {
 
   // 重新获取列表数据
   getList();
+  getFromRoute()
 }, { deep: true });
 
 onUnmounted(() => {