From b0427b296797a8aac8f91fae9522e2d3c69cd81b Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 22 五月 2026 21:54:44 +0800
Subject: [PATCH] fix: 计量器具台账附件上传接口

---
 src/views/equipmentManagement/measurementEquipment/index.vue    |    2 
 src/views/equipmentManagement/measurementEquipment/filesDia.vue |   48 ++++++++++++------------
 src/api/equipmentManagement/measurementEquipment.js             |   27 +++++++++++++
 3 files changed, 52 insertions(+), 25 deletions(-)

diff --git a/src/api/equipmentManagement/measurementEquipment.js b/src/api/equipmentManagement/measurementEquipment.js
index 8bb8a7f..ba73317 100644
--- a/src/api/equipmentManagement/measurementEquipment.js
+++ b/src/api/equipmentManagement/measurementEquipment.js
@@ -52,4 +52,31 @@
         method:"post",
         data
     })
+}
+
+// 閫氱敤闄勪欢鏌ヨ
+export function getStorageAttachmentList(query) {
+  return request({
+    url: "/storageAttachment/list",
+    method: "get",
+    params: query,
+  });
+}
+
+// 閫氱敤闄勪欢淇濆瓨
+export function addStorageAttachment(data) {
+  return request({
+    url: "/storageAttachment/add",
+    method: "post",
+    data: data,
+  });
+}
+
+// 閫氱敤闄勪欢鍒犻櫎
+export function delStorageAttachment(ids) {
+  return request({
+    url: "/storageAttachment/delete",
+    method: "delete",
+    data: ids,
+  });
 }
\ No newline at end of file
diff --git a/src/views/equipmentManagement/measurementEquipment/filesDia.vue b/src/views/equipmentManagement/measurementEquipment/filesDia.vue
index 16c026e..9d78891 100644
--- a/src/views/equipmentManagement/measurementEquipment/filesDia.vue
+++ b/src/views/equipmentManagement/measurementEquipment/filesDia.vue
@@ -13,7 +13,7 @@
             :action="uploadUrl"
             :on-success="handleUploadSuccess"
             :on-error="handleUploadError"
-            name="file"
+            name="files"
             :show-file-list="false"
             :headers="headers"
             style="display: inline;margin-right: 10px"
@@ -51,10 +51,10 @@
 import filePreview from '@/components/filePreview/index.vue'
 import PIMTable from "@/components/PIMTable/PIMTable.vue";
 import {
-  fileAdd,
-  fileDel,
-  fileListPage
-} from "@/api/financialManagement/revenueManagement.js";
+  addStorageAttachment,
+  delStorageAttachment,
+  getStorageAttachmentList
+} from "@/api/equipmentManagement/measurementEquipment.js";
 const { proxy } = getCurrentInstance()
 const emit = defineEmits(['close'])
 
@@ -101,7 +101,7 @@
 const headers = ref({
   Authorization: "Bearer " + getToken(),
 });
-const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/file/upload"); // 涓婁紶鐨勫浘鐗囨湇鍔″櫒鍦板潃
+const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // 涓婁紶鐨勬湇鍔″櫒鍦板潃
 
 // 鎵撳紑寮规
 const openDialog = (row,type) => {
@@ -113,12 +113,13 @@
 const paginationSearch = (obj) => {
 	page.current = obj.page;
 	page.size = obj.limit;
+	// 鍓嶇鍒嗛〉鏆備笉澶勭悊锛岀洿鎺ヨ皟鐢ㄨ幏鍙栧叏閲忓垪琛�
 	getList();
 };
 const getList = () => {
-  fileListPage({accountId: currentId.value,accountType:accountType.value, ...page}).then(res => {
-    tableData.value = res.data.records;
-		page.total = res.data.total;
+  getStorageAttachmentList({recordId: currentId.value, recordType: accountType.value}).then(res => {
+    tableData.value = res.data;
+		page.total = res.data ? res.data.length : 0;
   })
 }
 // 琛ㄦ牸閫夋嫨鏁版嵁
@@ -134,22 +135,21 @@
 // 涓婁紶鎴愬姛澶勭悊
 function handleUploadSuccess(res, file) {
   // 濡傛灉涓婁紶鎴愬姛
-  if (res.code == 200) {
-    const fileRow = {}
-    fileRow.name = res.data.originalName
-    fileRow.url = res.data.tempPath
-    uploadFile(fileRow)
+  if (res.code == 200 && res.data && res.data.length > 0) {
+    const mergedFiles = [...tableData.value, ...res.data];
+    const storageAttachmentDTO = {
+      recordType: accountType.value,
+      recordId: currentId.value,
+      application: "file",
+      storageBlobDTOs: mergedFiles
+    };
+    addStorageAttachment(storageAttachmentDTO).then(r => {
+      proxy.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛");
+      getList()
+    })
   } else {
     proxy.$modal.msgError("鏂囦欢涓婁紶澶辫触");
   }
-}
-function uploadFile(file) {
-  file.accountId = currentId.value;
-  file.accountType = accountType.value;
-  fileAdd(file).then(res => {
-    proxy.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛");
-    getList()
-  })
 }
 // 涓婁紶澶辫触澶勭悊
 function handleUploadError() {
@@ -163,7 +163,7 @@
 const handleDelete = () => {
   let ids = [];
   if (selectedRows.value.length > 0) {
-    ids = selectedRows.value.map((item) => item.id);
+    ids = selectedRows.value.map((item) => item.storageAttachmentId);
   } else {
     proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
     return;
@@ -173,7 +173,7 @@
     cancelButtonText: "鍙栨秷",
     type: "warning",
   }).then(() => {
-    fileDel(ids).then((res) => {
+    delStorageAttachment(ids).then((res) => {
       proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
       getList();
     });
diff --git a/src/views/equipmentManagement/measurementEquipment/index.vue b/src/views/equipmentManagement/measurementEquipment/index.vue
index d2ec2d7..c8789d8 100644
--- a/src/views/equipmentManagement/measurementEquipment/index.vue
+++ b/src/views/equipmentManagement/measurementEquipment/index.vue
@@ -177,7 +177,7 @@
 
 // 鎵撳紑闄勪欢寮规
 const openFilesFormDia = (row) => {
-    filesDia.value?.openDialog(row,'璁¢噺鍣ㄥ叿鍙拌处')
+    filesDia.value?.openDialog(row,'measuring_instrument_ledger')
 };
 
 const dbRowClick = (row)=>{

--
Gitblit v1.9.3