|
@@ -52,7 +52,7 @@ import defaultAvatar from "@/assets/images/avatar.gif";
|
|
|
import { head } from "lodash";
|
|
import { head } from "lodash";
|
|
|
|
|
|
|
|
const emit = defineEmits<{
|
|
const emit = defineEmits<{
|
|
|
- avatarUpdated: [];
|
|
|
|
|
|
|
+ avatarUpdated: [avatarUrl?: string];
|
|
|
}>();
|
|
}>();
|
|
|
|
|
|
|
|
const userInfo = localGet("geeker-user")?.userInfo || {};
|
|
const userInfo = localGet("geeker-user")?.userInfo || {};
|
|
@@ -82,6 +82,7 @@ const getUserInfo = async () => {
|
|
|
const headImg = res.data.headImg;
|
|
const headImg = res.data.headImg;
|
|
|
if (headImg && headImg !== null && headImg !== "") {
|
|
if (headImg && headImg !== null && headImg !== "") {
|
|
|
// 如果有头像,使用用户头像
|
|
// 如果有头像,使用用户头像
|
|
|
|
|
+ headImg1.value = headImg; // 初始化 headImg1
|
|
|
form.avatarList = [
|
|
form.avatarList = [
|
|
|
{
|
|
{
|
|
|
name: "avatar",
|
|
name: "avatar",
|
|
@@ -91,6 +92,7 @@ const getUserInfo = async () => {
|
|
|
];
|
|
];
|
|
|
} else {
|
|
} else {
|
|
|
// 如果 headImg 为 null 或空,使用默认头像
|
|
// 如果 headImg 为 null 或空,使用默认头像
|
|
|
|
|
+ headImg1.value = ""; // 清空 headImg1
|
|
|
form.avatarList = [
|
|
form.avatarList = [
|
|
|
{
|
|
{
|
|
|
name: "avatar",
|
|
name: "avatar",
|
|
@@ -115,6 +117,11 @@ const handleHttpUpload = async (options: UploadRequestOptions) => {
|
|
|
const fileUrl = res?.data?.fileUrl || res?.data?.[0] || res?.fileUrl;
|
|
const fileUrl = res?.data?.fileUrl || res?.data?.[0] || res?.fileUrl;
|
|
|
if (fileUrl) {
|
|
if (fileUrl) {
|
|
|
headImg1.value = fileUrl;
|
|
headImg1.value = fileUrl;
|
|
|
|
|
+ // 更新 form.avatarList 中对应文件的 URL
|
|
|
|
|
+ if (form.avatarList && form.avatarList.length > 0) {
|
|
|
|
|
+ form.avatarList[0].url = fileUrl;
|
|
|
|
|
+ form.avatarList[0].response = { fileUrl };
|
|
|
|
|
+ }
|
|
|
// 调用 onSuccess 回调,传入响应数据
|
|
// 调用 onSuccess 回调,传入响应数据
|
|
|
options.onSuccess({ fileUrl });
|
|
options.onSuccess({ fileUrl });
|
|
|
} else {
|
|
} else {
|
|
@@ -127,20 +134,42 @@ const handleHttpUpload = async (options: UploadRequestOptions) => {
|
|
|
};
|
|
};
|
|
|
const getSaveUserInfo = async () => {
|
|
const getSaveUserInfo = async () => {
|
|
|
try {
|
|
try {
|
|
|
|
|
+ // 获取头像URL:优先使用新上传的,否则从 avatarList 中获取,最后为空字符串
|
|
|
|
|
+ let avatarUrl = headImg1.value;
|
|
|
|
|
+ console.log("保存前 headImg1.value:", headImg1.value);
|
|
|
|
|
+ console.log("保存前 form.avatarList:", form.avatarList);
|
|
|
|
|
+
|
|
|
|
|
+ // 如果 headImg1.value 为空,尝试从 form.avatarList 中获取
|
|
|
|
|
+ if (!avatarUrl && form.avatarList && form.avatarList.length > 0) {
|
|
|
|
|
+ const avatarFile = form.avatarList[0];
|
|
|
|
|
+ // 从 file.url 或 file.response 中获取 URL
|
|
|
|
|
+ const fileUrl = avatarFile.url || (avatarFile.response as any)?.fileUrl || "";
|
|
|
|
|
+ // 排除默认头像
|
|
|
|
|
+ if (fileUrl && fileUrl !== defaultAvatar) {
|
|
|
|
|
+ avatarUrl = fileUrl;
|
|
|
|
|
+ // 同时更新 headImg1.value,以便后续使用
|
|
|
|
|
+ headImg1.value = fileUrl;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ console.log("保存时使用的头像URL:", avatarUrl);
|
|
|
|
|
+
|
|
|
const res: any = await updateMerchantUserInfo({
|
|
const res: any = await updateMerchantUserInfo({
|
|
|
id: userId.value,
|
|
id: userId.value,
|
|
|
nickName: form.nickname,
|
|
nickName: form.nickname,
|
|
|
- headImg: headImg1.value ? headImg1.value : "",
|
|
|
|
|
|
|
+ headImg: avatarUrl || "",
|
|
|
accountBlurb: form.intro
|
|
accountBlurb: form.intro
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
if (res.code == 200) {
|
|
if (res.code == 200) {
|
|
|
ElMessage.success(res.msg || "保存成功");
|
|
ElMessage.success(res.msg || "保存成功");
|
|
|
dialogVisible.value = false;
|
|
dialogVisible.value = false;
|
|
|
- // 可以刷新用户信息
|
|
|
|
|
|
|
+ // 通知父组件头像已更新,传递新的头像URL(优先使用保存的头像URL)
|
|
|
|
|
+ const finalAvatarUrl = avatarUrl && avatarUrl.trim() !== "" ? avatarUrl : res.data?.headImg || "";
|
|
|
|
|
+ console.log("保存成功,传递给父组件的头像URL:", finalAvatarUrl);
|
|
|
|
|
+ emit("avatarUpdated", finalAvatarUrl);
|
|
|
|
|
+ // 刷新用户信息(用于更新对话框中的数据)
|
|
|
getUserInfo();
|
|
getUserInfo();
|
|
|
- // 通知父组件头像已更新
|
|
|
|
|
- emit("avatarUpdated");
|
|
|
|
|
} else {
|
|
} else {
|
|
|
ElMessage.error(res.msg || "保存失败,请重试");
|
|
ElMessage.error(res.msg || "保存失败,请重试");
|
|
|
}
|
|
}
|