feat: 实现试用用户欢迎引导和过期检测功能

- 新增试用用户首次登录欢迎弹窗,展示使用教程
- 新增试用期过期检测服务和过期提醒弹窗
- 从 JWT token 中提取 ispluginTrial 标识判断用户类型
- 试用用户跳过邀请码验证流程
- 在消息发送前检查试用期是否过期
- 新增 ExpiredPanel 和 WelcomePanel 面板组件
- 新增 expiredModal 和 welcomeModal 视图组件
- 优化用户登录流程,根据用户类型显示不同引导
This commit is contained in:
Roe-xin
2026-02-26 15:42:18 +08:00
parent 316c784bde
commit 208c24682b
12 changed files with 924 additions and 7 deletions

View File

@ -30,6 +30,16 @@ import {
getInvitationModalStyles,
getInvitationModalScript,
} from "./invitationModal";
import {
getWelcomeModalContent,
getWelcomeModalStyles,
getWelcomeModalScript,
} from "./welcomeModal";
import {
getExpiredModalContent,
getExpiredModalStyles,
getExpiredModalScript,
} from "./expiredModal";
/**
* 获取 WebView 面板的 HTML 内容
*/
@ -100,6 +110,8 @@ export function getWebviewContent(
${getProgressBarStyles()}
${getInputAreaStyles()}
${getInvitationModalStyles()}
${getWelcomeModalStyles()}
${getExpiredModalStyles()}
.file-editor-section {
margin-bottom: 15px;
@ -466,6 +478,8 @@ export function getWebviewContent(
${getConversationHistoryBarContent()}
${getProgressBarContent()}
${getInvitationModalContent(qrCodeUri, logoUri)}
${getWelcomeModalContent(logoUri)}
${getExpiredModalContent(logoUri)}
<div class="header">
<div style="display: flex; align-items: center; justify-content: center;">
<img src="${logoUri}" alt="IC Coder" style="max-width: 100%; height: auto; max-height: 80px;" />
@ -873,6 +887,8 @@ export function getWebviewContent(
${getProgressBarScript()}
${getInputAreaScript()}
${getInvitationModalScript()}
${getWelcomeModalScript()}
${getExpiredModalScript()}
</script></body>
</html>`;
}