API - 短信发码/验码/创蓝全链路结构化日志(手机号脱敏) - 新增 SMS_DEBUG_LOG_CODE,联调时可输出验证码与 sessionId(对应创蓝批次号) - 注册成功、短信找回密码成功写入审计相关日志 - 放宽手机号归一化:移除区号白名单与 10~15 位长度限制 Player - 公告走马灯滚动周期调整为 35 秒 - 在线客服接入 Tawk.to(tawk.html),登录用户透传昵称/头像/ID - 三语补充 support.connecting 文案 部署与文档 - docker-compose 与 .env.docker.example 增加 SMS_DEBUG_LOG_CODE - 新增 docs/短信调试与日志说明.md、docs/docker 镜像构建导出脚本与说明 - Docker 部署指南补充镜像构建文档链接 - .gitignore 忽略 thebet365-images.tar 与 docker-build.log Co-authored-by: Cursor <cursoragent@cursor.com>
26 lines
805 B
TypeScript
26 lines
805 B
TypeScript
/** 客服 iframe 基址,可通过 VITE_CUSTOMER_SERVICE_URL 覆盖(如外部客服页) */
|
|
export const CUSTOMER_SERVICE_BASE =
|
|
(import.meta.env.VITE_CUSTOMER_SERVICE_URL as string | undefined)?.trim() || '/tawk.html';
|
|
|
|
export type TawkVisitor = {
|
|
name?: string;
|
|
avatar?: string;
|
|
id?: string;
|
|
};
|
|
|
|
export function buildCustomerServiceUrl(
|
|
loadingText: string,
|
|
visitor?: TawkVisitor | null,
|
|
): string {
|
|
const params = new URLSearchParams({ loadingText });
|
|
|
|
if (visitor) {
|
|
if (visitor.name) params.set('name', visitor.name);
|
|
if (visitor.avatar) params.set('avatar', visitor.avatar);
|
|
if (visitor.id) params.set('id', visitor.id);
|
|
}
|
|
|
|
const separator = CUSTOMER_SERVICE_BASE.includes('?') ? '&' : '?';
|
|
return `${CUSTOMER_SERVICE_BASE}${separator}${params.toString()}`;
|
|
}
|