1. 管理员管理模块拆分
2. 图片上传自动压缩(大于850kb) 3. 省市区选择组件重构,支持搜索
This commit is contained in:
@@ -43,6 +43,7 @@ const QuickReplyBubbles = computed(() => {
|
||||
import CustomTextarea from './CustomTextarea.vue';
|
||||
import EmojiPicker from './EmojiPicker.vue';
|
||||
import FileUploadPreview from './FileUploadPreview.vue';
|
||||
import { prepareImageForUpload } from '#/utils/prepare-image-upload';
|
||||
|
||||
// 定义 props
|
||||
const props = defineProps({
|
||||
@@ -226,7 +227,7 @@ const handlePasteFile = (file) => {
|
||||
};
|
||||
|
||||
// 处理粘贴的文件
|
||||
const handleFileFromPaste = (file, type) => {
|
||||
const handleFileFromPaste = async (file, type) => {
|
||||
// 文件大小检查
|
||||
const maxSize = type === 'image' ? 10 * 1024 * 1024 : 50 * 1024 * 1024;
|
||||
if (file.size > maxSize) {
|
||||
@@ -237,14 +238,27 @@ const handleFileFromPaste = (file, type) => {
|
||||
return;
|
||||
}
|
||||
|
||||
let uploadFile = file;
|
||||
let compressMeta = null;
|
||||
|
||||
if (type === 'image') {
|
||||
const prepared = await prepareImageForUpload(file);
|
||||
if (!prepared.file) {
|
||||
return;
|
||||
}
|
||||
uploadFile = prepared.file;
|
||||
compressMeta = prepared.meta;
|
||||
}
|
||||
|
||||
const reader = new FileReader();
|
||||
reader.addEventListener('load', (e) => {
|
||||
uploadPreview.value = {
|
||||
type,
|
||||
url: e.target.result,
|
||||
name: file.nick_name,
|
||||
size: file.size,
|
||||
file,
|
||||
name: file.name,
|
||||
size: uploadFile.size,
|
||||
file: uploadFile,
|
||||
compressMeta,
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user