add 新增 附件上传附件支持保存扩展信息

This commit is contained in:
lau 2026-06-10 17:12:11 +08:00
parent 84cbada026
commit 382c37e896
3 changed files with 46 additions and 3 deletions

View File

@ -26,3 +26,17 @@ export interface OssQuery extends PageQuery {
export interface OssForm {
file: undefined | string;
}
export interface SysOssExt {
bizType?: string;
fileSize?: number;
contentType?: string;
source?: string;
uploadIp?: string;
remark?: string;
tags?: string[];
refId?: string;
refType?: string;
isTemp?: boolean;
md5?: string;
}

View File

@ -5,6 +5,7 @@
multiple
:action="uploadFileUrl"
:before-upload="handleBeforeUpload"
:data="uploadData"
:file-list="fileList"
:limit="limit"
:accept="fileAccept"
@ -48,6 +49,7 @@
<script setup lang="ts">
import { delOss, listByIds } from '@/api/system/oss';
import type { SysOssExt } from '@/api/system/oss/types';
import modal from '@/plugins/modal';
import { propTypes } from '@/utils/propTypes';
import { globalHeaders } from '@/utils/request';
@ -66,7 +68,12 @@ const props = defineProps({
//
isShowTip: propTypes.bool.def(true),
//
disabled: propTypes.bool.def(false)
disabled: propTypes.bool.def(false),
//
ossExt: {
type: Object as PropType<SysOssExt>,
default: undefined
}
});
const emit = defineEmits(['update:modelValue']);
@ -82,6 +89,14 @@ const showTip = computed(() => props.isShowTip && (props.fileType || props.fileS
const fileUploadRef = ref<ElUploadInstance>();
// ossExt
const uploadData = computed(() => {
if (!props.ossExt) return {};
return {
ossExt: JSON.stringify(props.ossExt)
}
});
// fileType fileAccept
const fileAccept = computed(() => props.fileType.map(type => `.${type}`).join(','));

View File

@ -7,6 +7,7 @@
list-type="picture-card"
:on-success="handleUploadSuccess"
:before-upload="handleBeforeUpload"
:data="uploadData"
:limit="limit"
:accept="fileAccept"
:on-error="handleUploadError"
@ -45,7 +46,7 @@
<script setup lang="ts">
import { compressAccurately } from 'image-conversion';
import { listByIds, delOss } from '@/api/system/oss';
import { OssVO } from '@/api/system/oss/types';
import type { OssVO, SysOssExt } from '@/api/system/oss/types';
import modal from '@/plugins/modal';
import { propTypes } from '@/utils/propTypes';
import { globalHeaders } from '@/utils/request';
@ -72,7 +73,12 @@ const props = defineProps({
default: false
},
// KB300KB300KB
compressTargetSize: propTypes.number.def(300)
compressTargetSize: propTypes.number.def(300),
//
ossExt: {
type: Object as PropType<SysOssExt>,
default: undefined
}
});
const emit = defineEmits(['update:modelValue']);
@ -90,6 +96,14 @@ const showTip = computed(() => props.isShowTip && (props.fileType || props.fileS
const imageUploadRef = ref<ElUploadInstance>();
// ossExt
const uploadData = computed(() => {
if (!props.ossExt) return {};
return {
ossExt: JSON.stringify(props.ossExt)
}
});
// fileType fileAccept
const fileAccept = computed(() => props.fileType.map(type => `.${type}`).join(','));