- git mv 4 份 UI 类文档(UIUX 视觉规范/组件库与 Design Token/高保真原型/页面级功能清单)入档, 附 README 说明取代关系:UI 域唯一基线为 docs/superpowers/specs/2026-09-13-* 规格 - 根目录两份 V1.0 WorkBuddy 提示词/总指令:加「已被 V1.1 整合版取代」头注,保留原位 (AGENTS_SUMMARY 与 Recovery 报告仍援引其行号) - REST API 规范:加「部分取代」头注(V1.1 增量以数据库与API增量设计为准;WebSocket 章节仍为协议出处) - 根 CHANGELOG.md:加指针指向 docs/V1_1_CHANGELOG.md - V1.0 业务设计 12 份与部署运维方案按用户决定保留原位不动
2706 lines
27 KiB
Markdown
2706 lines
27 KiB
Markdown
# 丹阳公益婚恋服务平台
|
||
# V1.0 前端组件库与 Design Token 规范
|
||
|
||
版本:V1.0
|
||
适用范围:微信小程序用户端、公益红娘工作台、运营管理后台
|
||
目标:统一视觉、降低研发成本、提高复用率、减少后期维护难度
|
||
|
||
---
|
||
|
||
# 第一章 规范目标
|
||
|
||
本规范用于统一整个V1.0前端设计与开发中的:
|
||
|
||
- 品牌颜色
|
||
- 中性色
|
||
- 字号
|
||
- 字重
|
||
- 行高
|
||
- 圆角
|
||
- 间距
|
||
- 阴影
|
||
- 图标
|
||
- 按钮
|
||
- 标签
|
||
- 表单
|
||
- 用户卡片
|
||
- 推荐卡片
|
||
- 活动卡片
|
||
- 状态组件
|
||
- 弹窗
|
||
- 空状态
|
||
- 错误状态
|
||
- 加载状态
|
||
- PC后台组件
|
||
|
||
后续所有页面原则上不得单独创造新的:
|
||
|
||
- 颜色
|
||
- 圆角
|
||
- 字号
|
||
- 按钮样式
|
||
- 卡片样式
|
||
- 状态颜色
|
||
|
||
如确需新增,应先进入组件库,再进入业务页面。
|
||
|
||
---
|
||
|
||
# 第二章 Token命名原则
|
||
|
||
统一采用语义化命名。
|
||
|
||
不要使用:
|
||
|
||
```text
|
||
red1
|
||
red2
|
||
gray3
|
||
bigFont
|
||
smallFont
|
||
```
|
||
|
||
建议使用:
|
||
|
||
```text
|
||
color-primary
|
||
color-text-primary
|
||
color-success
|
||
radius-card
|
||
spacing-page
|
||
font-title-lg
|
||
```
|
||
|
||
这样后期修改品牌风格时,不需要逐页面替换。
|
||
|
||
---
|
||
|
||
# 第三章 颜色 Design Token
|
||
|
||
## 3.1 品牌主色
|
||
|
||
```text
|
||
color-primary = #E96B6B
|
||
```
|
||
|
||
用途:
|
||
|
||
- 一级按钮
|
||
- 当前Tab
|
||
- 喜欢按钮
|
||
- 品牌强调
|
||
- 重点链接
|
||
- 部分进度状态
|
||
|
||
---
|
||
|
||
## 3.2 品牌主色按压态
|
||
|
||
```text
|
||
color-primary-active = #D95F5F
|
||
```
|
||
|
||
用于:
|
||
|
||
- 按钮按下
|
||
- 可点击组件按压反馈
|
||
|
||
---
|
||
|
||
## 3.3 品牌浅色
|
||
|
||
```text
|
||
color-primary-light = #FFF3F2
|
||
```
|
||
|
||
用途:
|
||
|
||
- 推荐理由背景
|
||
- 浅品牌卡片
|
||
- 已喜欢轻状态
|
||
- 婚恋相关轻提示
|
||
|
||
---
|
||
|
||
## 3.4 品牌极浅色
|
||
|
||
```text
|
||
color-primary-lighter = #FFF8F7
|
||
```
|
||
|
||
用于:
|
||
|
||
- 非核心区域背景
|
||
- 强调卡片底色
|
||
|
||
---
|
||
|
||
# 第四章 功能色
|
||
|
||
## 4.1 成功色
|
||
|
||
```text
|
||
color-success = #2E9B68
|
||
color-success-light = #ECF8F2
|
||
```
|
||
|
||
用于:
|
||
|
||
- 已实名
|
||
- 已审核
|
||
- 报名成功
|
||
- 已签到
|
||
- 操作完成
|
||
|
||
---
|
||
|
||
## 4.2 警告色
|
||
|
||
```text
|
||
color-warning = #E59A32
|
||
color-warning-light = #FFF7E9
|
||
```
|
||
|
||
用于:
|
||
|
||
- 审核中
|
||
- 需修改
|
||
- 风险提醒
|
||
- 待处理
|
||
|
||
---
|
||
|
||
## 4.3 错误/危险色
|
||
|
||
```text
|
||
color-danger = #D94A4A
|
||
color-danger-light = #FFF0F0
|
||
```
|
||
|
||
用于:
|
||
|
||
- 举报
|
||
- 拉黑
|
||
- 封禁
|
||
- 错误
|
||
- 极高风险
|
||
|
||
---
|
||
|
||
## 4.4 信息色
|
||
|
||
```text
|
||
color-info = #4A7CD4
|
||
color-info-light = #EEF4FF
|
||
```
|
||
|
||
用于:
|
||
|
||
- 系统说明
|
||
- 普通通知
|
||
- 辅助信息
|
||
|
||
---
|
||
|
||
# 第五章 中性色
|
||
|
||
```text
|
||
color-text-primary = #222222
|
||
color-text-secondary = #444444
|
||
color-text-tertiary = #777777
|
||
color-text-placeholder = #999999
|
||
|
||
color-border = #EEEEEE
|
||
color-divider = #F0F0F0
|
||
|
||
color-bg-page = #F7F8FA
|
||
color-bg-card = #FFFFFF
|
||
color-bg-disabled = #F3F3F3
|
||
|
||
color-disabled-text = #B5B5B5
|
||
```
|
||
|
||
---
|
||
|
||
# 第六章 深色文字使用规则
|
||
|
||
标题:
|
||
|
||
```text
|
||
color-text-primary
|
||
```
|
||
|
||
正文:
|
||
|
||
```text
|
||
color-text-secondary
|
||
```
|
||
|
||
辅助信息:
|
||
|
||
```text
|
||
color-text-tertiary
|
||
```
|
||
|
||
Placeholder:
|
||
|
||
```text
|
||
color-text-placeholder
|
||
```
|
||
|
||
不要随意使用:
|
||
|
||
```text
|
||
#000000
|
||
#333333
|
||
#666666
|
||
```
|
||
|
||
统一使用Token。
|
||
|
||
---
|
||
|
||
# 第七章 字体体系
|
||
|
||
用户端优先使用系统字体。
|
||
|
||
```text
|
||
font-family-cn = PingFang SC, Noto Sans SC, system-ui
|
||
```
|
||
|
||
PC后台:
|
||
|
||
```text
|
||
font-family-admin = Inter, PingFang SC, Noto Sans SC, system-ui
|
||
```
|
||
|
||
不额外引入装饰性品牌字体。
|
||
|
||
---
|
||
|
||
# 第八章 字号 Token
|
||
|
||
```text
|
||
font-size-xs = 12px
|
||
font-size-sm = 13px
|
||
font-size-md = 14px
|
||
font-size-base = 16px
|
||
font-size-lg = 18px
|
||
font-size-xl = 20px
|
||
font-size-2xl = 24px
|
||
font-size-3xl = 28px
|
||
```
|
||
|
||
---
|
||
|
||
# 第九章 字号使用规则
|
||
|
||
## 页面大标题
|
||
|
||
```text
|
||
24px
|
||
font-size-2xl
|
||
```
|
||
|
||
## 页面标题
|
||
|
||
```text
|
||
20px
|
||
font-size-xl
|
||
```
|
||
|
||
## 卡片标题
|
||
|
||
```text
|
||
18px
|
||
font-size-lg
|
||
```
|
||
|
||
## 正文
|
||
|
||
```text
|
||
16px
|
||
font-size-base
|
||
```
|
||
|
||
## 普通辅助文字
|
||
|
||
```text
|
||
14px
|
||
font-size-md
|
||
```
|
||
|
||
## 标签
|
||
|
||
```text
|
||
12~13px
|
||
font-size-xs / sm
|
||
```
|
||
|
||
---
|
||
|
||
# 第十章 字重
|
||
|
||
```text
|
||
font-weight-regular = 400
|
||
font-weight-medium = 500
|
||
font-weight-semibold = 600
|
||
font-weight-bold = 700
|
||
```
|
||
|
||
原则:
|
||
|
||
- 正文:400
|
||
- 按钮:500
|
||
- 卡片标题:600
|
||
- 页面大标题:600
|
||
|
||
极少使用700。
|
||
|
||
---
|
||
|
||
# 第十一章 行高
|
||
|
||
```text
|
||
line-height-tight = 1.25
|
||
line-height-normal = 1.5
|
||
line-height-relaxed = 1.7
|
||
```
|
||
|
||
使用:
|
||
|
||
标题:
|
||
|
||
```text
|
||
1.25
|
||
```
|
||
|
||
普通正文:
|
||
|
||
```text
|
||
1.5
|
||
```
|
||
|
||
长文本:
|
||
|
||
```text
|
||
1.7
|
||
```
|
||
|
||
---
|
||
|
||
# 第十二章 间距 Token
|
||
|
||
采用4px基础栅格。
|
||
|
||
```text
|
||
spacing-1 = 4px
|
||
spacing-2 = 8px
|
||
spacing-3 = 12px
|
||
spacing-4 = 16px
|
||
spacing-5 = 20px
|
||
spacing-6 = 24px
|
||
spacing-8 = 32px
|
||
spacing-10 = 40px
|
||
spacing-12 = 48px
|
||
```
|
||
|
||
---
|
||
|
||
# 第十三章 页面间距规范
|
||
|
||
用户端页面左右:
|
||
|
||
```text
|
||
spacing-page-x = 16px
|
||
```
|
||
|
||
区块间:
|
||
|
||
```text
|
||
20~24px
|
||
```
|
||
|
||
卡片内部:
|
||
|
||
```text
|
||
16px
|
||
```
|
||
|
||
紧密内容:
|
||
|
||
```text
|
||
8px
|
||
```
|
||
|
||
---
|
||
|
||
# 第十四章 圆角 Token
|
||
|
||
```text
|
||
radius-sm = 8px
|
||
radius-md = 12px
|
||
radius-lg = 16px
|
||
radius-xl = 20px
|
||
radius-full = 999px
|
||
```
|
||
|
||
使用:
|
||
|
||
- Input:12px
|
||
- Button:12px
|
||
- 普通卡片:16px
|
||
- 首页推荐卡片:20px
|
||
- Tag:999px
|
||
|
||
---
|
||
|
||
# 第十五章 阴影 Token
|
||
|
||
原则:
|
||
|
||
> 极轻阴影。
|
||
|
||
推荐:
|
||
|
||
```text
|
||
shadow-card =
|
||
0 4px 16px rgba(0,0,0,0.04)
|
||
```
|
||
|
||
浮层:
|
||
|
||
```text
|
||
shadow-popup =
|
||
0 8px 32px rgba(0,0,0,0.10)
|
||
```
|
||
|
||
不要使用明显深阴影。
|
||
|
||
---
|
||
|
||
# 第十六章 边框 Token
|
||
|
||
```text
|
||
border-width = 1px
|
||
border-color = #EEEEEE
|
||
```
|
||
|
||
Input Focus:
|
||
|
||
```text
|
||
border-color-focus = color-primary
|
||
```
|
||
|
||
错误:
|
||
|
||
```text
|
||
border-color-error = color-danger
|
||
```
|
||
|
||
---
|
||
|
||
# 第十七章 动效 Token
|
||
|
||
```text
|
||
motion-fast = 120ms
|
||
motion-normal = 200ms
|
||
motion-slow = 300ms
|
||
```
|
||
|
||
缓动:
|
||
|
||
```text
|
||
ease-standard = ease-out
|
||
```
|
||
|
||
不要超过500ms的常规UI动效。
|
||
|
||
---
|
||
|
||
# 第十八章 图标规范
|
||
|
||
建议统一线性图标。
|
||
|
||
基础尺寸:
|
||
|
||
```text
|
||
icon-xs = 16px
|
||
icon-sm = 20px
|
||
icon-md = 24px
|
||
icon-lg = 32px
|
||
```
|
||
|
||
图标库建议保持统一风格。
|
||
|
||
不要混用:
|
||
|
||
- 填充图标
|
||
- 卡通图标
|
||
- 3D图标
|
||
- 多套不同图标库
|
||
|
||
---
|
||
|
||
# 第十九章 Button组件
|
||
|
||
组件名:
|
||
|
||
```text
|
||
Button
|
||
```
|
||
|
||
支持Variant:
|
||
|
||
```text
|
||
primary
|
||
secondary
|
||
text
|
||
danger
|
||
ghost
|
||
```
|
||
|
||
支持Size:
|
||
|
||
```text
|
||
small
|
||
medium
|
||
large
|
||
```
|
||
|
||
---
|
||
|
||
# 第二十章 Primary Button
|
||
|
||
```text
|
||
height = 48px
|
||
radius = 12px
|
||
background = color-primary
|
||
text = white
|
||
font-size = 16px
|
||
font-weight = 500
|
||
```
|
||
|
||
Hover/Press:
|
||
|
||
```text
|
||
color-primary-active
|
||
```
|
||
|
||
Disabled:
|
||
|
||
```text
|
||
background = color-bg-disabled
|
||
text = color-disabled-text
|
||
```
|
||
|
||
---
|
||
|
||
# 第二十一章 Secondary Button
|
||
|
||
```text
|
||
height = 48px
|
||
background = #FFFFFF
|
||
border = color-primary
|
||
text = color-primary
|
||
```
|
||
|
||
典型场景:
|
||
|
||
- 查看资料
|
||
- 返回修改
|
||
- 稍后再聊
|
||
- 放宽条件
|
||
|
||
---
|
||
|
||
# 第二十二章 Text Button
|
||
|
||
没有背景。
|
||
|
||
用于:
|
||
|
||
- 编辑
|
||
- 查看更多
|
||
- 取消喜欢
|
||
- 解除拉黑
|
||
|
||
---
|
||
|
||
# 第二十三章 Danger Button
|
||
|
||
用于:
|
||
|
||
- 拉黑
|
||
- 封禁
|
||
- 注销
|
||
- 删除
|
||
|
||
背景方式建议:
|
||
|
||
普通用户端:
|
||
|
||
> 红色文字/描边优先。
|
||
|
||
后台严重操作:
|
||
|
||
> 可使用红色实心按钮。
|
||
|
||
---
|
||
|
||
# 第二十四章 Button状态
|
||
|
||
每个按钮必须支持:
|
||
|
||
```text
|
||
default
|
||
pressed
|
||
loading
|
||
disabled
|
||
```
|
||
|
||
Loading状态:
|
||
|
||
```text
|
||
加载图标 + 文案
|
||
```
|
||
|
||
例如:
|
||
|
||
> 提交中...
|
||
|
||
禁止用户重复点击。
|
||
|
||
---
|
||
|
||
# 第二十五章 Input组件
|
||
|
||
组件名:
|
||
|
||
```text
|
||
Input
|
||
```
|
||
|
||
高度:
|
||
|
||
```text
|
||
48px
|
||
```
|
||
|
||
支持:
|
||
|
||
```text
|
||
label
|
||
placeholder
|
||
prefix
|
||
suffix
|
||
helperText
|
||
errorText
|
||
disabled
|
||
```
|
||
|
||
---
|
||
|
||
# 第二十六章 Input状态
|
||
|
||
```text
|
||
default
|
||
focus
|
||
filled
|
||
error
|
||
disabled
|
||
```
|
||
|
||
错误状态:
|
||
|
||
```text
|
||
红色边框
|
||
+
|
||
字段下方错误文字
|
||
```
|
||
|
||
不要只用红框,不显示原因。
|
||
|
||
---
|
||
|
||
# 第二十七章 Textarea组件
|
||
|
||
用于:
|
||
|
||
- 自我介绍
|
||
- 举报说明
|
||
- 红娘服务说明
|
||
- 意见反馈
|
||
|
||
建议最小高度:
|
||
|
||
```text
|
||
120px
|
||
```
|
||
|
||
支持字数统计:
|
||
|
||
```text
|
||
128 / 500
|
||
```
|
||
|
||
---
|
||
|
||
# 第二十八章 Select组件
|
||
|
||
移动端优先:
|
||
|
||
> Picker / Bottom Sheet
|
||
|
||
PC后台:
|
||
|
||
> Dropdown Select
|
||
|
||
不要在微信小程序中强行模拟PC下拉菜单。
|
||
|
||
---
|
||
|
||
# 第二十九章 RadioGroup组件
|
||
|
||
整行可点击。
|
||
|
||
示例:
|
||
|
||
```text
|
||
○ 必须符合
|
||
● 最好符合
|
||
```
|
||
|
||
组件:
|
||
|
||
```text
|
||
RadioGroup
|
||
RadioItem
|
||
```
|
||
|
||
---
|
||
|
||
# 第三十章 Checkbox/TagSelect组件
|
||
|
||
婚恋标签选择建议使用:
|
||
|
||
```text
|
||
TagSelect
|
||
```
|
||
|
||
例如:
|
||
|
||
```text
|
||
[旅行] [运动] [阅读]
|
||
```
|
||
|
||
未选中:
|
||
|
||
```text
|
||
浅灰背景
|
||
深灰文字
|
||
```
|
||
|
||
选中:
|
||
|
||
```text
|
||
color-primary-light
|
||
color-primary
|
||
```
|
||
|
||
---
|
||
|
||
# 第三十一章 Switch组件
|
||
|
||
用于:
|
||
|
||
- 隐私设置
|
||
- 是否接收活动推荐
|
||
- 是否允许搜索
|
||
- 是否接受红娘推荐
|
||
|
||
建议使用系统化Switch。
|
||
|
||
---
|
||
|
||
# 第三十二章 SliderRange组件
|
||
|
||
用于:
|
||
|
||
- 年龄
|
||
- 身高
|
||
|
||
组件:
|
||
|
||
```text
|
||
RangeSlider
|
||
```
|
||
|
||
同时显示左右值:
|
||
|
||
```text
|
||
28岁 —— 35岁
|
||
```
|
||
|
||
不要只显示滑块而看不到当前数值。
|
||
|
||
---
|
||
|
||
# 第三十三章 ProgressBar组件
|
||
|
||
用于:
|
||
|
||
- 资料完善进度
|
||
- 注册流程
|
||
|
||
参数:
|
||
|
||
```text
|
||
value
|
||
max
|
||
showText
|
||
```
|
||
|
||
颜色:
|
||
|
||
```text
|
||
color-primary
|
||
```
|
||
|
||
---
|
||
|
||
# 第三十四章 StatusBadge组件
|
||
|
||
统一组件:
|
||
|
||
```text
|
||
StatusBadge
|
||
```
|
||
|
||
支持状态:
|
||
|
||
```text
|
||
verified
|
||
reviewed
|
||
reviewing
|
||
need_edit
|
||
success
|
||
pending
|
||
danger
|
||
disabled
|
||
service
|
||
```
|
||
|
||
---
|
||
|
||
# 第三十五章 StatusBadge视觉
|
||
|
||
## 已实名
|
||
|
||
```text
|
||
background = color-success-light
|
||
text = color-success
|
||
```
|
||
|
||
文案:
|
||
|
||
> 已实名
|
||
|
||
---
|
||
|
||
## 已审核
|
||
|
||
```text
|
||
background = color-success-light
|
||
text = color-success
|
||
```
|
||
|
||
---
|
||
|
||
## 审核中
|
||
|
||
```text
|
||
background = color-warning-light
|
||
text = color-warning
|
||
```
|
||
|
||
---
|
||
|
||
## 需修改
|
||
|
||
```text
|
||
background = color-warning-light
|
||
text = color-warning
|
||
```
|
||
|
||
---
|
||
|
||
## 高风险
|
||
|
||
```text
|
||
background = color-danger-light
|
||
text = color-danger
|
||
```
|
||
|
||
---
|
||
|
||
# 第三十六章 UserCard组件
|
||
|
||
UserCard是平台核心组件之一。
|
||
|
||
用于:
|
||
|
||
- 找对象
|
||
- 喜欢列表
|
||
- 红娘候选
|
||
- 活动意向名单
|
||
|
||
基础属性:
|
||
|
||
```text
|
||
avatar
|
||
displayName
|
||
age
|
||
height
|
||
region
|
||
education
|
||
occupation
|
||
maritalStatus
|
||
verified
|
||
reviewed
|
||
```
|
||
|
||
---
|
||
|
||
# 第三十七章 UserCard移动端结构
|
||
|
||
```text
|
||
┌────────────────────────┐
|
||
│ [照片] 王女士 · 32岁 │
|
||
│ 165cm · 丹阳 │
|
||
│ 本科 · 教师 │
|
||
│ 未婚 │
|
||
│ ✓ 已实名 │
|
||
└────────────────────────┘
|
||
```
|
||
|
||
推荐:
|
||
|
||
```text
|
||
avatar:88×112px
|
||
```
|
||
|
||
比例约:
|
||
|
||
```text
|
||
4:5
|
||
```
|
||
|
||
---
|
||
|
||
# 第三十八章 UserCard交互
|
||
|
||
整卡:
|
||
|
||
> 可点击进入详情。
|
||
|
||
不要在普通列表里堆:
|
||
|
||
- 喜欢
|
||
- 举报
|
||
- 拉黑
|
||
- 红娘推荐
|
||
|
||
这些应进入详情或特定业务场景。
|
||
|
||
---
|
||
|
||
# 第三十九章 RecommendCard组件
|
||
|
||
用于:
|
||
|
||
> 首页每日推荐。
|
||
|
||
继承UserCard,并增加:
|
||
|
||
```text
|
||
photos
|
||
recommendReasons
|
||
likeStatus
|
||
actionMode
|
||
```
|
||
|
||
---
|
||
|
||
# 第四十章 RecommendCard结构
|
||
|
||
```text
|
||
照片区域
|
||
↓
|
||
用户核心资料
|
||
↓
|
||
认证状态
|
||
↓
|
||
推荐理由
|
||
↓
|
||
操作栏
|
||
```
|
||
|
||
---
|
||
|
||
# 第四十一章 RecommendReason组件
|
||
|
||
组件:
|
||
|
||
```text
|
||
RecommendReason
|
||
```
|
||
|
||
样式:
|
||
|
||
```text
|
||
background = color-primary-light
|
||
radius = 12px
|
||
padding = 12~16px
|
||
```
|
||
|
||
最多显示:
|
||
|
||
> 3~4条。
|
||
|
||
---
|
||
|
||
# 第四十二章 RecommendReason文案
|
||
|
||
每条使用:
|
||
|
||
```text
|
||
✓ 年龄符合双方要求
|
||
```
|
||
|
||
不要写:
|
||
|
||
```text
|
||
算法得分 +15
|
||
权重命中
|
||
```
|
||
|
||
---
|
||
|
||
# 第四十三章 ActivityCard组件
|
||
|
||
属性:
|
||
|
||
```text
|
||
cover
|
||
title
|
||
date
|
||
time
|
||
location
|
||
feeType
|
||
status
|
||
registrationCount
|
||
```
|
||
|
||
V1前台不要重点展示报名人数。
|
||
|
||
---
|
||
|
||
# 第四十四章 ActivityCard结构
|
||
|
||
```text
|
||
封面
|
||
活动名称
|
||
时间
|
||
地点
|
||
公益免费标签
|
||
状态
|
||
```
|
||
|
||
---
|
||
|
||
# 第四十五章 ActivityStatus
|
||
|
||
支持:
|
||
|
||
```text
|
||
报名中
|
||
审核中
|
||
报名成功
|
||
已满
|
||
已结束
|
||
已签到
|
||
```
|
||
|
||
---
|
||
|
||
# 第四十六章 ProfileSection组件
|
||
|
||
用于用户详情页。
|
||
|
||
结构:
|
||
|
||
```text
|
||
标题
|
||
内容
|
||
```
|
||
|
||
例如:
|
||
|
||
```text
|
||
关于TA
|
||
────────
|
||
婚姻状况 未婚
|
||
学历 本科
|
||
```
|
||
|
||
统一Padding:
|
||
|
||
```text
|
||
16px
|
||
```
|
||
|
||
统一Radius:
|
||
|
||
```text
|
||
16px
|
||
```
|
||
|
||
---
|
||
|
||
# 第四十七章 InfoRow组件
|
||
|
||
用于:
|
||
|
||
```text
|
||
左侧Label
|
||
右侧Value
|
||
```
|
||
|
||
例如:
|
||
|
||
```text
|
||
婚姻状况 未婚
|
||
```
|
||
|
||
属性:
|
||
|
||
```text
|
||
label
|
||
value
|
||
highlight
|
||
```
|
||
|
||
---
|
||
|
||
# 第四十八章 PhotoGrid组件
|
||
|
||
用于:
|
||
|
||
- 用户生活照片
|
||
- 举报证据
|
||
- 意见反馈
|
||
|
||
用户资料中:
|
||
|
||
```text
|
||
2~3列
|
||
```
|
||
|
||
照片比例:
|
||
|
||
```text
|
||
1:1
|
||
```
|
||
|
||
点击:
|
||
|
||
> Preview。
|
||
|
||
---
|
||
|
||
# 第四十九章 PhotoUploader组件
|
||
|
||
支持:
|
||
|
||
```text
|
||
single
|
||
multiple
|
||
maxCount
|
||
compress
|
||
preview
|
||
delete
|
||
```
|
||
|
||
主头像模式:
|
||
|
||
```text
|
||
single
|
||
```
|
||
|
||
生活照:
|
||
|
||
```text
|
||
multiple
|
||
```
|
||
|
||
---
|
||
|
||
# 第五十章 Avatar/ProfilePhoto规范
|
||
|
||
婚恋用户头像建议:
|
||
|
||
> 尽量使用真实照片矩形裁切。
|
||
|
||
列表:
|
||
|
||
```text
|
||
4:5
|
||
```
|
||
|
||
聊天:
|
||
|
||
```text
|
||
1:1
|
||
圆角
|
||
```
|
||
|
||
不要所有地方都裁成圆形。
|
||
|
||
---
|
||
|
||
# 第五十一章 NoticeBar组件
|
||
|
||
用于:
|
||
|
||
- 聊天安全提醒
|
||
- 审核提示
|
||
- 活动提示
|
||
|
||
Variant:
|
||
|
||
```text
|
||
info
|
||
warning
|
||
success
|
||
danger
|
||
```
|
||
|
||
聊天安全:
|
||
|
||
```text
|
||
warning
|
||
```
|
||
|
||
---
|
||
|
||
# 第五十二章 Toast组件
|
||
|
||
适用于即时轻反馈。
|
||
|
||
例如:
|
||
|
||
```text
|
||
已喜欢
|
||
保存成功
|
||
报名已提交
|
||
已解除拉黑
|
||
```
|
||
|
||
展示:
|
||
|
||
```text
|
||
1.5~2秒
|
||
```
|
||
|
||
不允许承载复杂信息。
|
||
|
||
---
|
||
|
||
# 第五十三章 Dialog组件
|
||
|
||
用于重要二次确认。
|
||
|
||
结构:
|
||
|
||
```text
|
||
title
|
||
description
|
||
primaryAction
|
||
secondaryAction
|
||
```
|
||
|
||
适用:
|
||
|
||
- 解除匹配
|
||
- 拉黑
|
||
- 暂停寻找
|
||
- 成功牵手
|
||
- 封禁
|
||
- 删除
|
||
|
||
---
|
||
|
||
# 第五十四章 BottomSheet组件
|
||
|
||
移动端优先用于:
|
||
|
||
- 选择操作
|
||
- 解除匹配原因
|
||
- 简单Picker
|
||
- 更多菜单
|
||
|
||
最大高度建议:
|
||
|
||
```text
|
||
80vh
|
||
```
|
||
|
||
---
|
||
|
||
# 第五十五章 MoreMenu组件
|
||
|
||
用户详情和聊天右上角:
|
||
|
||
```text
|
||
···
|
||
```
|
||
|
||
内容:
|
||
|
||
```text
|
||
查看资料
|
||
解除匹配
|
||
举报
|
||
拉黑
|
||
```
|
||
|
||
根据业务状态动态显示。
|
||
|
||
---
|
||
|
||
# 第五十六章 EmptyState组件
|
||
|
||
属性:
|
||
|
||
```text
|
||
icon
|
||
title
|
||
description
|
||
actionText
|
||
action
|
||
```
|
||
|
||
示例:
|
||
|
||
```text
|
||
暂无聊天
|
||
|
||
双方互相喜欢后,
|
||
就可以开始交流。
|
||
|
||
[ 去看看推荐 ]
|
||
```
|
||
|
||
---
|
||
|
||
# 第五十七章 ErrorState组件
|
||
|
||
示例:
|
||
|
||
```text
|
||
网络好像有点问题
|
||
|
||
请检查网络后重新加载。
|
||
|
||
[ 重新加载 ]
|
||
```
|
||
|
||
不要展示技术堆栈信息。
|
||
|
||
---
|
||
|
||
# 第五十八章 Loading组件
|
||
|
||
页面加载:
|
||
|
||
优先:
|
||
|
||
> Skeleton。
|
||
|
||
按钮:
|
||
|
||
> Spinner。
|
||
|
||
不要全屏长期显示大型Loading动画。
|
||
|
||
---
|
||
|
||
# 第五十九章 Skeleton组件
|
||
|
||
至少支持:
|
||
|
||
```text
|
||
UserCardSkeleton
|
||
RecommendCardSkeleton
|
||
ListSkeleton
|
||
ProfileSkeleton
|
||
```
|
||
|
||
避免页面加载时跳动过大。
|
||
|
||
---
|
||
|
||
# 第六十章 MatchSuccess组件
|
||
|
||
用于双向喜欢。
|
||
|
||
属性:
|
||
|
||
```text
|
||
userAvatar
|
||
targetAvatar
|
||
targetName
|
||
primaryAction
|
||
```
|
||
|
||
视觉:
|
||
|
||
> 简洁爱心+双头像。
|
||
|
||
不要做娱乐化动画。
|
||
|
||
---
|
||
|
||
# 第六十一章 ChatListItem组件
|
||
|
||
属性:
|
||
|
||
```text
|
||
avatar
|
||
name
|
||
lastMessage
|
||
time
|
||
unreadCount
|
||
```
|
||
|
||
样式接近用户熟悉的微信消息列表。
|
||
|
||
---
|
||
|
||
# 第六十二章 ChatBubble组件
|
||
|
||
支持:
|
||
|
||
```text
|
||
self
|
||
other
|
||
system
|
||
```
|
||
|
||
用户本人:
|
||
|
||
> 右侧。
|
||
|
||
对方:
|
||
|
||
> 左侧。
|
||
|
||
系统安全信息:
|
||
|
||
> 中间。
|
||
|
||
---
|
||
|
||
# 第六十三章 RiskNotice组件
|
||
|
||
用于聊天风险提示。
|
||
|
||
Variant:
|
||
|
||
```text
|
||
money
|
||
fraud
|
||
privacy
|
||
```
|
||
|
||
但V1视觉统一,不需要不同颜色体系。
|
||
|
||
默认警告色。
|
||
|
||
---
|
||
|
||
# 第六十四章 Tab组件
|
||
|
||
用户端:
|
||
|
||
```text
|
||
SegmentTabs
|
||
```
|
||
|
||
例如:
|
||
|
||
```text
|
||
互相喜欢 | 我喜欢的 | 喜欢我的
|
||
```
|
||
|
||
后台:
|
||
|
||
```text
|
||
PageTabs
|
||
```
|
||
|
||
例如:
|
||
|
||
```text
|
||
待审核 | 审核中 | 已通过
|
||
```
|
||
|
||
---
|
||
|
||
# 第六十五章 BottomTabBar组件
|
||
|
||
固定五项:
|
||
|
||
```text
|
||
首页
|
||
找对象
|
||
消息
|
||
活动
|
||
我的
|
||
```
|
||
|
||
必须使用统一图标和文案。
|
||
|
||
消息有未读时:
|
||
|
||
> 红点或数字Badge。
|
||
|
||
---
|
||
|
||
# 第六十六章 Navbar组件
|
||
|
||
小程序页面统一:
|
||
|
||
```text
|
||
title
|
||
back
|
||
rightAction
|
||
```
|
||
|
||
尽量使用微信原生导航行为。
|
||
|
||
---
|
||
|
||
# 第六十七章 SearchBar组件
|
||
|
||
后台和部分用户搜索使用。
|
||
|
||
用户端:
|
||
|
||
> 不作为主入口。
|
||
|
||
后台:
|
||
|
||
用于:
|
||
|
||
- 用户搜索
|
||
- 活动人员搜索
|
||
- 红娘用户搜索
|
||
|
||
---
|
||
|
||
# 第六十八章 FilterBar组件
|
||
|
||
后台列表统一使用。
|
||
|
||
结构:
|
||
|
||
```text
|
||
搜索
|
||
筛选项
|
||
查询
|
||
重置
|
||
```
|
||
|
||
避免每个后台页面重新布局。
|
||
|
||
---
|
||
|
||
# 第六十九章 DataTable组件
|
||
|
||
红娘端、后台核心组件。
|
||
|
||
支持:
|
||
|
||
```text
|
||
columns
|
||
pagination
|
||
sorting
|
||
selection
|
||
actions
|
||
loading
|
||
empty
|
||
```
|
||
|
||
---
|
||
|
||
# 第七十章 DataTable视觉规范
|
||
|
||
表头:
|
||
|
||
```text
|
||
14px
|
||
500
|
||
浅灰背景或白背景
|
||
```
|
||
|
||
表格正文:
|
||
|
||
```text
|
||
14px
|
||
```
|
||
|
||
行高:
|
||
|
||
```text
|
||
52~56px
|
||
```
|
||
|
||
---
|
||
|
||
# 第七十一章 TableRowAction组件
|
||
|
||
每行最多:
|
||
|
||
```text
|
||
2个直接操作 + 更多
|
||
```
|
||
|
||
例如:
|
||
|
||
```text
|
||
查看 | 审核 | 更多
|
||
```
|
||
|
||
---
|
||
|
||
# 第七十二章 AdminSidebar组件
|
||
|
||
宽度:
|
||
|
||
```text
|
||
220~240px
|
||
```
|
||
|
||
状态:
|
||
|
||
```text
|
||
default
|
||
active
|
||
collapsed
|
||
```
|
||
|
||
V1可不优先做折叠。
|
||
|
||
---
|
||
|
||
# 第七十三章 AdminHeader组件
|
||
|
||
包含:
|
||
|
||
```text
|
||
当前机构
|
||
通知
|
||
当前用户
|
||
退出
|
||
```
|
||
|
||
不加入无关信息。
|
||
|
||
---
|
||
|
||
# 第七十四章 StatCard组件
|
||
|
||
后台工作台统一组件。
|
||
|
||
属性:
|
||
|
||
```text
|
||
title
|
||
value
|
||
trend
|
||
status
|
||
action
|
||
```
|
||
|
||
示例:
|
||
|
||
```text
|
||
待审核资料
|
||
12
|
||
```
|
||
|
||
---
|
||
|
||
# 第七十五章 StatCard规则
|
||
|
||
待办类:
|
||
|
||
> 可点击。
|
||
|
||
普通统计:
|
||
|
||
> 不一定可点击。
|
||
|
||
不要用大量渐变背景。
|
||
|
||
---
|
||
|
||
# 第七十六章 RiskLevelTag组件
|
||
|
||
后台风险:
|
||
|
||
```text
|
||
正常
|
||
关注
|
||
高风险
|
||
封禁
|
||
```
|
||
|
||
颜色:
|
||
|
||
正常:
|
||
|
||
```text
|
||
success
|
||
```
|
||
|
||
关注:
|
||
|
||
```text
|
||
warning
|
||
```
|
||
|
||
高风险:
|
||
|
||
```text
|
||
danger
|
||
```
|
||
|
||
封禁:
|
||
|
||
```text
|
||
深灰/危险
|
||
```
|
||
|
||
---
|
||
|
||
# 第七十七章 ReviewStatus组件
|
||
|
||
用户审核:
|
||
|
||
```text
|
||
待审核
|
||
审核中
|
||
需修改
|
||
已通过
|
||
已拒绝
|
||
```
|
||
|
||
统一各端显示。
|
||
|
||
---
|
||
|
||
# 第七十八章 ServiceStatus组件
|
||
|
||
红娘:
|
||
|
||
```text
|
||
待分配
|
||
已接单
|
||
服务中
|
||
待跟进
|
||
已完成
|
||
```
|
||
|
||
---
|
||
|
||
# 第七十九章 ActivityManagementStatus组件
|
||
|
||
后台活动:
|
||
|
||
```text
|
||
草稿
|
||
报名中
|
||
报名结束
|
||
进行中
|
||
已结束
|
||
```
|
||
|
||
---
|
||
|
||
# 第八十章 FormSection组件
|
||
|
||
后台长表单使用。
|
||
|
||
例如:
|
||
|
||
```text
|
||
基本信息
|
||
活动时间
|
||
人数限制
|
||
报名设置
|
||
```
|
||
|
||
减少一个大表单堆几十个字段。
|
||
|
||
---
|
||
|
||
# 第八十一章 ConfirmDangerDialog组件
|
||
|
||
后台高风险操作统一使用。
|
||
|
||
例如封禁:
|
||
|
||
```text
|
||
确认封禁该用户?
|
||
|
||
封禁后用户将无法继续使用婚恋服务。
|
||
|
||
原因:
|
||
[请选择]
|
||
|
||
[确认封禁]
|
||
[取消]
|
||
```
|
||
|
||
必须要求原因。
|
||
|
||
---
|
||
|
||
# 第八十二章 Pagination组件
|
||
|
||
默认:
|
||
|
||
```text
|
||
20条/页
|
||
```
|
||
|
||
支持:
|
||
|
||
```text
|
||
20
|
||
50
|
||
100
|
||
```
|
||
|
||
V1默认建议只开放20/50。
|
||
|
||
---
|
||
|
||
# 第八十三章 DatePicker组件
|
||
|
||
移动端:
|
||
|
||
> 微信Picker。
|
||
|
||
后台:
|
||
|
||
> 日期时间组件。
|
||
|
||
统一存储时间格式由后端定义,前端负责本地化显示。
|
||
|
||
---
|
||
|
||
# 第八十四章 FormValidation规范
|
||
|
||
字段错误优先显示在字段下方。
|
||
|
||
例如:
|
||
|
||
```text
|
||
身份证号码
|
||
[32xxxxxxxxxxxx]
|
||
|
||
身份证号码格式不正确
|
||
```
|
||
|
||
不要提交后只顶部显示:
|
||
|
||
> 表单有错误。
|
||
|
||
---
|
||
|
||
# 第八十五章 必填标识
|
||
|
||
必填项:
|
||
|
||
```text
|
||
*
|
||
```
|
||
|
||
但首次资料填写中尽量通过产品流程减少大量星号。
|
||
|
||
可选项明确标注:
|
||
|
||
> 选填
|
||
|
||
---
|
||
|
||
# 第八十六章 Disabled状态
|
||
|
||
禁用组件必须:
|
||
|
||
- 视觉明显变淡
|
||
- 无点击响应
|
||
- 如用户可能疑惑,给说明
|
||
|
||
例如:
|
||
|
||
```text
|
||
资料审核中,暂不能修改婚姻状态。
|
||
```
|
||
|
||
---
|
||
|
||
# 第八十七章 图片占位组件
|
||
|
||
头像缺失:
|
||
|
||
不要默认用随机人物照片。
|
||
|
||
使用:
|
||
|
||
> 中性用户轮廓图标。
|
||
|
||
但正式进入匹配前:
|
||
|
||
> 必须上传真实头像。
|
||
|
||
---
|
||
|
||
# 第八十八章 内容超长规则
|
||
|
||
用户名称:
|
||
|
||
> 单行省略。
|
||
|
||
职业:
|
||
|
||
> 单行省略。
|
||
|
||
个人介绍:
|
||
|
||
详情页完整展示。
|
||
|
||
列表:
|
||
|
||
> 不显示或最多2行。
|
||
|
||
---
|
||
|
||
# 第八十九章 标签数量限制
|
||
|
||
UserCard:
|
||
|
||
最多:
|
||
|
||
```text
|
||
2~3个状态标签
|
||
```
|
||
|
||
详情页兴趣:
|
||
|
||
最多:
|
||
|
||
```text
|
||
8个
|
||
```
|
||
|
||
避免标签海洋。
|
||
|
||
---
|
||
|
||
# 第九十章 层级 Z-Index Token
|
||
|
||
建议统一:
|
||
|
||
```text
|
||
z-base = 1
|
||
z-sticky = 100
|
||
z-tabbar = 200
|
||
z-dropdown = 500
|
||
z-modal = 1000
|
||
z-toast = 2000
|
||
```
|
||
|
||
---
|
||
|
||
# 第九十一章 Safe Area规范
|
||
|
||
微信小程序底部:
|
||
|
||
必须考虑:
|
||
|
||
```text
|
||
env(safe-area-inset-bottom)
|
||
```
|
||
|
||
底部固定按钮和Tab不能被系统Home Indicator遮挡。
|
||
|
||
---
|
||
|
||
# 第九十二章 PC响应式断点
|
||
|
||
```text
|
||
breakpoint-md = 1024px
|
||
breakpoint-lg = 1280px
|
||
breakpoint-xl = 1440px
|
||
```
|
||
|
||
红娘端/后台:
|
||
|
||
V1优先优化:
|
||
|
||
```text
|
||
1280+
|
||
```
|
||
|
||
---
|
||
|
||
# 第九十三章 用户端组件命名建议
|
||
|
||
前端目录:
|
||
|
||
```text
|
||
components/
|
||
button/
|
||
input/
|
||
status-badge/
|
||
user-card/
|
||
recommend-card/
|
||
activity-card/
|
||
profile-section/
|
||
info-row/
|
||
photo-grid/
|
||
photo-uploader/
|
||
notice-bar/
|
||
empty-state/
|
||
error-state/
|
||
loading/
|
||
match-success/
|
||
chat-bubble/
|
||
bottom-sheet/
|
||
```
|
||
|
||
---
|
||
|
||
# 第九十四章 后台组件命名建议
|
||
|
||
```text
|
||
admin-components/
|
||
admin-sidebar/
|
||
admin-header/
|
||
stat-card/
|
||
filter-bar/
|
||
data-table/
|
||
review-status/
|
||
risk-level-tag/
|
||
form-section/
|
||
confirm-danger-dialog/
|
||
```
|
||
|
||
---
|
||
|
||
# 第九十五章 页面不得直接写死颜色
|
||
|
||
禁止:
|
||
|
||
```css
|
||
color: #E96B6B;
|
||
```
|
||
|
||
页面层应使用:
|
||
|
||
```css
|
||
color: var(--color-primary);
|
||
```
|
||
|
||
或框架对应的Token引用方式。
|
||
|
||
---
|
||
|
||
# 第九十六章 页面不得直接写死通用间距
|
||
|
||
避免:
|
||
|
||
```css
|
||
margin-top: 17px;
|
||
```
|
||
|
||
优先:
|
||
|
||
```text
|
||
spacing-4
|
||
spacing-5
|
||
spacing-6
|
||
```
|
||
|
||
只有特殊布局才允许例外。
|
||
|
||
---
|
||
|
||
# 第九十七章 微信小程序Token建议
|
||
|
||
可统一定义:
|
||
|
||
```text
|
||
--color-primary
|
||
--color-primary-light
|
||
--color-success
|
||
--color-warning
|
||
--color-danger
|
||
--color-info
|
||
|
||
--text-primary
|
||
--text-secondary
|
||
--text-tertiary
|
||
|
||
--bg-page
|
||
--bg-card
|
||
|
||
--radius-sm
|
||
--radius-md
|
||
--radius-lg
|
||
|
||
--spacing-1
|
||
--spacing-2
|
||
--spacing-3
|
||
--spacing-4
|
||
--spacing-5
|
||
--spacing-6
|
||
```
|
||
|
||
---
|
||
|
||
# 第九十八章 推荐Token代码结构示例
|
||
|
||
```text
|
||
theme/
|
||
colors
|
||
typography
|
||
spacing
|
||
radius
|
||
shadow
|
||
motion
|
||
```
|
||
|
||
不要把所有样式变量放在一个无法维护的大文件中。
|
||
|
||
---
|
||
|
||
# 第九十九章 组件状态统一原则
|
||
|
||
所有可交互组件至少考虑:
|
||
|
||
```text
|
||
默认
|
||
按下
|
||
加载
|
||
禁用
|
||
错误
|
||
空状态
|
||
```
|
||
|
||
需要网络数据的组件还要考虑:
|
||
|
||
```text
|
||
Loading
|
||
Error
|
||
Empty
|
||
Loaded
|
||
```
|
||
|
||
---
|
||
|
||
# 第一百章 组件复用红线
|
||
|
||
以下业务不能自行重新造组件:
|
||
|
||
- 用户卡片
|
||
- 推荐卡片
|
||
- 活动卡片
|
||
- 状态标签
|
||
- 空状态
|
||
- 弹窗
|
||
- Toast
|
||
- 审核状态
|
||
- 风险状态
|
||
- 表格
|
||
- 筛选栏
|
||
|
||
---
|
||
|
||
# 第一百零一章 组件文案原则
|
||
|
||
组件内部不要写死业务文案。
|
||
|
||
例如:
|
||
|
||
错误:
|
||
|
||
```text
|
||
Button组件内部默认文案:立即报名
|
||
```
|
||
|
||
正确:
|
||
|
||
```text
|
||
Button接受children/text参数
|
||
```
|
||
|
||
业务文案由页面传入。
|
||
|
||
---
|
||
|
||
# 第一百零二章 无障碍规范
|
||
|
||
Button:
|
||
|
||
> 必须有文字或accessible label。
|
||
|
||
纯图标:
|
||
|
||
> 必须提供说明。
|
||
|
||
颜色状态:
|
||
|
||
> 必须同时有文字。
|
||
|
||
例如:
|
||
|
||
不能只有红色点。
|
||
|
||
应该:
|
||
|
||
> 高风险
|
||
|
||
---
|
||
|
||
# 第一百零三章 点击热区
|
||
|
||
移动端交互元素最小:
|
||
|
||
```text
|
||
44×44px
|
||
```
|
||
|
||
文字“编辑”也应通过padding扩大可点击区域。
|
||
|
||
---
|
||
|
||
# 第一百零四章 用户端视觉密度
|
||
|
||
原则:
|
||
|
||
> 中低密度。
|
||
|
||
不追求一屏展示尽可能多数据。
|
||
|
||
尤其:
|
||
|
||
- 首页
|
||
- 详情
|
||
- 活动
|
||
- 红娘服务
|
||
|
||
都要有足够留白。
|
||
|
||
---
|
||
|
||
# 第一百零五章 后台视觉密度
|
||
|
||
原则:
|
||
|
||
> 中等密度。
|
||
|
||
可以比用户端紧凑,但避免传统ERP式高密度。
|
||
|
||
---
|
||
|
||
# 第一百零六章 头像审核状态显示
|
||
|
||
如果用户资料处于:
|
||
|
||
> 审核中
|
||
|
||
主头像仍然可以给本人看。
|
||
|
||
但在其他用户侧:
|
||
|
||
> 未审核用户不能进入正常推荐池。
|
||
|
||
因此不需要设计“别人看到审核中头像”的场景。
|
||
|
||
---
|
||
|
||
# 第一百零七章 敏感字段组件
|
||
|
||
后台建议:
|
||
|
||
```text
|
||
SensitiveField
|
||
```
|
||
|
||
默认:
|
||
|
||
```text
|
||
320***********1234
|
||
```
|
||
|
||
具备权限者点击:
|
||
|
||
> 查看完整信息
|
||
|
||
系统记录访问日志。
|
||
|
||
---
|
||
|
||
# 第一百零八章 MobileStickyAction组件
|
||
|
||
用于:
|
||
|
||
- 用户详情喜欢
|
||
- 活动报名
|
||
- 表单提交
|
||
|
||
固定底部。
|
||
|
||
必须:
|
||
|
||
- 避开TabBar
|
||
- 避开safe area
|
||
- 有白色背景
|
||
- 顶部轻分割线
|
||
|
||
---
|
||
|
||
# 第一百零九章 StepProgress组件
|
||
|
||
用于首次资料填写。
|
||
|
||
示例:
|
||
|
||
```text
|
||
完善资料 2/5
|
||
|
||
██████░░░░
|
||
```
|
||
|
||
不需要复杂Step图标。
|
||
|
||
---
|
||
|
||
# 第一百一十章 PageHeader组件
|
||
|
||
用户端简单:
|
||
|
||
```text
|
||
标题
|
||
可选说明
|
||
```
|
||
|
||
后台:
|
||
|
||
```text
|
||
页面标题
|
||
说明
|
||
主要操作
|
||
```
|
||
|
||
例如:
|
||
|
||
```text
|
||
活动管理 + 创建活动
|
||
管理公益婚恋线下活动
|
||
```
|
||
|
||
---
|
||
|
||
# 第一百一十一章 Alert组件
|
||
|
||
后台使用。
|
||
|
||
例如:
|
||
|
||
> 修改匹配权重会影响后续推荐,请谨慎操作。
|
||
|
||
Variant:
|
||
|
||
```text
|
||
info
|
||
warning
|
||
danger
|
||
```
|
||
|
||
---
|
||
|
||
# 第一百一十二章 Drawer组件
|
||
|
||
后台可用于:
|
||
|
||
- 快速查看用户
|
||
- 快速查看报名详情
|
||
|
||
不用于复杂审核。
|
||
|
||
复杂审核进入完整页面。
|
||
|
||
---
|
||
|
||
# 第一百一十三章 Tooltip组件
|
||
|
||
后台可以使用。
|
||
|
||
用户小程序:
|
||
|
||
> 尽量不用Tooltip。
|
||
|
||
移动端不适合依赖Hover。
|
||
|
||
---
|
||
|
||
# 第一百一十四章 Breadcrumb规范
|
||
|
||
后台页面层级较深时使用。
|
||
|
||
例如:
|
||
|
||
```text
|
||
活动管理 / 丹阳青年公益相亲会 / 报名管理
|
||
```
|
||
|
||
小程序不需要。
|
||
|
||
---
|
||
|
||
# 第一百一十五章 NotificationBadge组件
|
||
|
||
Tab消息:
|
||
|
||
```text
|
||
1~99
|
||
99+
|
||
```
|
||
|
||
系统通知:
|
||
|
||
可以只显示红点。
|
||
|
||
---
|
||
|
||
# 第一百一十六章 上传进度
|
||
|
||
照片上传必须有:
|
||
|
||
```text
|
||
上传中
|
||
失败
|
||
成功
|
||
```
|
||
|
||
上传失败:
|
||
|
||
显示:
|
||
|
||
> 重新上传。
|
||
|
||
不要让失败图片直接消失。
|
||
|
||
---
|
||
|
||
# 第一百一十七章 网络请求反馈
|
||
|
||
提交类操作:
|
||
|
||
Button Loading。
|
||
|
||
列表刷新:
|
||
|
||
Skeleton/局部Loading。
|
||
|
||
不使用:
|
||
|
||
> 点击后整个页面遮罩5秒。
|
||
|
||
---
|
||
|
||
# 第一百一十八章 防重复提交
|
||
|
||
以下操作必须前端防重复:
|
||
|
||
- 实名提交
|
||
- 资料提交审核
|
||
- 喜欢
|
||
- 活动报名
|
||
- 红娘申请
|
||
- 举报
|
||
- 反馈提交
|
||
|
||
同时后端也要保证幂等。
|
||
|
||
---
|
||
|
||
# 第一百一十九章 组件测试重点
|
||
|
||
每个组件必须验证:
|
||
|
||
- 普通状态
|
||
- 超长文字
|
||
- 无图片
|
||
- 弱网
|
||
- 禁用
|
||
- 加载
|
||
- 错误
|
||
- 不同屏幕宽度
|
||
|
||
---
|
||
|
||
# 第一百二十章 首批必须完成的组件
|
||
|
||
P0组件:
|
||
|
||
```text
|
||
Button
|
||
Input
|
||
Textarea
|
||
Picker
|
||
RadioGroup
|
||
TagSelect
|
||
Switch
|
||
RangeSlider
|
||
ProgressBar
|
||
|
||
StatusBadge
|
||
UserCard
|
||
RecommendCard
|
||
RecommendReason
|
||
ProfileSection
|
||
InfoRow
|
||
PhotoUploader
|
||
|
||
Toast
|
||
Dialog
|
||
BottomSheet
|
||
NoticeBar
|
||
EmptyState
|
||
ErrorState
|
||
Skeleton
|
||
|
||
BottomTabBar
|
||
Navbar
|
||
MobileStickyAction
|
||
```
|
||
|
||
---
|
||
|
||
# 第一百二十一章 第二批组件
|
||
|
||
P1:
|
||
|
||
```text
|
||
ActivityCard
|
||
MatchSuccess
|
||
ChatListItem
|
||
ChatBubble
|
||
RiskNotice
|
||
PhotoGrid
|
||
StepProgress
|
||
NotificationBadge
|
||
```
|
||
|
||
---
|
||
|
||
# 第一百二十二章 后台首批组件
|
||
|
||
```text
|
||
AdminSidebar
|
||
AdminHeader
|
||
PageHeader
|
||
StatCard
|
||
FilterBar
|
||
DataTable
|
||
TableRowAction
|
||
StatusBadge
|
||
ReviewStatus
|
||
RiskLevelTag
|
||
FormSection
|
||
Dialog
|
||
Drawer
|
||
Pagination
|
||
Alert
|
||
SensitiveField
|
||
```
|
||
|
||
---
|
||
|
||
# 第一百二十三章 组件验收标准
|
||
|
||
任何通用组件完成后必须回答:
|
||
|
||
### 能否在两个以上页面复用?
|
||
|
||
不能:
|
||
|
||
可能不应该进入公共组件库。
|
||
|
||
### 是否存在写死业务字段?
|
||
|
||
有:
|
||
|
||
需要重新抽象。
|
||
|
||
### 状态是否完整?
|
||
|
||
至少:
|
||
|
||
> 默认、加载、禁用、错误。
|
||
|
||
### 是否符合Token?
|
||
|
||
不能出现无规范颜色和间距。
|
||
|
||
---
|
||
|
||
# 第一百二十四章 Design Token验收标准
|
||
|
||
项目最终应达到:
|
||
|
||
> 修改一次主色,整个平台同步变化。
|
||
|
||
> 修改一次卡片圆角,所有卡片同步变化。
|
||
|
||
> 修改一次页面间距,所有标准页面遵循。
|
||
|
||
> 不需要人工逐页面搜索CSS修改。
|
||
|
||
---
|
||
|
||
# 第一百二十五章 最终开发原则
|
||
|
||
前端开发必须遵循:
|
||
|
||
> 页面由组件组成。
|
||
|
||
> 组件由Token控制。
|
||
|
||
> Token统一视觉。
|
||
|
||
> 业务逻辑不直接侵入基础组件。
|
||
|
||
最终目标不是做一套“漂亮页面”,而是建立一套:
|
||
|
||
> **可复用、可维护、可扩展、后期新增页面不容易跑偏的前端设计系统。**
|
||
|
||
V1.0所有页面都应尽可能从本规范中的组件组合产生,而不是每个页面重新设计一遍。 |