51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
/**
|
|
* IM 用户展示:从本地缓存读取最新头像,空则用默认图
|
|
*/
|
|
export function getDefaultAvatar(app) {
|
|
const oss = app.globalData.ossImageUrl || '';
|
|
return oss + (app.globalData.morentouxiang || '');
|
|
}
|
|
|
|
export function resolveAvatarUrl(raw, app) {
|
|
const def = getDefaultAvatar(app);
|
|
if (!raw) return def;
|
|
if (raw.startsWith('http')) return raw;
|
|
const oss = app.globalData.ossImageUrl || '';
|
|
return oss + raw.replace(/^\//, '');
|
|
}
|
|
|
|
export function getFreshImUser(app, role, uid) {
|
|
const prefixMap = {
|
|
normal: 'Boss', dashou: 'Ds', shangjia: 'Sj',
|
|
guanshi: 'Gs', zuzhang: 'Zz', kaoheguan: 'Kh',
|
|
};
|
|
const prefix = prefixMap[role] || 'Boss';
|
|
const touxiang = wx.getStorageSync('touxiang') || '';
|
|
const avatar = resolveAvatarUrl(touxiang, app);
|
|
const name = app.globalData.currentUser?.name || `用户${(uid || '').slice(-6)}`;
|
|
return {
|
|
id: prefix + uid,
|
|
name,
|
|
avatar,
|
|
};
|
|
}
|
|
|
|
export function persistGroupMeta(app, groupId, meta) {
|
|
if (!groupId || !meta) return;
|
|
if (!app.globalData.groupInfoMap) app.globalData.groupInfoMap = {};
|
|
app.globalData.groupInfoMap[groupId] = { ...app.globalData.groupInfoMap[groupId], ...meta };
|
|
try {
|
|
const cache = wx.getStorageSync('pairGroupMetaCache') || {};
|
|
cache[groupId] = app.globalData.groupInfoMap[groupId];
|
|
wx.setStorageSync('pairGroupMetaCache', cache);
|
|
} catch (e) {}
|
|
}
|
|
|
|
export function loadGroupMetaCache(app) {
|
|
try {
|
|
const cache = wx.getStorageSync('pairGroupMetaCache') || {};
|
|
if (!app.globalData.groupInfoMap) app.globalData.groupInfoMap = {};
|
|
Object.assign(app.globalData.groupInfoMap, cache);
|
|
} catch (e) {}
|
|
}
|