From 8bba0a2d08c7abc07604a0654661efc884e5d751 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期六, 16 五月 2026 15:23:17 +0800
Subject: [PATCH] 审批列表和审批模板页面
---
src/components/Dialog/FileList.vue | 70 ++++++++++++++++++++++-------------
1 files changed, 44 insertions(+), 26 deletions(-)
diff --git a/src/components/Dialog/FileList.vue b/src/components/Dialog/FileList.vue
index 6e0ca23..b0e78cf 100644
--- a/src/components/Dialog/FileList.vue
+++ b/src/components/Dialog/FileList.vue
@@ -36,9 +36,16 @@
<el-table-column v-if="showActions"
fixed="right"
label="鎿嶄綔"
- :width="120"
+ :width="150"
align="center">
<template #default="scope">
+ <el-button link
+ type="primary"
+ size="small"
+ class="download-link"
+ @click="previewFile(scope.row.previewURL)">
+ 棰勮
+ </el-button>
<el-button link
type="primary"
size="small"
@@ -58,9 +65,11 @@
</el-table>
</div>
</el-dialog>
+ <filePreview ref="filePreviewRef" />
</template>
<script setup>
+import { ElMessage } from 'element-plus'
import { ref, computed, getCurrentInstance, onMounted, watch } from "vue";
import AttachmentUpload from "@/components/AttachmentUpload/file/index.vue";
import {
@@ -68,6 +77,8 @@
deleteAttachment,
createAttachment,
} from "@/api/basicData/storageAttachment.js";
+ import filePreview from '@/components/filePreview/index.vue'
+ const filePreviewRef = ref()
const props = defineProps({
visible: {
@@ -122,6 +133,15 @@
isShow.value = false;
};
+ // 棰勮鏂囦欢
+ const previewFile = (url) => {
+ if (url) {
+ filePreviewRef.value.open(url)
+ } else {
+ ElMessage.warning('鏂囦欢鍦板潃鏃犳晥锛屾棤娉曢瑙�')
+ }
+ }
+
const handleUpload = () => {
uploadDialogVisible.value = true;
};
@@ -129,22 +149,23 @@
const saveUpload = async () => {
// 妫�鏌ユ槸鍚︽湁鏂颁笂浼犵殑鏂囦欢
if (newFileList.value.length > 0) {
- try {
- await createAttachment({
- application: "file",
- recordType: props.recordType,
- recordId: props.recordId,
- storageBlobDTOs: [...newFileList.value, ...tableData.value],
- });
- newFileList.value = [];
- // 鍒锋柊鍒楄〃
- setList();
- } catch (error) {
- proxy?.$modal?.msgError("涓婁紶澶辫触");
- }
+ createAttachment({
+ application: "file",
+ recordType: props.recordType,
+ recordId: props.recordId,
+ storageBlobDTOs: [...newFileList.value, ...tableData.value],
+ }).then((res) => {
+ if (res && res.code === 200) {
+ proxy?.$modal?.msgSuccess("涓婁紶鎴愬姛");
+ newFileList.value = [];
+ // 鍒锋柊鍒楄〃
+ setList();
+ }
+ }).finally(() => {
+ uploadDialogVisible.value = false;
+ })
}
- uploadDialogVisible.value = false;
- };
+ }
const closeUpload = () => {
newFileList.value = [];
@@ -152,13 +173,12 @@
};
const handleDelete = async (row, index) => {
- try {
- await deleteAttachment([row.storageAttachmentId]);
- proxy?.$modal?.msgSuccess("鍒犻櫎鎴愬姛");
- setList();
- } catch (error) {
- proxy?.$modal?.msgError("鍒犻櫎澶辫触");
- }
+ deleteAttachment([row.storageAttachmentId]).then((res) => {
+ if (res && res.code === 200) {
+ proxy?.$modal?.msgSuccess("鍒犻櫎鎴愬姛");
+ setList();
+ }
+ })
};
const setList = () => {
@@ -166,9 +186,7 @@
recordType: props.recordType,
recordId: props.recordId,
}).then(res => {
- if (res && res.data) {
- tableData.value = res.data || [];
- }
+ tableData.value = (res && res.data) || [];
});
};
--
Gitblit v1.9.3