fix: 头像上传成功后同步更新NAV头像

- 上传成功回调中查找NAV .nav-avatar元素并更新src
- 首次上传(原为文字占位)时创建img元素替换
- 带缓存破坏时间戳,与settings页头像更新逻辑一致
This commit is contained in:
2026-05-31 19:29:33 +08:00
parent 6f74643227
commit b75e1867f6

View File

@ -595,8 +595,33 @@
var res = JSON.parse(xhr.responseText); var res = JSON.parse(xhr.responseText);
if (res.success) { if (res.success) {
showSettingsToast(res.message || '头像已更新'); showSettingsToast(res.message || '头像已更新');
if (res.data && res.data.url && avatarPreview.tagName === 'IMG') { var newAvatarUrl = res.data && res.data.url && (res.data.url + '?t=' + Date.now());
avatarPreview.src = res.data.url + '?t=' + Date.now(); if (newAvatarUrl && avatarPreview.tagName === 'IMG') {
avatarPreview.src = newAvatarUrl;
}
// 同步更新 NAV 头像
if (newAvatarUrl) {
var navLink = document.querySelector('.nav-avatar-link');
if (navLink) {
var navImg = navLink.querySelector('img.nav-avatar');
if (navImg) {
navImg.src = newAvatarUrl;
navImg.style.display = '';
var fb = navLink.querySelector('.nav-avatar-default');
if (fb) fb.style.display = 'none';
} else {
var fb2 = navLink.querySelector('.nav-avatar-default');
if (fb2) {
var img = document.createElement('img');
img.src = newAvatarUrl;
img.alt = '';
img.className = 'nav-avatar';
img.onerror = function() { this.style.display = 'none'; this.nextElementSibling.style.display = 'flex'; };
navLink.insertBefore(img, fb2);
fb2.style.display = 'none';
}
}
}
} }
} else { } else {
showSettingsToast(res.message || '上传失败', true); showSettingsToast(res.message || '上传失败', true);