Procházet zdrojové kódy

工单评分调整

ouyj před 5 měsíci
rodič
revize
01915a4b29
1 změnil soubory, kde provedl 107 přidání a 14 odebrání
  1. 107 14
      ygtx-ui/src/views/gxt/orderScore/index.vue

+ 107 - 14
ygtx-ui/src/views/gxt/orderScore/index.vue

@@ -18,20 +18,50 @@
           @keyup.enter="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="场站" prop="pcsStationName">
+<!--      <el-form-item label="场站" prop="pcsStationName">
         <el-input
           v-model="queryParams.pcsStationName"
           placeholder="请输入场站"
           clearable
           @keyup.enter="handleQuery"
         />
+      </el-form-item>-->
+      <el-form-item label="维保中心" prop="gxtCenter" label-position="top">
+        <el-select
+            v-model="queryParams.gxtCenter"
+            placeholder="请选择维保中心"
+            clearable
+            @change="handleMaintenanceCenterChange"
+        >
+          <el-option
+              v-for="item in maintenanceCenterOptions"
+              :key="item.deptId"
+              :label="item.deptName"
+              :value="item.deptName">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="场站" prop="pcsStationName" label-position="top">
+        <el-select
+            v-model="queryParams.pcsStationName"
+            placeholder="请选择场站"
+            clearable
+            :disabled="!queryParams.gxtCenter"
+        >
+          <el-option
+              v-for="item in stationOptions"
+              :key="item.deptId"
+              :label="item.deptName"
+              :value="item.deptName">
+          </el-option>
+        </el-select>
       </el-form-item>
-      <el-form-item label="工单类型" prop="orderType">
+<!--      <el-form-item label="工单类型" prop="orderType">
         <el-select v-model="queryParams.orderType" placeholder="请选择工单类型" clearable>
           <el-option label="维修工单" value="1" />
           <el-option label="维保工单" value="2" />
         </el-select>
-      </el-form-item>
+      </el-form-item>-->
       <el-form-item label="评分阶段" prop="scoreStage">
         <el-select v-model="queryParams.scoreStage" placeholder="请选择评分阶段" clearable>
           <el-option label="自评" value="1" />
@@ -54,11 +84,11 @@
       style="width: 100%"
       :max-height="tableHeight"
     >
-      <el-table-column type="selection" width="55" align="center" />
+<!--      <el-table-column type="selection" width="55" align="center" />-->
       <el-table-column label="工单编码" align="center" prop="workOrderProjectNo" :show-overflow-tooltip="true" />
       <el-table-column label="工单类型" align="center" prop="orderType" >
         <template #default="scope">
-          <dict-tag :options="orderTypeOptions" :value="scope.row.orderType" />
+          <dict-tag :options="gxt_order_type" :value="scope.row.orderType" />
         </template>
       </el-table-column>
       <el-table-column label="状态" align="center" prop="workOrderStatus" />
@@ -70,11 +100,11 @@
         </template>
       </el-table-column>
       <el-table-column label="工作负责人" align="center" prop="teamLeaderName" />
-      <el-table-column label="评分阶段" align="center" prop="scoreStage" >
+<!--      <el-table-column label="评分阶段" align="center" prop="scoreStage" >
         <template #default="scope">
           <dict-tag :options="scoreStageOptions" :value="scope.row.scoreStage" />
         </template>
-      </el-table-column>
+      </el-table-column>-->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
           <el-button
@@ -119,7 +149,7 @@
           <el-form label-width="120px" label-position="top">
             <el-form-item label="工单编码">{{ viewForm.workOrderProjectNo }}</el-form-item>
             <el-form-item label="工单类型">
-              <dict-tag :options="orderTypeOptions" :value="viewForm.orderType" />
+              <dict-tag :options="gxt_order_type" :value="viewForm.orderType" />
             </el-form-item>
             <el-form-item label="风机编号">{{ viewForm.pcsDeviceName }}</el-form-item>
             <el-form-item label="场站">{{ viewForm.pcsStationName }}</el-form-item>
@@ -169,7 +199,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="工单类型">
-              <dict-tag :options="orderTypeOptions" :value="selfEvaluationForm.orderType" />
+              <dict-tag :options="gxt_order_type" :value="selfEvaluationForm.orderType" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -282,7 +312,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="工单类型">
-              <dict-tag :options="orderTypeOptions" :value="reviewForm.orderType" />
+              <dict-tag :options="gxt_order_type" :value="reviewForm.orderType" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -414,7 +444,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="工单类型">
-              <dict-tag :options="orderTypeOptions" :value="finalEvaluationForm.orderType" />
+              <dict-tag :options="gxt_order_type" :value="finalEvaluationForm.orderType" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -507,13 +537,15 @@ import {
   review, 
   finalEvaluation 
 } from "@/api/gxt/orderScore";
+import { listMaintenanceCenters, listStationsByMaintenanceCenter } from "@/api/gxt/equipment"
 
 const { proxy } = getCurrentInstance();
+const { gxt_maintenance_type, gxt_work_order_status, gxt_order_priority_type,gxt_repair_order_flow_action_type,gxt_order_suspend_reason,gxt_order_type } = proxy.useDict("gxt_maintenance_type", "gxt_work_order_status", "gxt_order_priority_type","gxt_repair_order_flow_action_type","gxt_order_suspend_reason","gxt_order_type")
 
 // 工单类型选项
 const orderTypeOptions = ref([
-  { value: 1, label: "维修工单" },
-  { value: 2, label: "维保工单" }
+  { value: "1", label: "维修工单" },
+  { value: "2", label: "维保工单" }
 ]);
 
 // 评分阶段选项
@@ -605,6 +637,10 @@ const finalEvaluationRules = ref({
   ]
 });
 
+// 维保中心和场站选项
+const maintenanceCenterOptions = ref([])
+const stationOptions = ref([])
+
 // 监听窗口大小变化
 function handleResize() {
   tableHeight.value = window.innerHeight - 300;
@@ -612,6 +648,7 @@ function handleResize() {
 
 onMounted(() => {
   getList();
+  getMaintenanceCenterAndStationList()
   window.addEventListener('resize', handleResize);
 });
 
@@ -690,6 +727,7 @@ function handleSelectionChange(selection) {
 function handleView(row) {
   getOrderScore(row.orderType, row.id).then(response => {
     viewForm.value = response.data;
+    viewForm.value.orderType = row.orderType;
     // 根据工单类型设置人员列表
     if (row.orderType === 1) {
       // 维修工单
@@ -847,4 +885,59 @@ function submitFinalEvaluation() {
     }
   });
 }
-</script>
+
+function getMaintenanceCenterAndStationList() {
+  listMaintenanceCenters().then(response => {
+    maintenanceCenterOptions.value = response.data.map(item => {
+      return { deptName: item, deptId: item };
+    });
+
+    // 如果已选择维保中心,则筛选出该维保中心下的场站
+    if (queryParams.value.maintenanceCenter) {
+      listStationsByMaintenanceCenter(queryParams.value.maintenanceCenter).then(res => {
+        stationOptions.value = res.data.map(item => {
+          return { deptName: item, deptId: item };
+        });
+      });
+    } else {
+      // 如果未选择维保中心,则清空场站选项
+      stationOptions.value = [];
+    }
+  });
+}
+
+function handleMaintenanceCenterChange(selectedCenter) {
+  // 清空场站选择
+  queryParams.value.station = null;
+
+  // 如果选择了维保中心,则加载对应的场站
+  if (selectedCenter) {
+    listStationsByMaintenanceCenter(selectedCenter).then(response => {
+      stationOptions.value = response.data.map(item => {
+        return { deptName: item, deptId: item };
+      });
+    });
+  } else {
+    // 如果未选择维保中心,则清空场站选项
+    stationOptions.value = [];
+  }
+}
+</script>
+<style scoped>
+/* 表单字段间距调整 */
+:deep(.el-form-item) {
+  margin-bottom: 18px;
+}
+
+/* 表单中的列间距调整 */
+:deep(.el-col) {
+  padding-left: 5px;
+  padding-right: 5px;
+}
+
+/* 表单行间距调整 */
+:deep(.el-row) {
+  margin-left: -5px;
+  margin-right: -5px;
+}
+</style>