From 7b7accc4ce1c1ccfc7a006980e1d3e4d0fbc56e8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 06 一月 2026 16:57:33 +0800
Subject: [PATCH] 双奇点 1.编辑采购台账时,删除产品时,弹出两个提示需修改下 2.采购台账添加附件操作按钮和页面
---
src/api/publicApi/commonFile.js | 19 ++++++
src/views/procurementManagement/procurementLedger/index.vue | 38 ++++++++----
src/views/procurementManagement/procurementLedger/fileList.vue | 67 ++++++++++++++++++++++
3 files changed, 112 insertions(+), 12 deletions(-)
diff --git a/src/api/publicApi/commonFile.js b/src/api/publicApi/commonFile.js
new file mode 100644
index 0000000..5157304
--- /dev/null
+++ b/src/api/publicApi/commonFile.js
@@ -0,0 +1,19 @@
+// 鍏叡鏂囦欢绠$悊鎺ュ彛
+import request from '@/utils/request'
+
+// 鍒犻櫎鍏叡鏂囦欢
+export function delCommonFile(ids) {
+ return request({
+ url: '/commonFile/delCommonFile',
+ method: 'delete',
+ data: ids
+ })
+}
+// 寮�绁ㄥ彴璐︽枃浠跺垹闄�
+export function delCommonFileInvoiceLedger(ids) {
+ return request({
+ url: '/invoiceLedger/delFile',
+ method: 'delete',
+ data: ids
+ })
+}
\ No newline at end of file
diff --git a/src/views/procurementManagement/procurementLedger/fileList.vue b/src/views/procurementManagement/procurementLedger/fileList.vue
new file mode 100644
index 0000000..fb392c5
--- /dev/null
+++ b/src/views/procurementManagement/procurementLedger/fileList.vue
@@ -0,0 +1,67 @@
+<template>
+ <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="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>
+ </el-dialog>
+ <filePreview ref="filePreviewRef" />
+</template>
+
+<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([])
+const { proxy } = getCurrentInstance();
+const filePreviewRef = ref()
+const handleClose = () => {
+ dialogVisible.value = false
+}
+const open = (list) => {
+ dialogVisible.value = true
+ tableData.value = list
+}
+const downLoadFile = (row) => {
+ proxy.$download.name(row.url);
+
+}
+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
+})
+</script>
+
+<style></style>
\ No newline at end of file
diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index fff44de..36ff34b 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -53,7 +53,7 @@
show-summary
:summary-method="summarizeMainTable"
@expand-change="expandChange"
- height="calc(100vh - 18.5em)"
+ height="calc(100vh - 19em)"
>
<el-table-column align="center" type="selection" width="55" />
<el-table-column type="expand">
@@ -103,12 +103,10 @@
<el-table-column
label="閿�鍞悎鍚屽彿"
prop="salesContractNo"
- width="200"
show-overflow-tooltip
/>
<el-table-column
label="渚涘簲鍟嗗悕绉�"
- width="240"
prop="supplierName"
show-overflow-tooltip
/>
@@ -155,16 +153,15 @@
type="primary"
size="small"
@click="openForm('edit', scope.row)"
- :disabled="scope.row.receiptPaymentAmount>0 || scope.row.recorderName !== userStore.nickName"
>缂栬緫</el-button
>
-<!-- <el-button-->
-<!-- link-->
-<!-- type="success"-->
-<!-- size="small"-->
-<!-- @click="showQRCode(scope.row)"-->
-<!-- >鐢熸垚浜岀淮鐮�</el-button-->
-<!-- >-->
+ <el-button
+ link
+ type="primary"
+ size="small"
+ @click="downLoadFile(scope.row)"
+ >闄勪欢</el-button
+ >
</template>
</el-table-column>
@@ -206,6 +203,7 @@
<el-select
v-model="form.salesLedgerId"
placeholder="璇烽�夋嫨"
+ filterable
clearable
@change="salesLedgerChange"
>
@@ -225,6 +223,7 @@
<el-select
v-model="form.supplierId"
placeholder="璇烽�夋嫨"
+ filterable
clearable
>
<el-option
@@ -278,6 +277,7 @@
placeholder="璇烽�夋嫨"
clearable
disabled
+ filterable
>
<el-option
v-for="item in userList"
@@ -787,6 +787,7 @@
</div>
</template>
</el-dialog>
+ <FileList ref="fileListRef" />
</div>
</template>
@@ -797,6 +798,7 @@
import { Search } from "@element-plus/icons-vue";
import { ElMessageBox } from "element-plus";
import { userListNoPage } from "@/api/system/user.js";
+import FileList from "./fileList.vue";
import {
getSalesLedgerWithProducts,
addOrUpdateSalesLedgerProduct,
@@ -1238,6 +1240,13 @@
proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
return;
}
+ // 淇濊瘉鑷冲皯淇濈暀涓�鏉′骇鍝佷俊鎭�
+ const remainingCount =
+ productData.value.length - productSelectedRows.value.length;
+ if (remainingCount < 1) {
+ proxy.$modal.msgWarning("鑷冲皯淇濈暀涓�鏉′骇鍝佷俊鎭紝鏃犳硶鍏ㄩ儴鍒犻櫎");
+ return;
+ }
if (operationType.value === "add") {
productSelectedRows.value.forEach((selectedRow) => {
const index = productData.value.findIndex(
@@ -1261,7 +1270,7 @@
delProduct(ids).then((res) => {
proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
closeProductDia();
- getSalesLedgerWithProducts({ id: currentId.value, type: 2 }).then(
+ getPurchaseById({ id: currentId.value, type: 2 }).then(
(res) => {
productData.value = res.productData;
}
@@ -1413,6 +1422,11 @@
}
};
+const fileListRef = ref(null)
+const downLoadFile = (row) => {
+ fileListRef.value.open(row.salesLedgerFiles)
+}
+
// 鏄剧ず浜岀淮鐮�
const showQRCode = async (row) => {
try {
--
Gitblit v1.9.3