feat: 邮箱注册验证 + 9项功能修复与优化
【认证系统】 - 新增邮箱验证码注册/登录流程 (sendEmailCode / verifyEmail / forgotPassword / resetPassword) - register-email 现在需要验证码 - 服务端新增 email_verification_codes 表 + patch-email-verification.js - App.tsx 登录后 emailVerified 检查提醒 - keyServerClient token 显式传递修复 401 错误 【电商模块】 - 自动推进: 策划完成后自动生成分镜图/视频 - 模特图选项 (性别/年龄/种族/体型/场景) 注入 AI 提示词 - 任务持久化指纹修复 (图片数量替代 blob URL) - 新增「视频换装」入口 (happyhorse-1.0-video-edit) 【剧本评分】 - 新增 .docx/.doc Word 文档支持 (ZIP解压+XML提取) - 历史记录支持点击查看/恢复评测结果 【画布】 - ReactFlow 节点禁止内置拖拽避免冲突 - 连接线拖拽弹窗优化 (预览线不消失, 弹窗跟踪鼠标) 【页面修复】 - 首页轮播图改为 aspect-ratio: 16/9 解决尺寸问题 - 资产库新增悬停删除按钮 - scriptEvalClient 改用服务端 /api/ai/chat 端点 - TokenUsagePage 未登录跳过 API 调用
This commit is contained in:
@@ -826,3 +826,149 @@
|
||||
border-color: var(--accent);
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
.cookie-consent {
|
||||
position: fixed;
|
||||
right: 18px;
|
||||
bottom: 18px;
|
||||
z-index: 1300;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) auto;
|
||||
gap: 16px;
|
||||
width: min(640px, calc(100vw - 36px));
|
||||
padding: 16px;
|
||||
border: 1px solid rgba(var(--accent-rgb), 0.28);
|
||||
border-radius: 16px;
|
||||
background: var(--bg-panel);
|
||||
color: var(--fg-body);
|
||||
box-shadow: 0 18px 54px rgba(0, 0, 0, 0.34);
|
||||
}
|
||||
|
||||
.cookie-consent strong,
|
||||
.cookie-consent p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.cookie-consent p {
|
||||
margin-top: 5px;
|
||||
color: var(--fg-muted);
|
||||
font-size: 13px;
|
||||
line-height: 1.55;
|
||||
}
|
||||
|
||||
.cookie-consent__actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.cookie-consent__actions a,
|
||||
.cookie-consent__actions button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 36px;
|
||||
padding: 0 12px;
|
||||
border-radius: 999px;
|
||||
font-size: 12px;
|
||||
font-weight: 900;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.cookie-consent__actions a {
|
||||
color: var(--accent);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.cookie-consent__actions button {
|
||||
border: 0;
|
||||
background: var(--accent);
|
||||
color: #07100b;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.web-shell {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.web-topbar {
|
||||
flex: 0 0 auto;
|
||||
gap: 10px;
|
||||
padding: 10px 12px;
|
||||
}
|
||||
|
||||
.brand-lockup__tone,
|
||||
.profile-button span:not(.profile-button__avatar),
|
||||
.member-button__label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.web-topbar__actions {
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.member-button,
|
||||
.profile-button,
|
||||
.info-button {
|
||||
width: 36px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.floating-nav {
|
||||
left: 50%;
|
||||
top: auto;
|
||||
bottom: max(10px, env(safe-area-inset-bottom));
|
||||
flex-direction: row;
|
||||
width: min(calc(100vw - 20px), 560px);
|
||||
overflow-x: auto;
|
||||
justify-content: flex-start;
|
||||
border-radius: 18px;
|
||||
transform: translateX(-50%);
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
.floating-nav::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.floating-nav__item {
|
||||
flex: 0 0 44px;
|
||||
}
|
||||
|
||||
.floating-nav__label,
|
||||
.floating-nav__submenu,
|
||||
.floating-page-scroll-actions {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.web-shell__page {
|
||||
padding-bottom: 78px;
|
||||
}
|
||||
|
||||
.info-popover,
|
||||
.profile-popover {
|
||||
right: -8px;
|
||||
max-width: calc(100vw - 24px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.brand-lockup__name {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.web-topbar__actions {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.cookie-consent {
|
||||
right: 12px;
|
||||
bottom: 12px;
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.cookie-consent__actions {
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user