fix(DetailsComments): 修复图片上传功能,改为直接上传文件而非base64,并添加上传配置获取逻辑

This commit is contained in:
DESKTOP-RQ919RC\Pc
2025-09-08 17:16:36 +08:00
parent 9572eaa81f
commit ee191311ea
50 changed files with 442 additions and 393 deletions

View File

@@ -17,7 +17,7 @@
<div class="bottom flexacenter">
<div class="operate flexacenter">
<div class="item" :class="{ pitch: editEmojiState }" style="z-index: 2;">
<div class="item" :class="{ pitch: editEmojiState }" style="z-index: 2">
<el-popover placement="left-start" popper-class="emoji-popover" :width="584" trigger="click" v-model:visible="editEmojiState" :teleported="false">
<template #reference>
<img class="icon" src="@/assets/img/smiling-face.png" alt="" />
@@ -824,7 +824,7 @@ const handleInputPaste = (event, index, ii) => {
reader.onload = (e) => {
const base64 = e.target.result;
uploadImg(base64).then((res) => {
uploadImg(file).then((res) => {
const obj = {
base64,
...res,
@@ -837,10 +837,7 @@ const handleInputPaste = (event, index, ii) => {
else picture.value = obj;
}
ElMessage({
message: "上传成功",
type: "success",
});
ElMessage.success("上传成功");
});
};
reader.readAsDataURL(file);
@@ -865,7 +862,7 @@ const handleFileUpload = (event, index, i) => {
const reader = new FileReader();
reader.onload = (e) => {
const base64 = e.target.result;
uploadImg(base64).then((res) => {
uploadImg(file).then((res) => {
const obj = {
base64,
...res,
@@ -876,10 +873,7 @@ const handleFileUpload = (event, index, i) => {
else if (index != undefined) commentList.value[index]["picture"] = obj;
else picture.value = obj;
}
ElMessage({
message: "上传成功",
type: "success",
});
ElMessage.success("上传成功");
});
};
reader.readAsDataURL(file);
@@ -893,21 +887,37 @@ const closeFileUpload = (index, i) => {
};
// 上传图片 获取图片url
const uploadImg = (base64) => {
const uploadImg = (file) => {
return new Promise((resolve, reject) => {
// detailLoading.value = true
commonUploadHttp({
data: base64,
}).then((res) => {
if (res.code != 200) {
ElMessage({
message: res.message || "上传失败",
type: "error",
});
return;
}
const upload = () => {
let config = uploadConfig;
const formData = new FormData();
formData.append(config.requestName, file); // 文件数据
formData.append("type", "image"); // 文件名
formData.append("data", config.params.data); // 文件名
commonUploadHttp(config.url, formData).then((res) => {
if (res.code != 200) {
ElMessage.error(res.message || "上传失败");
return;
}
let data = res.data;
resolve(data);
});
};
if (uploadConfig) upload();
else getUploadConfig().then(() => upload());
});
};
let uploadConfig = null;
const getUploadConfig = () => {
return new Promise((resolve, reject) => {
commonUploadConfigHttp().then((res) => {
let data = res.data;
resolve(data);
uploadConfig = data;
resolve();
});
});
};