From c003635a8ac4c80b39e6b3c2808bc4cf3ed58a13 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Fri, 29 Aug 2025 17:51:30 +0800
Subject: [PATCH] feat:修改方法

---
 src/views/resource/components/spotDetails.vue |   62 +++++++++++++++++++++----------
 1 files changed, 42 insertions(+), 20 deletions(-)

diff --git a/src/views/resource/components/spotDetails.vue b/src/views/resource/components/spotDetails.vue
index cd160e0..218eae1 100644
--- a/src/views/resource/components/spotDetails.vue
+++ b/src/views/resource/components/spotDetails.vue
@@ -164,23 +164,22 @@
 const spotTypeOptions = ref([]);
 const infoList = ref([
   { name: '文件名称', value: '', field: 'file_name', editable: true },
-  { name: '图斑类型', value: '', field: 'patches_type_desc', editable: true },
+  { name: '图斑类型', value: '', field: 'lot_type_id', editable: true }, 
   { name: '图斑数量', value: '', field: 'patches_num', editable: false },
   { name: '异常图斑数量', value: '', field: 'exception_num', editable: false },
   { name: '行政区划', value: '', field: 'areaName', editable: false },
   { name: '数据来源', value: '', field: 'dataFrom', editable: false },
   { name: '创建时间', value: '', field: 'create_time', editable: false },
   { name: '创建人', value: '', field: 'user_name', editable: false },
-]);
-watch(
-  () => props.spotTypeOption,
-  newOptions => {
-    if (newOptions) {
-      spotTypeOptions.value = newOptions;
-    }
-  },
-  { immediate: true }
-);
+])
+watch(() => props.spotTypeOption, (newOptions) => {
+  if (newOptions) {
+    spotTypeOptions.value = newOptions.map(opt => ({
+      label: opt.label,
+      value: String(opt.value) 
+    }));
+  }
+}, { immediate: true });
 watch(
   () => props.detailList,
   newVal => {
@@ -190,15 +189,38 @@
   },
   { immediate: true }
 );
-
-// 更新infoList的方法
-const updateInfoList = detailData => {
+// 将 lot_type_id 转换为对应的 label
+const getPatchTypeLabel = (lotTypeId) => {
+  const option = spotTypeOptions.value.find(opt => opt.value === String(lotTypeId));
+  return option ? option.label : '';
+};
+const updateInfoList = (detailData) => {
   infoList.value = infoList.value.map(item => {
-    // 根据field字段匹配props.detailList中的值
-    const fieldValue = detailData[item.field];
+    let value = detailData[item.field] !== undefined ? detailData[item.field] : item.value;
+    // 处理图斑类型字段
+    if (item.name === '图斑类型') {
+      // 如果有 patches_type_desc,显示它(但存储的是 lot_type_id)
+      if (detailData.patches_type_desc !== undefined) {
+        return {
+          ...item,
+          value: detailData.patches_type_desc,
+          // 保留原始 lot_type_id 用于提交
+          originalValue: detailData.lot_type_id
+        };
+      }
+      // 否则根据 lot_type_id 查找对应的 label
+      else if (detailData.lot_type_id !== undefined) {
+        return {
+          ...item,
+          value: getPatchTypeLabel(detailData.lot_type_id),
+          originalValue: detailData.lot_type_id
+        };
+      }
+    }
+    
     return {
       ...item,
-      value: fieldValue !== undefined ? fieldValue : item.value,
+      value: value
     };
   });
 };
@@ -396,13 +418,13 @@
 const handleSave = () => {
   const fileNameItem = infoList.value.find(item => item.name === '文件名称');
   const patchTypeItem = infoList.value.find(item => item.name === '图斑类型');
+  
   const updateParams = {
     file_name: fileNameItem?.value || '',
-    lot_type_id: patchTypeItem?.value || '',
-    type: patchTypeItem?.value || '',
+    lot_type_id: patchTypeItem?.originalValue || patchTypeItem?.value || '', 
+    type: patchTypeItem?.originalValue || patchTypeItem?.value || '', 
     id: props.detailList.id,
   };
-  console.log('保存', updateParams);
 
   patchEditApi(updateParams).then(res => {
     ElMessage.success(res.data.data);

--
Gitblit v1.9.3