fix(pc-client,account-service): B-61 试用前小修 - 头像取首字/群头像拼格/近似灰Token收敛/重置密码踢下线,构建 v1.0.1 安装包

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
编码工程师
2026-08-16 01:07:53 +08:00
co-authored by multica-agent
parent 2fe8417900
commit 4cf1d4120a
19 changed files with 194 additions and 43 deletions
+30 -2
View File
@@ -8,12 +8,12 @@ import { avatarList, getDefaultAvatar } from "@/utils/avatar";
const default_avatars = avatarList.map((item) => item.name);
// 头像文字:两个字以内原样显示;中文名取最后一个字,其他取首字母
// 头像文字:与手机端一致,中文名取首字(王志远→王);非中文取首字母大写
const getDisplayText = (text?: string) => {
if (!text) return text;
const trimmed = text.trim();
if (trimmed.length <= 2) return trimmed;
if (/^[一-龥]/.test(trimmed)) return trimmed.slice(-1);
if (/^[一-龥]/.test(trimmed)) return trimmed[0];
return trimmed[0].toUpperCase();
};
@@ -62,6 +62,34 @@ const OIMAvatar: React.FC<IOIMAvatarProps> = (props) => {
}
};
// 群头像:与手机端一致,无真实头像(或加载失败)时用 2x2 蓝灰拼格(浅灰底 + 蓝/灰蓝交替小方块)
const showGroupGrid = isgroup && (!src || errorHolder === default_group);
if (showGroupGrid) {
const cell = (size - 10) / 2;
const gridColors = ["var(--primary)", "var(--avatar-gray)", "var(--avatar-gray)", "var(--primary)"];
return (
<div
className={props.className}
onClick={props.onClick}
style={{
width: `${size}px`,
height: `${size}px`,
backgroundColor: "var(--search-bg)",
borderRadius: `${Math.round(size * 0.18)}px`,
padding: "2px",
display: "grid",
gridTemplateColumns: `${cell}px ${cell}px`,
gridTemplateRows: `${cell}px ${cell}px`,
gap: "2px",
}}
>
{gridColors.map((c, i) => (
<div key={i} style={{ backgroundColor: c, borderRadius: "2px" }} />
))}
</div>
);
}
return (
<AntdAvatar
style={{