| | |
| | | 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 => { |
| | |
| | | }, |
| | | { 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 |
| | | }; |
| | | }); |
| | | }; |
| | |
| | | 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); |