BX Mobile UI 规范(Fresh Mint)
适用范围:bx/bx-mobile(Vue 3 + Vant 4)
设计基线:bx/报销业务/mobile-ui-demo/v1-fresh-mint.html
目标:将移动端报销业务页面统一为「清新薄荷」视觉与交互体系。
1. 设计目标与风格
- 风格关键词:清爽、轻量、业务优先、卡片化。
- 信息层级:先“状态与动作”,再“明细内容”。
- 页面节奏:标题/概览 -> 筛选/快捷动作 -> 列表卡片 -> 底部操作。
2. Token 与主题
统一使用 src/styles/index.css 中变量,不在页面内重复定义主色。
- 主色:
--primary: #00c98d,深色:--primary-dark: #00a874
- 主背景:
--primary-bg: #eafff6
- 文本:
--text / --text-secondary / --text-muted
- 语义色:
--success / --warning / --danger / --info / --processing
- 圆角:卡片
12px,输入/按钮 8px,大弹层 16px
- 阴影:默认
--shadow,强调卡片 --shadow-md
Vant 覆盖要求:
van-button--primary、van-tabs__line、van-tabbar-item--active、van-loading 全部对齐主色。
van-nav-bar 使用浅薄荷底,标题为深薄荷色。
3. 页面骨架
3.1 基础容器
- 页面内容容器统一使用
.page(padding: 12px 16px 80px)。
- 底部固定操作栏统一使用
.bottom-action-bar,并带 env(safe-area-inset-bottom)。
3.2 全宽组件
下列组件使用“突破 .page 左右 padding”的全宽规则(已在全局样式定义):
van-nav-bar
van-search
van-tabs
van-pull-refresh
4. 首页规范(菜单卡片式)
- 结构:欢迎头部 -> 菜单宫格 -> 待办卡片。
- 欢迎头部可展示:用户身份、核心指标、审批进度环形图。
- 菜单宫格建议
3~4 列,支持消息红点。
- 待办区域使用卡片列表,单项包含:标题、来源/时间、主操作按钮。
5. 登录页规范
- 结构:品牌区 -> 登录卡片 -> 底部链接。
- 登录卡片字段:账号、密码、记住账号(可选)。
- 必备交互:
- 密码可见切换
- 登录按钮 loading + 防重复提交
- 错误态(红框 + 错误文案)
- 建议反馈链路:字段错误 -> toast 提示 -> 保留用户输入。
6. 卡片列表规范(报销单/审批单)
- 卡片内容:
- 第一行:单号/标题 + 状态标签
- 第二行:金额(重点)+ 时间/人员
- 第三行:摘要信息
- 底部:操作按钮组
- 操作按钮规则:
- 首要操作主色(如“查看/提交”)
- 次要操作中性描边
- 危险操作红色
- 异步操作必须 loading
7. 费用项选择(一级/二级)
- 交互载体:底部 Sheet。
- 布局:左侧一级分类,右侧二级分类(联动)。
- 必备能力:
- 关键词搜索(一级/二级都可匹配)
- 最近使用
- 已选路径回显:
一级 / 二级
- 未完成选择时禁用“确定”
8. 树形列表规范
- 用于组织/部门/单据等层级数据浏览。
- 必备视觉元素:
- 缩进 + 连线 + 展开箭头
- 节点图标(按类型区分)
- 选中高亮
- 节点状态标签/计数
- 交互:
- 点击父节点展开/收起
- 点击任意节点进入选中态
- 筛选后自动展开命中路径
9. 状态与文案语义
success:已通过 / 已完成
warning:待处理 / 待审批
danger:驳回 / 异常 / 风险
info:处理中 / 审核中
muted:草稿 / 已关闭 / 中性信息
文案原则:短句、动词优先、避免技术术语暴露给最终用户。
10. 交互与可用性
- 所有可点击卡片、按钮必须有按下反馈(缩放或底色变化)。
- 所有异步行为必须体现状态(loading、disabled、结果反馈)。
- 空态必须显示图标 + 说明 + 主操作。
- 图片/附件区统一预览样式,避免每页各自定义。
11. 开发落地建议(bx-mobile)
- 优先复用现有全局类:
card / card-header / card-body
status-tag
apply-list-item
bottom-action-bar
- 新页面开发顺序:
- 先搭骨架(page / header / list / bottom bar)
- 再套 token
- 最后补交互(loading / 错误态 / 回显)
- 避免在
scoped 中重复写 token 与 Vant 覆盖,优先回收到 src/styles/index.css。
12. 验收清单
- 视觉:配色、圆角、阴影、间距与规范一致
- 交互:登录、提交、筛选、弹层均有 loading/禁用/错误反馈
- 结构:首页、登录、列表、详情、表单风格统一
- 终端:iOS/Android 至少各验证一次安全区与底部栏表现