记录日期:2026-10-15。设计依据为用户提供的药堂庭院参考图,锁定朱红、暖金、宣纸白。全局规则见前端 DESIGN.md。本记录描述当前实现,不代表企业品牌或产品资质说明。
| 文件(相对前端目录) | 职责 |
|---|---|
src/layouts/auth-scene.vue |
庭院背景、堂训、装饰框与响应式场景 |
src/layouts/auth.vue |
公司配置、Logo、语言/主题工具、真实认证路由 |
src/views/_core/authentication/login.vue |
现有登录表单、输入样式、认证与验证码调用 |
src/preferences.ts |
默认自定义主色 #a51d24 |
src/styles/herbal-theme.css |
明暗主题语义色、暗色朱砂主色、半深色导航兼容 |
src/main.ts |
主题标识、一次性缓存迁移及主色监听 |
src/bootstrap.ts |
引入全局主题样式 |
全局浅色表面使用暖白(背景 hsl(40 50% 99%)、深层背景 hsl(37 33% 95%)),文本采用暖墨色。暗色背景为 hsl(26 16% 12%),卡片为 hsl(26 15% 14%);默认朱红主题下,暗色全局主要强调色使用较亮朱砂(hsl(357 64% 73%))与深色按钮文字。登录主按钮由局部样式维持朱红白字。
正文继承 --font-family,缺省回退系统无衬线;公司名称与堂训使用 STKaiti、KaiTi、FangSong、衬线回退。没有新增外部字体下载,实际字形依赖系统字体。
桌面将堂训和表单分置两侧,表单最大宽度 584px;不超过 900px 切换单列、隐藏堂训,表单最大宽度 520px;不超过 540px 允许品牌区换行并收紧留白。短桌面视口降低表单高度与内边距。深色背景图片降低亮度和饱和度;装饰图片为空替代文本并标记为辅助技术忽略。
偏好初始化后设置 data-brand-theme="herbal"。按现有应用 namespace 保存 ${namespace}-herbal-theme-v1 标记;标记缺失时仅迁移主题类型与主色,避免旧缓存蓝色遮盖新主题。成功保存标记后不再强制主色,用户之后选择的颜色和明暗模式继续生效。namespace 包含应用版本与运行环境,各 namespace 独立迁移。
监听当前主色,仅在其等于 #a51d24 时设置 data-herbal-palette="true",以免暗色朱砂覆盖用户自选颜色。若 localStorage 不可用,当前实现会在启动时重新应用默认朱红,无法保证跨启动保留该主色偏好。
公司名与 Logo 仍使用现有 preferences/编译配置;认证布局沿用公司配置 store 获取登录标题与描述,暗色优先使用已配置的暗色 Logo。未配置公司标志时隐藏框架示例 Logo。背景、暖金纹样和标题旁无文字几何 SVG 纹样独立于公司 Logo,不写入公司身份配置。
暗色工具条使用深底以配合图标对比;密码切换为明文后仍保留显隐按钮的右侧空间(44px),避免输入内容与按钮重叠。
资源:mom-pro2-before/public/images/auth/herbal-courtyard.png,页面路径 /images/auth/herbal-courtyard.png。使用内置 ImageGen 模式生成,参考用户图保留药堂庭院、药材托盘与米白留白;去除文字、Logo、工具栏、表单卡片及所有 UI,不生成文本。公司名、堂训与登录内容均由页面渲染,维护时不要把它们烘焙到图片中。
验证记录:result.json。截图使用真实应用、路由与主题/登录组件,后端及公司配置 API 为 mock,输入为演示账户,没有完成真实身份认证。
记录覆盖动态公司配置、背景加载、自动填充属性、键盘密码显隐、记住账号、明暗主题切换、移动端无横向溢出及必填校验阻止后端请求。截图与这些检查不能证明真实后端认证、验证码服务、权限路由或全部业务页面均通过验证;保留现有调用链也不等于上述服务已联调成功。