| | |
| | | <template> |
| | | <div> |
| | | <el-dialog |
| | | v-model="dialogFormVisible" |
| | | title="上传附件" |
| | | width="50%" |
| | | @close="closeDia" |
| | | > |
| | | <el-dialog v-model="dialogFormVisible" title="上传附件" width="50%" @close="closeDia"> |
| | | <div style="margin-bottom: 10px;text-align: right"> |
| | | <el-upload |
| | | v-model:file-list="fileList" |
| | | class="upload-demo" |
| | | :action="uploadUrl" |
| | | :on-success="handleUploadSuccess" |
| | | :on-error="handleUploadError" |
| | | name="files" |
| | | :show-file-list="false" |
| | | :headers="headers" |
| | | style="display: inline;margin-right: 10px" |
| | | > |
| | | <el-upload v-model:file-list="fileList" class="upload-demo" :action="uploadUrl" |
| | | :on-success="handleUploadSuccess" :on-error="handleUploadError" name="files" :show-file-list="false" |
| | | :headers="headers" style="display: inline;margin-right: 10px"> |
| | | <el-button type="primary">上传附件</el-button> |
| | | </el-upload> |
| | | <el-button type="danger" plain @click="handleDelete">删除</el-button> |
| | | </div> |
| | | <PIMTable |
| | | rowKey="id" |
| | | :column="tableColumn" |
| | | :tableData="tableData" |
| | | :page="page" |
| | | :tableLoading="tableLoading" |
| | | :isSelection="true" |
| | | @selection-change="handleSelectionChange" |
| | | @pagination="paginationSearch" |
| | | height="500" |
| | | > |
| | | <PIMTable rowKey="id" :column="tableColumn" :tableData="tableData" :page="page" :tableLoading="tableLoading" |
| | | :isSelection="true" @selection-change="handleSelectionChange" @pagination="paginationSearch" height="500"> |
| | | </PIMTable> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {ref, reactive, getCurrentInstance} from "vue"; |
| | | import {ElMessageBox} from "element-plus"; |
| | | import {getToken} from "@/utils/auth.js"; |
| | | import { ref, reactive, getCurrentInstance } from "vue"; |
| | | import { ElMessageBox } from "element-plus"; |
| | | import { getToken } from "@/utils/auth.js"; |
| | | import filePreview from '@/components/filePreview/index.vue' |
| | | import PIMTable from "@/components/PIMTable/PIMTable.vue"; |
| | | import { |
| | |
| | | }, |
| | | ]); |
| | | const page = reactive({ |
| | | current: 1, |
| | | size: 100, |
| | | total: 0, |
| | | current: 1, |
| | | size: 100, |
| | | total: 0, |
| | | }); |
| | | const tableData = ref([]); |
| | | const fileList = ref([]); |
| | |
| | | const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // 上传的服务器地址 |
| | | |
| | | // 打开弹框 |
| | | const openDialog = (row,type) => { |
| | | const openDialog = (row, type) => { |
| | | accountType.value = type; |
| | | dialogFormVisible.value = true; |
| | | currentId.value = row.id; |
| | | getList() |
| | | } |
| | | const paginationSearch = (obj) => { |
| | | page.current = obj.page; |
| | | page.size = obj.limit; |
| | | // 前端分页暂不处理,直接调用获取全量列表 |
| | | getList(); |
| | | page.current = obj.page; |
| | | page.size = obj.limit; |
| | | // 前端分页暂不处理,直接调用获取全量列表 |
| | | getList(); |
| | | }; |
| | | const getList = () => { |
| | | getStorageAttachmentList({recordId: currentId.value, recordType: accountType.value}).then(res => { |
| | | getStorageAttachmentList({ recordId: currentId.value, recordType: accountType.value }).then(res => { |
| | | tableData.value = res.data; |
| | | page.total = res.data ? res.data.length : 0; |
| | | page.total = res.data ? res.data.length : 0; |
| | | }) |
| | | } |
| | | // 表格选择数据 |
| | |
| | | function handleUploadSuccess(res, file) { |
| | | // 如果上传成功 |
| | | if (res.code == 200 && res.data && res.data.length > 0) { |
| | | const mergedFiles = [...tableData.value, ...res.data]; |
| | | const newFiles = res.data.map(item => ({ |
| | | ...item, |
| | | name: item.originalFilename || item.name |
| | | })); |
| | | const mergedFiles = [...(tableData.value || []), ...newFiles]; |
| | | const storageAttachmentDTO = { |
| | | recordType: accountType.value, |
| | | recordId: currentId.value, |
| | |
| | | } |
| | | // 下载附件 |
| | | const downLoadFile = (row) => { |
| | | proxy.$download.byUrl(row.url, row.originalFilename); |
| | | proxy.$download.byUrl(row.url, row.originalFilename); |
| | | } |
| | | // 删除 |
| | | const handleDelete = () => { |
| | |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | | <style scoped></style> |