From fa7202c95f80c76c334e98c034910443395e5f0e Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期三, 06 五月 2026 13:47:38 +0800
Subject: [PATCH] 生产追溯修改

---
 src/views/productionManagement/productionTraceability/index.vue |  385 +++++++++++++++++-------------------------------------
 src/api/productionManagement/productionOrder.js                 |    9 +
 2 files changed, 132 insertions(+), 262 deletions(-)

diff --git a/src/api/productionManagement/productionOrder.js b/src/api/productionManagement/productionOrder.js
index 9b5751d..b84a188 100644
--- a/src/api/productionManagement/productionOrder.js
+++ b/src/api/productionManagement/productionOrder.js
@@ -102,6 +102,15 @@
     data,
   });
 }
+
+// 鐢熶骇璁㈠崟婧簮璇︽儏
+export function getOrderDetail(npsNo) {
+  return request({
+    url: "/productionOrder/ordeDetail",
+    method: "get",
+    params: { npsNo },
+  });
+}
 // 鐢熶骇璁㈠崟-棰嗘枡璇︽儏鍒楄〃
 // export function listMaterialPickingDetail(query) {
 //   return request({
diff --git a/src/views/productionManagement/productionTraceability/index.vue b/src/views/productionManagement/productionTraceability/index.vue
index e2ac6df..8de8ab3 100644
--- a/src/views/productionManagement/productionTraceability/index.vue
+++ b/src/views/productionManagement/productionTraceability/index.vue
@@ -22,9 +22,6 @@
                            :value="option.id" />
               </el-select>
             </el-form-item>
-            <el-form-item>
-              <el-button @click="handleBack">杩斿洖</el-button>
-            </el-form-item>
           </el-form>
         </div>
       </template>
@@ -37,7 +34,7 @@
           <el-descriptions-item label="鐢熶骇璁㈠崟鍙�">{{ rowData.productionOrderDto?.npsNo || '-' }}</el-descriptions-item>
           <el-descriptions-item label="浜у搧鍚嶇О">{{ rowData.productionOrderDto?.productName || '-' }}</el-descriptions-item>
           <el-descriptions-item label="浜у搧瑙勬牸">{{ rowData.productionOrderDto?.model || '-' }}</el-descriptions-item>
-          <el-descriptions-item label="鐗╂枡缂栫爜">{{ rowData.productionOrderDto?.materialCode || '-' }}</el-descriptions-item>
+          <!-- <el-descriptions-item label="鐗╂枡缂栫爜">{{ rowData.productionOrderDto?.materialCode || '-' }}</el-descriptions-item> -->
           <el-descriptions-item label="璁″垝鏁伴噺">{{ rowData.productionOrderDto?.quantity || 0 }} <span class="unit">{{ rowData.productionOrderDto?.unit || '-' }}</span></el-descriptions-item>
           <el-descriptions-item label="褰撳墠鐘舵��">
             <el-tag :type="getStatusType(rowData.productionOrderDto?.status)">
@@ -45,12 +42,12 @@
             </el-tag>
           </el-descriptions-item>
           <el-descriptions-item label="瀹㈡埛鍚嶇О">{{ rowData.productionOrderDto?.customerName || '-' }}</el-descriptions-item>
-          <el-descriptions-item label="寮�濮嬫棩鏈�">{{ rowData.productionOrderDto?.startTime || '-' }}</el-descriptions-item>
+          <el-descriptions-item label="寮�濮嬫棩鏈�">{{ parseTime(rowData.productionOrderDto?.startTime) || '-' }}</el-descriptions-item>
           <el-descriptions-item label="瀹屾垚杩涘害">
-            <el-progress :percentage="rowData.productionOrderDto?.completionStatus"
+            <el-progress :percentage="rowData.productionOrderDto?.completionStatus>=100?100:rowData.productionOrderDto?.completionStatus"
                          :color="customColors(rowData.productionOrderDto?.completionStatus)"
-                         :status="rowData.productionOrderDto?.completionStatus === 100 ? 'success' : ''"
-                         style="width: 120px;" />
+                         :status="rowData.productionOrderDto?.completionStatus >= 100 ? 'success' : ''"
+                         style="width: 80%;" />
           </el-descriptions-item>
         </el-descriptions>
       </div>
@@ -65,23 +62,26 @@
             <el-table :data="rowData.productionRecords"
                       border
                       style="width: 100%">
-              <el-table-column prop="productNo"
+              <el-table-column prop="workOrder.workOrderNo"
                                label="宸ュ崟缂栧彿"
                                align="center">
               </el-table-column>
-              <el-table-column prop="productName"
-                               label="浜у搧鍚嶇О"
-                               align="center" />
-              <el-table-column prop="model"
-                               label="瑙勬牸"
-                               align="center" />
-              <el-table-column prop="processName"
-                               label="宸ュ簭鍚嶇О"
-                               align="center" />
-              <el-table-column prop="requiredQuantity"
+              <el-table-column label="浜у搧鍚嶇О"
+                               align="center">
+                <template #default>
+                  {{ rowData.productionOrderDto?.productName || '-' }}
+                </template>
+              </el-table-column>
+              <el-table-column label="瑙勬牸"
+                               align="center">
+                <template #default>
+                  {{ rowData.productionOrderDto?.model || '-' }}
+                </template>
+              </el-table-column>
+              <el-table-column prop="workOrder.planQuantity"
                                label="闇�姹傛暟閲�"
                                align="center" />
-              <el-table-column prop="completedQuantity"
+              <el-table-column prop="workOrder.completeQuantity"
                                label="瀹屾垚鏁伴噺"
                                align="center" />
               <el-table-column label="璇︽儏"
@@ -111,39 +111,36 @@
       <div class="detail-container">
         <!-- 鍩虹淇℃伅 -->
         <div class="detail-section">
-          <h3 class="section-title">鍩虹淇℃伅</h3>
+          <h3 class="section-title">宸ュ崟鍩虹淇℃伅</h3>
           <el-descriptions :column="3"
                            border>
-            <el-descriptions-item label="鐢熶骇宸ュ崟鍙�">{{ detailData.npsNo || '-' }}</el-descriptions-item>
-            <el-descriptions-item label="鐝粍">
-              <el-tag :type="detailData.schedule === '鐧界彮' ? 'primary' : 'warning'">{{ detailData.schedule || '-' }}</el-tag>
+            <el-descriptions-item label="鐢熶骇宸ュ崟鍙�">{{ detailData.workOrder.workOrderNo || '-' }}</el-descriptions-item>
+            <el-descriptions-item label="璁″垝鏁伴噺">{{ detailData.workOrder.planQuantity || 0 }}</el-descriptions-item>
+            <el-descriptions-item label="瀹屾垚鏁伴噺">{{ detailData.workOrder.completeQuantity || 0 }}</el-descriptions-item>
+            <el-descriptions-item label="瀹為檯寮�濮嬫椂闂�">{{ parseTime(detailData.workOrder.actualStartTime) || '-' }}</el-descriptions-item>
+            <el-descriptions-item label="瀹為檯缁撴潫鏃堕棿">{{ parseTime(detailData.workOrder.actualEndTime) || '-' }}</el-descriptions-item>
+            <el-descriptions-item label="鐘舵��">
+              <el-tag :type="getStatusType(detailData.workOrder.status)">{{ getStatusText(detailData.workOrder.status) }}</el-tag>
             </el-descriptions-item>
-            <el-descriptions-item label="浜у搧缂栫爜">{{ detailData.materialCode || '-' }}</el-descriptions-item>
-            <el-descriptions-item label="浜у搧鍚嶇О">{{ detailData.productName || '-' }}</el-descriptions-item>
-            <el-descriptions-item label="瑙勬牸">{{ detailData.model || '-' }}</el-descriptions-item>
-            <el-descriptions-item label="鍚堟牸鏁伴噺"><span class="num2">{{ detailData.qualifiedQuantity || 0 }}</span> <span class="unit">{{ detailData.unit || '-' }}</span></el-descriptions-item>
-            <el-descriptions-item label="涓嶅悎鏍兼暟閲�"><span class="num3">{{ detailData.unqualifiedQuantity || 0 }}</span> <span class="unit">{{ detailData.unit || '-' }}</span></el-descriptions-item>
-            <el-descriptions-item label="鎬绘暟閲�"><span class="num1">{{ detailData.quantity || 0 }}</span> <span class="unit">{{ detailData.unit || '-' }}</span></el-descriptions-item>
-            <el-descriptions-item label="寮�濮嬫椂闂�">{{ detailData.reportingTime || '-' }}</el-descriptions-item>
           </el-descriptions>
         </div>
         <div class="detail-section">
           <h3 class="section-title">鎶ュ伐鏄庣粏</h3>
-          <el-table :data="[detailData]"
+          <el-table :data="detailData.reports"
                     border
                     style="width: 100%">
             <el-table-column label="鎶ュ伐鍗曞彿"
                              prop="productNo"
                              align="center" />
-            <el-table-column label="浜у嚭鏁伴噺"
-                             prop="qualifiedQuantity"
-                             align="center" />
-            <el-table-column label="鎶ュ簾鏁伴噺"
-                             prop="unqualifiedQuantity"
+            <el-table-column label="鍒涘缓浜�"
+                             prop="userName"
                              align="center" />
             <el-table-column label="鍒涘缓鏃堕棿"
-                             prop="reportingTime"
-                             align="center" />
+                             align="center">
+              <template #default="{ row }">
+                {{ parseTime(row.createTime) }}
+              </template>
+            </el-table-column>
             <el-table-column label="鎿嶄綔"
                              align="center"
                              width="200">
@@ -205,25 +202,24 @@
              :key="record.id"
              class="quality-record-block">
           <div class="detail-section">
-            <h3 class="section-title">妫�娴嬭褰� {{ index + 1 }} - {{ record.checkTime }}</h3>
+            <h3 class="section-title">妫�娴嬭褰� {{ index + 1 }} - {{ parseTime(record.createTime) }}</h3>
             <el-descriptions :column="3"
                              border>
-              <el-descriptions-item label="妫�娴嬫棩鏈�">{{ record.checkTime || '-' }}</el-descriptions-item>
-              <el-descriptions-item label="鐢熶骇宸ュ崟鍙�">{{ record.workOrderNo || '-' }}</el-descriptions-item>
-              <el-descriptions-item label="宸ュ簭">{{ record.process || '-' }}</el-descriptions-item>
-              <el-descriptions-item label="妫�楠屽憳">{{ record.checkName || '-' }}</el-descriptions-item>
+              <el-descriptions-item label="妫�娴嬫棩鏈�">{{ parseTime(record.createTime) || '-' }}</el-descriptions-item>
+              <el-descriptions-item label="鎶ュ伐鍗曞彿">{{ record.reportNo || '-' }}</el-descriptions-item>
+              <el-descriptions-item label="妫�楠屽憳">{{ record.userName || '-' }}</el-descriptions-item>
               <el-descriptions-item label="浜у搧鍚嶇О">{{ record.productName || '-' }}</el-descriptions-item>
               <el-descriptions-item label="瑙勬牸鍨嬪彿">{{ record.model || '-' }}</el-descriptions-item>
               <el-descriptions-item label="鏁伴噺">{{ record.quantity || 0 }} {{ record.unit || '-' }}</el-descriptions-item>
               <el-descriptions-item label="妫�娴嬪崟浣�">{{ record.checkCompany || '-' }}</el-descriptions-item>
               <el-descriptions-item label="妫�娴嬬粨鏋�">
                 <el-tag :type="record.checkResult === '鍚堟牸' ? 'success' : 'danger'">
-                  {{ record.checkResult || '-' }}
+                  {{ record.checkResult || '寰呮娴�' }}
                 </el-tag>
               </el-descriptions-item>
             </el-descriptions>
             <h4 class="sub-section-title">妫�楠屾寚鏍囧垪琛�</h4>
-            <el-table :data="record.inspectItems"
+            <el-table :data="record.inspectParamList"
                       border
                       style="width: 100%">
               <el-table-column label="搴忓彿"
@@ -231,7 +227,7 @@
                                width="60"
                                align="center" />
               <el-table-column label="鎸囨爣"
-                               prop="itemName"
+                               prop="paramName"
                                align="center" />
               <el-table-column label="鍗曚綅"
                                prop="unit"
@@ -239,17 +235,11 @@
               <el-table-column label="鏍囧噯鍊�"
                                prop="standardValue"
                                align="center" />
-              <el-table-column label="鍐呮帶鍊�"
-                               prop="controlValue"
-                               align="center" />
               <el-table-column label="瀹為檯鍊�"
-                               prop="actualValue"
+                               prop="inputValue"
                                align="center" />
             </el-table>
           </div>
-          <!-- <div class="detail-section">
-
-          </div> -->
           <el-divider v-if="index < qualityRecords.length - 1" />
         </div>
       </div>
@@ -266,7 +256,12 @@
   import { ref, reactive, onMounted } from "vue";
   import { useRoute, useRouter } from "vue-router";
   import { ElMessage } from "element-plus";
+  import { parseTime } from "@/utils/ruoyi";
   import InputModal from "@/views/productionManagement/productionReporting/Input.vue";
+  import {
+    getOrderDetail,
+    productOrderListPage,
+  } from "@/api/productionManagement/productionOrder";
 
   const route = useRoute();
   const router = useRouter();
@@ -277,47 +272,7 @@
   });
   const selectedNpsNo = ref(null);
   const npsNoLoading = ref(false);
-  const npsNoOptions = ref([
-    {
-      id: 1,
-      npsNo: "PO20240301001",
-      productName: "绮惧瘑娑插帇缂�",
-      model: "HG-100/50-500",
-      materialCode: "MAT-2024-001",
-      quantity: 500,
-      unit: "浠�",
-      status: 1,
-      customerName: "閲嶅伐鏈烘鏈夐檺鍏徃",
-      startTime: "2024-03-01",
-      completionStatus: 65,
-    },
-    {
-      id: 2,
-      npsNo: "PO20240301002",
-      productName: "宸ヤ笟浼烘湇鐢垫満",
-      model: "SV-400W-3000",
-      materialCode: "MAT-2024-002",
-      quantity: 200,
-      unit: "鍙�",
-      status: 2,
-      customerName: "鑷姩鍖栬澶囩鎶�鍏徃",
-      startTime: "2024-03-02",
-      completionStatus: 100,
-    },
-    {
-      id: 3,
-      npsNo: "PO20240301003",
-      productName: "楂樺帇瀵嗗皝鍦�",
-      model: "SR-80-5",
-      materialCode: "MAT-2024-003",
-      quantity: 5000,
-      unit: "涓�",
-      status: 0,
-      customerName: "瀵嗗皝绯荤粺閰嶄欢鍘�",
-      startTime: "2024-03-05",
-      completionStatus: 0,
-    },
-  ]);
+  const npsNoOptions = ref([]);
 
   // 璇︽儏鏁版嵁
   const rowData = reactive({
@@ -327,7 +282,10 @@
 
   // 鎶ュ伐璇︽儏寮圭獥
   const detailDialogVisible = ref(false);
-  const detailData = ref({});
+  const detailData = ref({
+    workOrder: {},
+    reports: [],
+  });
 
   // 鎶曞叆妯℃�佹
   const isShowInput = ref(false);
@@ -351,12 +309,12 @@
 
   // 鐘舵�佸鐞�
   const getStatusType = status => {
-    const typeMap = { 0: "info", 1: "primary", 2: "success" };
+    const typeMap = { 1: "primary", 2: "warning", 3: "success", 5: "danger" };
     return typeMap[status] || "info";
   };
   const getStatusText = status => {
-    const statusMap = { 0: "鏈紑濮�", 1: "鐢熶骇涓�", 2: "宸插畬鎴�" };
-    return statusMap[status] || "鏈煡";
+    const statusMap = { 1: "寰呭紑濮�", 2: "杩涜涓�", 3: "宸插畬鎴�", 5: "宸茬粨鏉�" };
+    return statusMap[status] || "宸插彇娑�";
   };
   const customColors = percentage => {
     if (percentage < 30) return "#f56c6c";
@@ -365,51 +323,41 @@
   };
 
   // 妯℃嫙鎼滅储鏂规硶
-  const handleNpsNoSearch = query => {
-    if (query) {
-      npsNoLoading.value = true;
-      setTimeout(() => {
-        npsNoLoading.value = false;
-      }, 300);
+  const handleNpsNoSearch = async query => {
+    npsNoLoading.value = true;
+    try {
+      const res = await productOrderListPage({
+        npsNo: query || "",
+        pageNum: 1,
+        pageSize: 50,
+      });
+      // 鍙傜収 productionOrder/index.vue 鐨勬暟鎹粨鏋� res.data.records
+      npsNoOptions.value = res.data?.records || res.rows || [];
+    } catch (error) {
+      console.error(error);
+    } finally {
+      npsNoLoading.value = false;
     }
   };
 
-  const handleSearch = id => {
+  const handleSearch = async id => {
     const selected = npsNoOptions.value.find(item => item.id === id);
     if (selected) {
-      rowData.productionOrderDto = selected;
-      rowData.productionRecords = [
-        {
-          id: 1001,
-          productNo: "MO-2024-001-01",
-          productName: selected.productName,
-          model: selected.model,
-          processName: "姣涘澂鍔犲伐",
-          requiredQuantity: selected.quantity,
-          completedQuantity: Math.floor(selected.quantity * 0.4),
-          qualifiedQuantity: Math.floor(selected.quantity * 0.4) - 2,
-          unqualifiedQuantity: 2,
-          reportingTime: "2024-03-01 10:00:00",
-          schedule: "鐧界彮",
-          postName: "寮犱笁",
-          unit: selected.unit,
-        },
-        {
-          id: 1002,
-          productNo: "MO-2024-001-02",
-          productName: selected.productName,
-          model: selected.model,
-          processName: "绮惧姞宸�",
-          requiredQuantity: Math.floor(selected.quantity * 0.4),
-          completedQuantity: Math.floor(selected.quantity * 0.25),
-          qualifiedQuantity: Math.floor(selected.quantity * 0.25),
-          unqualifiedQuantity: 0,
-          reportingTime: "2024-03-01 16:00:00",
-          schedule: "鐧界彮",
-          postName: "鏉庡洓",
-          unit: selected.unit,
-        },
-      ];
+      try {
+        const res = await getOrderDetail(selected.npsNo);
+        if (res.code === 200) {
+          const { productionOrder, workOrderList } = res.data;
+          rowData.productionOrderDto = productionOrder || selected;
+          rowData.productionRecords = workOrderList || [];
+        } else {
+          rowData.productionOrderDto = selected;
+          rowData.productionRecords = [];
+        }
+      } catch (error) {
+        console.error(error);
+        ElMessage.error("鑾峰彇璁㈠崟璇︽儏澶辫触");
+        rowData.productionOrderDto = selected;
+      }
     }
   };
 
@@ -418,121 +366,34 @@
   };
 
   const handleClickStep = row => {
+    // row 鏄� workOrderList 涓殑涓�椤癸紝鍖呭惈 workOrder, reportList, inspectList
     detailData.value = {
-      id: row.id || Math.floor(Math.random() * 1000),
-      productNo: row.productNo,
-      npsNo: rowData.productionOrderDto.npsNo,
-      schedule: row.schedule,
-      postName: row.postName,
-      materialCode: rowData.productionOrderDto.materialCode,
-      productName: row.productName,
-      model: row.model,
-      qualifiedQuantity: row.qualifiedQuantity,
-      unqualifiedQuantity: row.unqualifiedQuantity || 0,
-      quantity: row.completedQuantity,
-      unit: row.unit,
-      reportingTime: row.reportingTime,
-      productionOperationParamList: [
-        { id: 1, paramName: "涓昏酱杞��", inputValue: "2400", unit: "rpm" },
-        { id: 2, paramName: "杩涚粰閫熷害", inputValue: "120", unit: "mm/min" },
-        { id: 3, paramName: "鍒囧墛娣卞害", inputValue: "0.5", unit: "mm" },
-        { id: 4, paramName: "鍐峰嵈娑插帇鍔�", inputValue: "0.6", unit: "Mpa" },
-      ],
+      workOrder: row.workOrder || {},
+      reports: (row.reportList || []).map(r => ({
+        ...r.reportMain,
+        productionOperationParamList: r.reportParamList || [],
+      })),
     };
     detailDialogVisible.value = true;
   };
 
   const handleClickQuality = row => {
-    qualityRecords.value = [
-      {
-        id: 2001,
-        checkTime: "2024-03-01 11:30:00",
-        workOrderNo: row.productNo,
-        process: row.processName,
-        checkName: "璐ㄩ噺閮�-鐜嬪缓鍥�",
-        productName: row.productName,
-        model: row.model,
-        unit: row.unit,
-        quantity: row.completedQuantity,
-        checkCompany: "鍐呴儴瀹為獙瀹�",
-        checkResult: "鍚堟牸",
-        inspectItems: [
-          {
-            id: 1,
-            itemName: "澶栧緞灏哄",
-            unit: "mm",
-            standardValue: "100.00卤0.05",
-            controlValue: "100.00卤0.03",
-            actualValue: "100.01",
-            result: "鍚堟牸",
-          },
-          {
-            id: 2,
-            itemName: "鍐呭緞灏哄",
-            unit: "mm",
-            standardValue: "50.00+0.02/-0",
-            controlValue: "50.00+0.01/-0",
-            actualValue: "50.01",
-            result: "鍚堟牸",
-          },
-          {
-            id: 3,
-            itemName: "琛ㄩ潰绮楃硻搴�",
-            unit: "Ra",
-            standardValue: "鈮�1.6",
-            controlValue: "鈮�1.2",
-            actualValue: "0.8",
-            result: "鍚堟牸",
-          },
-        ],
-      },
-      {
-        id: 2001,
-        checkTime: "2024-03-01 11:30:00",
-        workOrderNo: row.productNo,
-        process: row.processName,
-        checkName: "璐ㄩ噺閮�-鐜嬪缓鍥�",
-        productName: row.productName,
-        model: row.model,
-        unit: row.unit,
-        quantity: row.completedQuantity,
-        checkCompany: "鍐呴儴瀹為獙瀹�",
-        checkResult: "鍚堟牸",
-        inspectItems: [
-          {
-            id: 1,
-            itemName: "澶栧緞灏哄",
-            unit: "mm",
-            standardValue: "100.00卤0.05",
-            controlValue: "100.00卤0.03",
-            actualValue: "100.01",
-            result: "鍚堟牸",
-          },
-          {
-            id: 2,
-            itemName: "鍐呭緞灏哄",
-            unit: "mm",
-            standardValue: "50.00+0.02/-0",
-            controlValue: "50.00+0.01/-0",
-            actualValue: "50.01",
-            result: "鍚堟牸",
-          },
-          {
-            id: 3,
-            itemName: "琛ㄩ潰绮楃硻搴�",
-            unit: "Ra",
-            standardValue: "鈮�1.6",
-            controlValue: "鈮�1.2",
-            actualValue: "0.8",
-            result: "鍚堟牸",
-          },
-        ],
-      },
-    ];
+    // row 鏄� workOrderList 涓殑涓�椤�
+    const inspects = row.inspectList || [];
+    qualityRecords.value = inspects.map(i => ({
+      ...i.inspect,
+      reportNo: i.reportNo,
+      userName: i.reportMain?.userName || "-",
+      inspectParamList: i.inspectParamList || [],
+      inspectFileList: i.inspectFileList || [],
+    }));
     qualityDialogVisible.value = true;
   };
 
-  onMounted(() => {
+  onMounted(async () => {
+    // 鍒濆鍔犺浇鍒楄〃
+    await handleNpsNoSearch();
+
     if (route.query.npsNo) {
       const npsNo = route.query.npsNo;
       const found = npsNoOptions.value.find(item => item.npsNo === npsNo);
@@ -540,23 +401,23 @@
         selectedNpsNo.value = found.id;
         handleSearch(found.id);
       } else {
-        // 濡傛灉娌℃壘鍒帮紝鍒涘缓涓�涓复鏃剁殑
-        const mockItem = {
-          id: Date.now(),
-          npsNo: npsNo,
-          productName: route.query.productName || "绮惧瘑娑插帇缂�",
-          model: route.query.model || "HG-100/50-500",
-          materialCode: "MAT-2024-MOCK",
-          quantity: 100,
-          unit: "浠�",
-          status: 1,
-          customerName: "妯℃嫙瀹㈡埛",
-          startTime: "2024-03-01",
-          completionStatus: 50,
-        };
-        npsNoOptions.value.push(mockItem);
-        selectedNpsNo.value = mockItem.id;
-        handleSearch(mockItem.id);
+        // 濡傛灉鍒楄〃涓病鏈夛紙鍙兘鏄垎椤靛師鍥狅級锛屽垯鏍规嵁 npsNo 鍐嶆绮惧噯鎼滅储
+        try {
+          const res = await productOrderListPage({
+            npsNo,
+            pageNum: -1,
+            pageSize: -1,
+          });
+          const records = res.data?.records || res.rows || [];
+          if (records.length > 0) {
+            const item = records[0];
+            npsNoOptions.value.unshift(item);
+            selectedNpsNo.value = item.id;
+            handleSearch(item.id);
+          }
+        } catch (error) {
+          console.error("鑾峰彇璺敱鍙傛暟瀵瑰簲鐨勮鍗曞け璐�", error);
+        }
       }
     }
   });

--
Gitblit v1.9.3