diff --git "a/docs/PRD/\345\223\201\347\211\214\345\256\232\345\210\266 Logo \344\270\216\346\226\207\346\241\210\351\205\215\347\275\256 PRD.md" "b/docs/PRD/\345\223\201\347\211\214\345\256\232\345\210\266 Logo \344\270\216\346\226\207\346\241\210\351\205\215\347\275\256 PRD.md" new file mode 100644 index 0000000000..10f98e854a --- /dev/null +++ "b/docs/PRD/\345\223\201\347\211\214\345\256\232\345\210\266 Logo \344\270\216\346\226\207\346\241\210\351\205\215\347\275\256 PRD.md" @@ -0,0 +1,546 @@ +# 品牌定制 Logo 与文案配置 PRD + +## 1. 背景 + +BiSheng 需要在管理后台提供可视化的品牌定制能力,让系统管理员在不重新打包前端代码的情况下,配置系统品牌名称、管理后台与登录页 Logo、浏览器标签图标以及 Loading 图标/动画。 + +同时,既有“系统品牌白标化定制手册”仍然保留:部署前仍可通过替换 `/assets/bisheng/` 下的默认素材和修改 `config.js` 完成基础白标化。本功能是在系统部署后提供可视化配置,不替代部署前静态替换方案。 + +## 2. 产品目标 + +1. 管理员可在系统配置中进入品牌定制页面,完成品牌名称和视觉素材配置。 +2. 配置保存后,通过运行时脚本下发到管理后台和工作台,避免重新构建前端包。 +3. Logo 素材支持默认素材和用户上传素材两类来源。 +4. 上传素材按用途分类存储和选择,下拉选项展示图片预览与文件名。 +5. 支持删除非默认上传素材;如果删除的是正在使用的素材,自动回退到对应默认素材。 +6. 每个可配置项都提供独立预览按钮,预览区展示对应系统界面并高亮生效位置。 +7. 保持工作台“构建 → 日常”已有图标配置逻辑不被品牌定制覆盖。 + +## 3. 非目标与边界 + +1. 不提供“品牌包”能力,不读取 `brand-default.json`。 +2. 不在品牌定制页面配置 `linsightAgentName`。该字段仍按系统品牌白标化定制手册,通过 `config.js` 控制。 +3. 不在品牌定制页面配置工作台左上角图标、欢迎页面图标、对话头像、欢迎语、输入框提示语等工作台日常配置;这些仍由“构建 → 日常”维护。 +4. 不提供图片裁剪、压缩、在线设计、颜色提取等素材编辑能力。 +5. 不支持按租户、部门、用户分别配置品牌;当前品牌定制为实例级配置。 +6. 不替代主题配色能力;主题配色和品牌定制只是同属于“外观设置”下的两个子选项卡。 + +## 4. 入口与信息架构 + +入口: + +`系统 → 外观设置 → 品牌定制` + +外观设置下包含两个子选项卡: + +| 子选项卡 | 说明 | +| --- | --- | +| 主题配色 | 原有颜色配置与组件预览能力 | +| 品牌定制 | 新增品牌文案、Logo、Loading 配置能力 | + +品牌定制页面分为四个区域: + +1. 文案配置 +2. Logo 素材 +3. Loading 配置 +4. 预览 + +## 5. 角色与权限 + +| 角色 | 权限 | +| --- | --- | +| 管理员 | 可查看、上传、删除、保存、重置品牌配置 | +| 普通用户 | 不可进入品牌定制页面,但可看到已生效的品牌展示 | +| 未登录用户 | 可在登录页加载公开运行时品牌配置 | + +后端配置接口需要管理员鉴权;运行时脚本 `/api/v1/brand/runtime.js` 为公开读取接口,用于页面初始化前加载品牌配置。 + +## 6. 功能说明 + +### 6.1 文案配置 + +当前品牌定制页面仅配置一个文案项: + +| 配置项 | 字段 | 中文列 | 英文列 | 说明 | +| --- | --- | --- | --- | --- | +| 系统品牌名称 | `brandName` | 支持 | 支持 | 用于浏览器标题,以及系统中通过品牌名称变量展示的文案 | + +规则: + +1. 中文、英文分别存储。 +2. 单字段最长 20 个字符。 +3. 不允许输入 `<`、`>`,避免 HTML 注入。 +4. 展示时根据当前语言取值: + - 中文环境优先取 `zh`,为空时回退 `en`。 + - 非中文环境优先取 `en`,为空时回退 `zh`。 +5. 品牌定制保存接口不接收、不保存、不下发 `linsightAgentName`。 +6. `linsightAgentName` 继续通过部署目录的 `config.js` 配置,保证原系统品牌白标化定制手册方案不受影响。 + +### 6.2 Logo 素材配置 + +品牌定制负责以下 Logo/图片配置: + +| 配置项 | 字段 | 默认素材 | 建议规格 | 生效位置 | +| --- | --- | --- | --- | --- | +| 浏览器标签图标 | `assets.favicon` | `/assets/bisheng/favicon.ico` | 32 x 32,建议 ico | 管理后台浏览器标签;工作台初始运行时也会加载,之后可能被“构建 → 日常”的对话头像配置覆盖 | +| 登录页左侧大图 | `assets.loginHeroLight` | `/assets/bisheng/login-logo-big.png` | 420 x 704 | 管理后台登录页浅色模式左侧大图 | +| 登录页左侧大图(暗黑) | `assets.loginHeroDark` | `/assets/bisheng/login-logo-dark.png` | 420 x 704 | 管理后台登录页暗黑模式左侧大图 | +| 表单与顶部 Logo | `assets.headerLogoLight` | `/assets/bisheng/login-logo-small.png` | 410 x 120 | 管理后台左上角 Logo、登录页顶部 Logo(浅色) | +| 表单与顶部 Logo(暗黑) | `assets.headerLogoDark` | `/assets/bisheng/logo-small-dark.png` | 410 x 120 | 管理后台左上角 Logo、登录页顶部 Logo(暗黑) | + +不由品牌定制负责的工作台图标: + +| 工作台图标 | 配置入口 | +| --- | --- | +| 工作台左上角图标 | 构建 → 日常 → 左侧边栏图标 | +| 欢迎页面图标与对话头像 | 构建 → 日常 → 欢迎页面图标 & 对话头像 | +| 工作台最终 favicon | 优先跟随“欢迎页面图标 & 对话头像” | + +### 6.3 素材上传、选择与删除 + +上传规则: + +1. 支持格式:`ico`、`png`、`jpg`、`jpeg`、`svg`、`gif`、`webp`。 +2. 单文件不超过 5MB。 +3. SVG 不允许包含 ` - + + <%- aceScriptSrc %>