Files
2026-09-17 09:10:10 +08:00

33 lines
1.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { resolveApiBase } from '@/config/api'
import { DEFAULT_PLACEHOLDER_IMAGE_URL } from '@/utils/staticAsset'
import { withOssVersion } from '@/utils/ossCache'
/** 未设置头像时统一使用叁强 logo(远程静态 images/logo.png) */
export const DEFAULT_USER_AVATAR_URL = DEFAULT_PLACEHOLDER_IMAGE_URL
/** 各角色默认已统一为 logo,保留参数仅为兼容旧调用 */
export function defaultAvatarPathByRole(_role) {
return DEFAULT_USER_AVATAR_URL
}
/**
* 将后端返回的头像地址转为小程序 `<image>` 可加载的绝对 URL。
* - 已是 http(s):// 或 // 则原样返回
* - 以 / 开头的站内路径(如 /uploads/...)拼接到 API 域名根(与静态资源同源)
*/
export function normalizeAvatarUrlForMini(avatarUrl) {
const u = String(avatarUrl || '').trim()
if (!u) return ''
if (/^https?:\/\//i.test(u) || u.startsWith('//')) return withOssVersion(u)
const origin = resolveApiBase().replace(/\/$/, '')
const path = u.startsWith('/') ? u : `/${u}`
return withOssVersion(`${origin}${path}`)
}
/** 展示用头像:有自定义 URL 则转为可访问地址,否则用叁强 logo(本地路径) */
export function resolveUserAvatarUrl(avatarUrl, role) {
const raw = avatarUrl != null ? String(avatarUrl).trim() : ''
if (raw) return normalizeAvatarUrlForMini(raw)
return defaultAvatarPathByRole(role)
}