From 731d07b73a4d311b62d72fe1b8b9d0c4acc2b25c Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 05 十二月 2025 16:42:11 +0800
Subject: [PATCH] 1.海川开心-附件模块无法删除,增加删除选项,附件存在突然多出文件的bug

---
 src/api/publicApi/commonFile.js                                    |   11 +++++
 src/views/procurementManagement/procurementInvoiceLedger/index.vue |   35 +++++++++++++++++
 src/views/collaborativeApproval/approvalProcess/fileList.vue       |   26 ++++++++++++
 src/views/salesManagement/salesLedger/fileList.vue                 |   26 ++++++++++++
 4 files changed, 95 insertions(+), 3 deletions(-)

diff --git a/src/api/publicApi/commonFile.js b/src/api/publicApi/commonFile.js
new file mode 100644
index 0000000..b1b07c7
--- /dev/null
+++ b/src/api/publicApi/commonFile.js
@@ -0,0 +1,11 @@
+// 鍏叡鏂囦欢绠$悊鎺ュ彛
+import request from '@/utils/request'
+
+// 鍒犻櫎鍏叡鏂囦欢
+export function delCommonFile(ids) {
+  return request({
+    url: '/commonFile/delCommonFile',
+    method: 'delete',
+    data: ids
+  })
+}
\ No newline at end of file
diff --git a/src/views/collaborativeApproval/approvalProcess/fileList.vue b/src/views/collaborativeApproval/approvalProcess/fileList.vue
index da37db2..c0055fe 100644
--- a/src/views/collaborativeApproval/approvalProcess/fileList.vue
+++ b/src/views/collaborativeApproval/approvalProcess/fileList.vue
@@ -2,10 +2,11 @@
   <el-dialog v-model="dialogVisible" title="闄勪欢" width="40%" :before-close="handleClose">
     <el-table :data="tableData" border height="40vh">
       <el-table-column label="闄勪欢鍚嶇О" prop="name" min-width="400" show-overflow-tooltip />
-      <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">
+      <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">
         <template #default="scope">
           <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">涓嬭浇</el-button>
           <el-button link type="primary" size="small" @click="lookFile(scope.row)">棰勮</el-button>
+          <el-button link type="danger" size="small" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -16,6 +17,8 @@
 <script setup>
 import { ref } from 'vue'
 import filePreview from '@/components/filePreview/index.vue'
+import { ElMessageBox, ElMessage } from 'element-plus'
+import { delCommonFile } from '@/api/publicApi/commonFile.js'
 
 const dialogVisible = ref(false)
 const tableData = ref([])
@@ -35,6 +38,27 @@
 const lookFile = (row) => {
   filePreviewRef.value.open(row.url)
 }
+// 鍒犻櫎闄勪欢
+const handleDelete = (row) => {
+  ElMessageBox.confirm(`纭鍒犻櫎闄勪欢"${row.name}"鍚楋紵`, '鎻愮ず', {
+    confirmButtonText: '纭畾',
+    cancelButtonText: '鍙栨秷',
+    type: 'warning'
+  }).then(() => {
+    delCommonFile([row.id]).then(() => {
+      ElMessage.success('鍒犻櫎鎴愬姛')
+      // 浠庡垪琛ㄤ腑绉婚櫎宸插垹闄ょ殑闄勪欢
+      const index = tableData.value.findIndex(item => item.id === row.id)
+      if (index !== -1) {
+        tableData.value.splice(index, 1)
+      }
+    }).catch(() => {
+      ElMessage.error('鍒犻櫎澶辫触')
+    })
+  }).catch(() => {
+    ElMessage.info('宸插彇娑堝垹闄�')
+  })
+}
 defineExpose({
   open
 })
diff --git a/src/views/procurementManagement/procurementInvoiceLedger/index.vue b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
index da6160c..3de88ec 100644
--- a/src/views/procurementManagement/procurementInvoiceLedger/index.vue
+++ b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -73,6 +73,14 @@
                 <el-dropdown-item :icon="Upload" command="upload">
                   涓婁紶
                 </el-dropdown-item>
+                <el-dropdown-item
+                  v-if="row.commonFiles.length !== 0"
+                  :icon="Delete"
+                  command="delete"
+                  style="color: #f56c6c;"
+                >
+                  鍒犻櫎
+                </el-dropdown-item>
               </el-dropdown-menu>
             </template>
           </el-dropdown>
@@ -109,14 +117,16 @@
   Search,
   Upload,
   EditPen,
+  Delete,
 } from "@element-plus/icons-vue";
 import {
 	delRegistration,
 	productRecordPage,
 	productUploadFile,
 } from "@/api/procurementManagement/procurementInvoiceLedger.js";
+import { delCommonFile } from "@/api/publicApi/commonFile.js";
 import { onMounted } from "vue";
-import { ElMessageBox } from "element-plus";
+import { ElMessageBox, ElMessage } from "element-plus";
 import UploadModal from "./Modal/UploadModal.vue";
 import EditModal from "./Modal/EditModal.vue";
 import useUserStore from "@/store/modules/user.js";
@@ -299,6 +309,29 @@
       console.log(row.commonFiles);
       openUoload(row.ticketRegistrationId);
       break;
+    case "delete":
+      // 鍒犻櫎鎵�鏈夐檮浠�
+      if (row.commonFiles.length > 0) {
+        ElMessageBox.confirm(`纭鍒犻櫎璇ヨ褰曠殑鎵�鏈夐檮浠跺悧锛焋, '鎻愮ず', {
+          confirmButtonText: '纭畾',
+          cancelButtonText: '鍙栨秷',
+          type: 'warning'
+        }).then(() => {
+          // 鑾峰彇鎵�鏈夐檮浠剁殑ID
+          const fileIds = row.commonFiles.map(file => file.id);
+          
+          delCommonFile(fileIds).then(() => {
+            ElMessage.success('鍒犻櫎鎴愬姛')
+            // 鍒锋柊鏁版嵁
+            getTableData();
+          }).catch(() => {
+            ElMessage.error('鍒犻櫎澶辫触')
+          })
+        }).catch(() => {
+          ElMessage.info('宸插彇娑堝垹闄�')
+        })
+      }
+      break;
   }
 };
 
diff --git a/src/views/salesManagement/salesLedger/fileList.vue b/src/views/salesManagement/salesLedger/fileList.vue
index da37db2..fb392c5 100644
--- a/src/views/salesManagement/salesLedger/fileList.vue
+++ b/src/views/salesManagement/salesLedger/fileList.vue
@@ -2,10 +2,11 @@
   <el-dialog v-model="dialogVisible" title="闄勪欢" width="40%" :before-close="handleClose">
     <el-table :data="tableData" border height="40vh">
       <el-table-column label="闄勪欢鍚嶇О" prop="name" min-width="400" show-overflow-tooltip />
-      <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">
+      <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">
         <template #default="scope">
           <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">涓嬭浇</el-button>
           <el-button link type="primary" size="small" @click="lookFile(scope.row)">棰勮</el-button>
+          <el-button link type="danger" size="small" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -15,7 +16,9 @@
 
 <script setup>
 import { ref } from 'vue'
+import { ElMessageBox, ElMessage } from 'element-plus'
 import filePreview from '@/components/filePreview/index.vue'
+import { delCommonFile } from '@/api/publicApi/commonFile.js'
 
 const dialogVisible = ref(false)
 const tableData = ref([])
@@ -35,6 +38,27 @@
 const lookFile = (row) => {
   filePreviewRef.value.open(row.url)
 }
+// 鍒犻櫎闄勪欢
+const handleDelete = (row) => {
+  ElMessageBox.confirm(`纭鍒犻櫎闄勪欢"${row.name}"鍚楋紵`, '鍒犻櫎纭', {
+    confirmButtonText: '纭',
+    cancelButtonText: '鍙栨秷',
+    type: 'warning',
+  }).then(() => {
+    delCommonFile([row.id]).then(() => {
+      ElMessage.success('鍒犻櫎鎴愬姛')
+      // 浠庡垪琛ㄤ腑绉婚櫎宸插垹闄ょ殑闄勪欢
+      const index = tableData.value.findIndex(item => item.id === row.id)
+      if (index !== -1) {
+        tableData.value.splice(index, 1)
+      }
+    }).catch(() => {
+      ElMessage.error('鍒犻櫎澶辫触')
+    })
+  }).catch(() => {
+    proxy.$modal.msg('宸插彇娑堝垹闄�')
+  })
+}
 defineExpose({
   open
 })

--
Gitblit v1.9.3