Files
one_divine_lot/docs/05-需求池/R-025.md
T

40 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 需求:R-025 设置页 Tab 设置排序落点统一为间隙高亮线 · 已定稿
> 登记:2026-09-10 | 来源:老师指令(迭代 20 复盘遗留第 2 项确认)| 状态:**已定稿(2026-09-10 老师指令)**
> 归属:迭代 21-Tab设置排序间隙高亮统一 | 实现状态:未开始
## 诉求(老师,2026-09-10
> 神之一手设置页的分组 tab 排序(Tab 设置),也改一下上面(列设置弹层)的拖动高亮显示形式。
## 背景
- R-024/迭代 20 列设置弹层拖拽落点已从整行高亮改为**行间间隙高亮线**(UI约束-007),老师确认「直观多了」;
- 复盘遗留第 2 项:设置页「Tab 设置」的排序仍是整行高亮(overId → 行淡蓝底,UI约束-003),存在同样的
「无法判断插入前/后」观感问题;老师指令统一为间隙线形式。
## 定稿结论(2026-09-10 老师指令)
设置页「Tab 设置」排序落点从整行高亮改为**行间间隙高亮线**(复用 UI约束-007 / R-024 已验证模式):
- 拖动悬停时按鼠标在目标行内的 Y 坐标(上半/下半)判定,间隙线画在目标行上缘(插其前)/下缘(插其后);
- drop 事件内按坐标重算插入位置(不依赖 state 闭包);拖回原位置(to===from 或 to===from+1)跳过写库;
- 保留 onDragEnd 清理残留;整行高亮背景(color-mix 12%)移除;
- 其余维持不变:≡ 手柄、显隐开关、落点立即持久化(tabs/update)、「刷新页面后生效」提示、内置/策略徽标、
saving 期间禁用拖拽。
## 决策记录
| 项 | 结论 | 讨论 |
|---|---|---|
| 范围 | 仅 Tab 设置(SettingsSection.jsx TabSettings)落点指示 | 老师指令;不动表格结构、不动持久化、不动开关 |
| 落点形式 | 行间间隙高亮线(上缘=前/下缘=后) | 与 R-024 弹层全同,UI约束-007 已定义 |
| 判定 | 目标行内 Y 坐标上下半区 | 与 R-024 全同 |
| 无操作 | to===from 或 to===from+1 跳过写库 | 复用 R-024 数学式 |
| 服务端/API | 零改动 | tabs/update 整表语义不变 |
| 约束更新 | UI约束-003 变更:落点从整行高亮改间隙线;UI约束-007 补「Tab 设置已统一」 | 2026-09-10 老师指令 |
## 关联
- 上游:UI约束-007(排序交互间隙线标准)、R-024(同款模式实证)、迭代 20 复盘遗留第 2 项;
- 迭代 20 复盘遗留第 1 项(test-r013-columns 期望过期)不在本需求范围。