mobile-ui-spec-fresh-mint.md 4.6 KB

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
  • 新页面开发顺序:
    1. 先搭骨架(page / header / list / bottom bar)
    2. 再套 token
    3. 最后补交互(loading / 错误态 / 回显)
  • 避免在 scoped 中重复写 token 与 Vant 覆盖,优先回收到 src/styles/index.css。

12. 验收清单

  • 视觉:配色、圆角、阴影、间距与规范一致
  • 交互:登录、提交、筛选、弹层均有 loading/禁用/错误反馈
  • 结构:首页、登录、列表、详情、表单风格统一
  • 终端:iOS/Android 至少各验证一次安全区与底部栏表现