初始化项目版本

This commit is contained in:
Axhub Make
2026-07-29 16:04:39 +08:00
commit 4305a1082b
2629 changed files with 760590 additions and 0 deletions

View File

@@ -0,0 +1,128 @@
# OneOS V2 复杂台账列个性化设计说明
日期2026-07-26
状态:已完成产品需求与设计方案确认
## 1. 背景与目标
车辆资产页已经具备表格列宽调整、显示列选择和显示顺序调整能力,但 OneOS V2 设计规范尚未覆盖这些交互。本次将三项能力上升为所有复杂台账页面的通用规则,并以车辆资产页作为标准示例。
目标用户包括使用 OneOS V2 复杂台账的 PC/Web 用户,以及按规范设计、开发和验收台账页面的团队。用户的核心任务是根据当前工作内容调整列宽、选择显示列、排列列顺序,并在需要时恢复默认配置。
## 2. 范围
### 2.1 包含
- PC/Web 复杂台账表格的列宽拖拽调整。
- 可选业务列的显示与隐藏。
- 可选业务列的显示顺序调整。
- 单列宽度恢复和完整配置恢复默认。
- 按“用户 + 台账页面”保存和恢复配置。
- 鼠标、键盘和读屏操作规则。
- 配置加载、保存失败及表格字段变更时的兼容处理。
- 浅色和暗色主题下的状态表现。
### 2.2 不包含
- 不新增或改变车辆资产页的业务字段。
- 不改变复杂台账的筛选、分页、导入、导出或行内操作逻辑。
- H5 单列卡片列表不提供列宽、列显隐和列排序操作。
- 不跨台账复用列配置,也不在不同账号之间共享配置。
## 3. 规范组织
采用“分章主规则 + 总览摘要 + 交叉引用”的组织方式:
- `src/resources/design-system/DESIGN.md`:增加强制原则摘要,声明复杂台账必须提供列宽、列显隐、列排序和恢复默认能力。
- `src/resources/design-system/chapters/03-components.md`:承载完整组件与交互规则。
- `src/resources/design-system/chapters/06-accessibility.md`:承载焦点、键盘替代、读屏播报规则。
- `src/resources/design-system/chapters/02-layout.md`:说明 PC/Web 表格适用范围、H5 卡片排除规则及表格横向滚动关系。
- 车辆资产页作为标准实现示例被引用,本次不修改其业务功能。
## 4. 信息架构与组件关系
列个性化由两类入口组成:
1. 表头分隔线上的列宽调节把手,负责单列宽度调整和单列宽度恢复。
2. 台账工具栏中的“列设置”按钮,打开设置弹层,集中处理列显隐、列顺序和完整恢复默认。
列设置弹层包含标题、恢复默认入口、列项目列表、取消和确认操作。每个可选业务列包含显隐复选框、拖拽把手及键盘上移/下移操作;固定列显示固定标识和限制说明。
## 5. 列宽调整
- 表头分隔线提供约 `12px` 的可操作命中区。默认仅显示细分隔线,悬停、聚焦或拖动时用主题主色增强。
- 拖动过程实时预览列宽,鼠标释放时结束调整并触发保存。
- 普通业务列宽度限制为 `90480px`
- 首个核心识别列建议限制为 `120360px`;具体默认宽度由字段内容决定。
- 达到最小或最大边界后停止变化,不允许列宽无限缩小或撑宽。
- 双击调节把手只恢复当前列的默认宽度。
- 末尾操作列不提供调节把手,宽度由设计者依据操作组件规范固定。
- 表格容器仍遵守局部横向滚动规则,列宽个性化不得造成整页横向滚动。
## 6. 列显隐与列顺序
- “列设置”位于复杂台账工具栏,使用图标按钮并提供文字提示和无障碍名称。
- 设置弹层内,复选框控制列显隐,拖拽把手控制列顺序。
- 设置弹层中的修改先保存在临时状态;点击“确认”后一次应用并保存,点击“取消”不改变当前列表。
- “全选/全不选”只影响可选业务列,不影响固定列。
- 首个核心识别列必须显示、不可换序,但允许在规定范围内调宽。
- 末尾操作列必须显示、不可换序、不可调宽。
- 其他业务列可以显示或隐藏、调整顺序和调整列宽。
- 可选业务列只能在两端固定列之间排序,不能越过固定列。
## 7. 恢复默认
- 双击表头调节把手恢复当前列的默认宽度。
- 列设置弹层中的“恢复默认”同时恢复列宽、显隐和顺序。
- 完整恢复不使用危险确认弹窗。用户触发后先在弹层中预览默认布局,点击“确认”后应用并保存;点击“取消”保留原配置。
## 8. 保存、加载与兼容
- 保存范围为“用户 + 台账页面”,建议存储键包含 `userId + ledgerId + schemaVersion`
- 配置至少包含 `columnWidths``visibleColumns``columnOrder`
- 列宽在拖动结束后保存;列显隐和列顺序在弹层确认后保存。
- 保存过程不得阻塞台账浏览和操作。
- 再次进入同一台账时自动恢复该用户的配置。
- 初始化时先建立规范默认配置,再合并已保存配置,降低加载期间的布局跳动。
- 新增字段按设计者定义的默认显隐状态和默认位置插入。
- 已删除字段自动忽略,不能导致整份用户配置失效。
- 配置损坏、版本不兼容或加载失败时回退默认配置并轻提示,不阻塞台账数据加载。
- 保存失败时保留当前会话内的配置,并提示“当前设置暂未同步,下次进入可能恢复默认”。
- H5 卡片列表忽略 PC 列配置,但不得删除已经保存的 PC 配置。
## 9. 无障碍与键盘
- “列设置”按钮提供明确的 `aria-label`、展开状态和弹层关联。
- 打开弹层后焦点进入弹层,关闭后回到触发按钮;按 `Esc` 可关闭。
- 列宽调节把手可聚焦。方向键每次调整 `8px``Shift + 方向键` 每次调整 `24px``Home` 恢复当前列默认宽度。
- 读屏实时播报列名和当前宽度。
- 列排序除拖拽外,必须提供“上移/下移”按钮;到达边界或属于固定列时禁用并说明原因。
- 显隐复选框必须与列名关联。固定列控件禁用,并以文字说明不可隐藏。
- 拖动、排序、恢复默认、保存成功和保存失败均通过 `aria-live="polite"` 播报,不能只依赖颜色传达状态。
- 所有可聚焦控件使用主题 Focus Token视觉分隔线可以为 `23px`,但操作命中区不得随之缩小。
## 10. 视觉与主题
- 列宽把手、焦点、选中和拖拽目标状态全部消费 OneOS V2 主题 Token不使用硬编码品牌色。
- 浅色和暗色主题均需保持表头分隔线、焦点和拖拽状态的可辨识度。
- 固定列通过文字或图标加文字说明,不只使用灰色或禁用色表达限制。
- 列设置弹层沿用 OneOS V2 Web 浮层、复选框、按钮和间距规范,不新增独立视觉体系。
## 11. 验收标准
- 鼠标可在边界内实时调整所有允许调宽的列。
- 键盘可完成等价调宽,并能恢复单列默认宽度。
- 用户可显示或隐藏所有可选业务列。
- 用户可通过拖拽以及上移/下移按钮调整所有可选业务列顺序。
- 两类固定列始终遵守显示、换序和调宽限制。
- 取消设置不改变当前列表;确认后一次应用并保存。
- 双击把手只恢复当前列;“恢复默认”恢复列宽、显隐和顺序。
- 同一用户重新进入同一台账时恢复配置,不同用户或不同台账之间互不影响。
- 新增或删除字段后,历史配置仍可正常合并和使用。
- 配置加载或保存失败时台账仍可操作,并给出符合规范的轻提示。
- H5 卡片列表不出现任何列控制入口,且不会清除 PC 配置。
- 浅色、暗色主题以及键盘焦点、读屏播报均通过验收。
## 12. 标准示例
`src/prototypes/vehicle-management/components/ListView.tsx` 中的车辆资产台账作为交互参考,已经展示表头调宽把手、双击恢复、列设置入口、列显隐和列拖拽排序。规范落地时以本文确认的通用边界为准,尤其需要补足持久化、键盘替代、最大宽度和保存失败处理等通用要求。

View File

@@ -0,0 +1,113 @@
# OneOS V2 全局列表操作列调整设计
## 背景
车辆资产列表当前把全部行操作收进自建“更多”菜单,不符合 OneOS V2 使用公共 `OperationActions` 的要求。现行全局规范又将“查看详情”定义为低频浏览动作,默认收入“更多”,与本次确认的“双外置”方向不一致。
本次调整同时修正规范与车辆资产页:将“查看 / 详情”定义为稳定的首要入口,与常用工作流动作共同外置;低频管理、历史与危险操作保留在“更多”菜单。
## 目标与范围
### 目标用户
使用 OneOS V2 台账的运营人员、业务经办人和管理员。
### 核心任务
用户在扫描列表时,可以直接进入详情或执行最常用的工作流动作,不必先打开菜单。
### 本次范围
- 更新 OneOS V2 全局 `OperationActions` 规范。
- 同步公共组件说明、组件行为和相关设计系统引用。
- 将车辆资产列表迁移到公共 `OperationActions`
- 保留车辆资产页现有的查看详情、编辑和设置运维负责人能力。
### 不在范围内
- 不修改车辆资产的信息架构、筛选、列结构和详情页。
- 不新增业务权限或后端接口。
- 不批量迁移所有历史台账;全局规则用于后续迁移和新页面。
## 全局操作分级
操作列外置动作最多两个,固定按下列顺序显示:
1. 查看类入口:`查看``详情``查看详情`
2. 一个常用工作流动作:`编辑``处理``处置`
其余动作进入“更多”菜单:
- 低频管理:设置或修改负责人、转交等。
- 留痕与历史:查看记录、操作记录、历史日志等。
- 高风险操作:撤回、终止、删除等。
“查看记录”表示历史或留痕查询,继续视为低频动作;它不等同于进入当前业务对象的“查看详情”。
## 显示规则
```text
[查看/详情] [编辑/处理/处置] [⋮ 更多]
固定首位 最多一个 按需显示
```
- 只读台账仅外置“查看 / 详情”。
- 没有查看入口时,可外置最多两个常用工作流动作。
- 没有更多动作时,不显示省略号按钮。
- 没有任何可用操作时显示 `-`
- 权限过滤在布局分配前完成,避免空菜单或占位按钮。
- 操作列不换行PC 建议宽度为 `148184px`,按外置文案长度在页面级固定。
- H5 继续遵循 44×44px 最小触控热区。
## 车辆资产页落地
车辆资产列表每行使用:
- 外置一:`查看`,进入车辆详情页。
- 外置二:`编辑`,打开现有车辆编辑流程。
- 更多:`设置运维负责人`
操作顺序在所有行保持一致。无运维管理权限时,“更多”菜单不显示;若编辑权限也不可用,则只保留“查看”。
车辆页删除自建 `ActionsMoreMenu` 及其专属菜单皮肤,改用 `src/common/OperationActions.tsx``src/common/vm-operation-actions.css`。业务回调保持不变。
## 组件与文档同步
需要保持下列内容一致:
- `src/resources/design-system/DESIGN.md` §3.16
- `src/resources/design-system/chapters/03-components.md`
- `src/prototypes/vm-shared/DESIGN.md`
- `src/common/operation-actions-spec.md`
- `src/common/OperationActions.tsx`
- `src/common/vm-operation-actions.css`
公共组件应把详情类 `view` 动作放到外侧首位,把“查看记录 / 操作记录”等历史型动作分入更多菜单。`splitOperationActions` 需区分详情入口与历史记录,不能再把两者合并为同一低频类别。
## 交互与无障碍
- “更多”触发器使用 `MoreHorizontal` 图标,`aria-label="更多操作"`
- 菜单支持点击外部和 `Escape` 关闭,并沿用公共组件的键盘与焦点行为。
- 外置操作具有可见的悬停和键盘焦点状态。
- 冻结操作列中的菜单不得被表格行、滚动容器或相邻单元格遮挡。
- 危险操作需要保留公共组件的危险态表达,不与普通动作混排。
## 验收标准
- 全局主规范、章节规范、共享规范和公共组件说明不存在冲突表述。
- 公共组件默认按“查看在前、工作流动作在后、更多按需”渲染。
- 车辆资产页显示“查看、编辑、更多”,顺序和样式符合全局规范。
- 查看详情、编辑、设置运维负责人沿用原有业务行为。
- 权限受限时不显示未授权动作,也不出现空“更多”按钮。
- 操作列在桌面端不换行,菜单不被表格遮挡。
- 键盘可以聚焦并触发所有可见操作,`Escape` 可以关闭菜单。
- 相关自动化测试、类型检查和构建通过;通过浏览器检查桌面宽度及窄视口表现。
## 测试策略
- 为公共 `OperationActions` 补充或更新渲染顺序、只读状态、无更多动作和权限过滤测试。
-`splitOperationActions` 覆盖详情类与历史记录类的分类差异。
- 为车辆资产列表覆盖三个动作的存在性和回调触发。
- 运行项目现有测试、类型检查和构建。
- 在本地浏览器验证操作列宽度、冻结层级、菜单遮挡、悬停与键盘焦点。

View File

@@ -0,0 +1,49 @@
# 王冕数字分身 + 分身大脑 设计
- 日期2026-07-28初稿/ 2026-07-29双 Skill 落地)
- 状态:**已落地**
- 形态:两个个人 Cursor Skill
| Skill | 目录 | 中文名 |
|-------|------|--------|
| `wangmian-brain` | `~/.cursor/skills/wangmian-brain/` | 王冕的分身大脑 |
| `wangmian-twin` | `~/.cursor/skills/wangmian-twin/` | 王冕的数字分身 |
## 目标
本尊使用分身与大脑时按用户习惯UI/UX 审美、访谈与总结、工具、上下文)**自动产出需求**;业务真相来自 OneOS 知识库,不靠聊天流水账硬记。
## 决策摘要
| 项 | 选择 |
|----|------|
| 自动档位 | B 突击型 |
| 云效 | Y2本地完再问 |
| 触发 | T1 口令;分身内嵌可调大脑 |
| 称呼 | 我的本尊 |
| 分身口吻 | 产品日常;禁李云龙 |
| KB | `src/resources/oneos-knowledge-base/`(可回落 oneos-v2 绝对路径) |
## 文件
```text
wangmian-brain/
SKILL.md · retrieval.md · voice.md
wangmian-twin/
SKILL.md · persona.md · profile.md · habits.md · playbook.md
```
自我介绍:以 `profile.md` 为准(工作画像 + 话术模板)。
## 口令
- 大脑:`@王冕分身大脑` / `$wangmian-brain` / 「分身大脑」
- 分身:`@王冕分身` / `$wangmian-twin` / 「王冕的数字分身」
## 冒烟
新开对话(工作区建议 oneos-v2
1. `$wangmian-brain` 问一条业财门禁 → 应出大脑答复包
2. `$wangmian-twin` 扔一条小需求 → 应称「我的本尊」、引用大脑、无李云龙腔、末尾问云效