39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
/** 统一头像 URL:无有效头像时始终返回 ossImageUrl + morentouxiang */
|
|
|
|
function isBlankPath(p) {
|
|
if (p == null) return true;
|
|
if (typeof p !== 'string') return true;
|
|
const s = p.trim();
|
|
return !s || s === 'null' || s === 'undefined' || s === 'none';
|
|
}
|
|
|
|
export function getDefaultAvatarUrl(app) {
|
|
return resolveAvatarUrl('', app);
|
|
}
|
|
|
|
export function resolveAvatarUrl(rawPath, app) {
|
|
app = app || getApp();
|
|
const oss = app.globalData.ossImageUrl || '';
|
|
const def = app.globalData.morentouxiang || 'avatar/default.jpg';
|
|
|
|
if (!isBlankPath(rawPath)) {
|
|
if (rawPath.startsWith('http://') || rawPath.startsWith('https://')) {
|
|
return rawPath;
|
|
}
|
|
const path = rawPath.startsWith('/') ? rawPath : '/' + rawPath;
|
|
return oss + path;
|
|
}
|
|
|
|
if (def.startsWith('http://') || def.startsWith('https://')) {
|
|
return def;
|
|
}
|
|
const defPath = def.startsWith('/') ? def : '/' + def;
|
|
return oss + defPath;
|
|
}
|
|
|
|
export function resolveAvatarFromStorage(app) {
|
|
app = app || getApp();
|
|
const tx = wx.getStorageSync('touxiang') || '';
|
|
return resolveAvatarUrl(tx, app);
|
|
}
|