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