附件管理bug修复

This commit is contained in:
Double-_-Z 2025-01-12 11:39:54 +08:00
parent 3d9b804f62
commit 19fa389986
2 changed files with 30 additions and 14 deletions

View File

@ -5,17 +5,17 @@
<el-row :gutter="35">
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="模块名称:">
{{ state.data.moduleName }}
{{ state.data.moduleName || '暂无' }}
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="标签名称:">
{{ state.data.labelName }}
{{ state.data.labelName || '暂无' }}
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="附件名称:">
{{ state.data.name }}
{{ state.data.name || '暂无' }}
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
@ -30,8 +30,9 @@
</video>
</div>
<div v-else-if="fileType === 'image'">
<img
:src="encodeURI(viteUrl + state.data.path)"
<el-image
:preview-src-list="[jpgFormatter(state)]"
:src="jpgFormatter(state)"
alt="附件图片"
style="width: 100%; height: auto; border-radius: 4px"
/>
@ -105,14 +106,16 @@ const textContent = ref<string>('');
const determineFileType = async () => {
console.log(state.data);
if (!state.data.path) return;
const normalizedPath = state.data.path.replace(/\\/g, '/'); //
const extension = normalizedPath.split('.').pop()?.toLowerCase();
const normalizedPath = encodeURI(state.data.path); //
// const extension = normalizedPath.split('.').pop()?.toLowerCase();
const extension = normalizedPath?.toLowerCase();
console.log(extension);
if (['mp4', 'avi', 'mov'].includes(extension || '')) {
if (/\.(mp4|avi|mov)/.test(extension)) {
fileType.value = 'video';
} else if (['jpg', 'jpeg', 'png', 'gif', 'bmp'].includes(extension || '')) {
} else if (/\.(jpg|jpeg|png|gif|bmp)/.test(extension)) {
fileType.value = 'image';
} else if (['txt', 'log', 'md'].includes(extension || '')) {
} else if (/\.(txt|log|md)/.test(extension)) {
fileType.value = 'text';
try {
const response = await fetch(viteUrl + normalizedPath);
@ -166,6 +169,14 @@ const getAttachmentDetailById = async (id: number) => {
}
};
//
const jpgFormatter = (row: any) => {
let newPath = row?.data ? row.data.path : row.path;
newPath = newPath.includes('://')?newPath : encodeURI(newPath);
return `${newPath}`;
}
//
const getModuleList = async () => {
try {

View File

@ -43,10 +43,10 @@
ref="tableRef"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="name" label="附件名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="moduleName" label="模块" show-overflow-tooltip></el-table-column>
<el-table-column prop="labelName" label="标签" show-overflow-tooltip></el-table-column>
<el-table-column prop="name" label="上传者" show-overflow-tooltip></el-table-column>
<el-table-column prop="name" label="附件名称" :formatter="dateCommonFormatter" show-overflow-tooltip></el-table-column>
<el-table-column prop="moduleName" label="模块" :formatter="dateCommonFormatter" show-overflow-tooltip></el-table-column>
<el-table-column prop="labelName" label="标签" :formatter="dateCommonFormatter" show-overflow-tooltip></el-table-column>
<el-table-column prop="uploadName" label="上传者" :formatter="dateCommonFormatter" show-overflow-tooltip></el-table-column>
<el-table-column prop="createtime" label="创建时间" :formatter="dateFormatter" show-overflow-tooltip></el-table-column>
<el-table-column label="操作">
<template #default="scope">
@ -194,6 +194,11 @@ const toShowDetail = (row: any) => {
router.push({ path: '/attachment/detail', query: { id: row.id, moduleName: row.moduleName, labelName: row.labelName } });
};
//
const dateCommonFormatter = (row: any, column: TableColumnCtx<String>) => {
return row[column.property] || '暂无';
};
//
const dateFormatter = (row: any, column: TableColumnCtx<String>) => {
let date = new Date(row.createtime);