feat(*): 系统渠道与画布 - 支持多规格批量调价及 Agent 入口拖动

This commit is contained in:
ddCat
2026-09-20 11:18:19 +08:00
parent 9afe061d79
commit 8d94bde1f4
26 changed files with 1761 additions and 44 deletions

View File

@@ -5,10 +5,24 @@ description: 当前项目已实现功能的手工验证清单与未确认边界
# 待测试
## 画布 Agent 入口拖动
- [x] 右下角 Agent 图标支持鼠标和触屏拖动,使用指针捕获与 6px 阈值区分点击和拖动;拖动结束不打开面板,中断或失去捕获时结束手势,不传播到画布。
- [x] 位置作为独立本机 UI 偏好保存,重新打开画布或收起面板后恢复;限制在可视范围,窗口缩小时自动回位。方向键移动 10px,Shift + 方向键移动 40px,保留键盘点击打开。
- [x] 前端类型检查与 20 项专项/相邻测试通过,覆盖真实生产 hook 的点击、拖动、取消、丢失捕获、多指隔离、持久化和键盘/缩屏行为。
- [ ] 本地浏览器访问跳转登录,未完成登录后真实画布验收;需验证鼠标/触屏拖动不带动画布、不误开面板、刷新恢复,以及明暗主题和窄屏边缘显示。专项测试不替代浏览器验收。
## 系统模型同页渠道与模型管理
- [x] 规格列更新为成本价 / 销售价 / 利润率,按次、按秒、文本输入/输出/缓存和视频 Token 分别展示;缺失配置、零售价利润率显示 `—`,亏损显示负利润率。
- [x] 支持跨页多选最多 100 个模型统一调价。弹窗打开即展示模型,一行一个模型,列为模型展示名、渠道展示名(上游模型 ID)、规格、成本及售价输入框;多规格在模型行内纵向对齐,不拆成多个模型行,规格上游覆盖单独标注。
- [x] 调价弹窗模型价格列表进一步压缩行高:上下留白 6px、行内文字间距 2px,常规尺寸售价输入框与利润率同排,扩大售价列并保持规格对齐。弹窗居中固定高度 900px(不超过视窗高度减 48px),列表填充剩余空间并内部滚动,短屏允许内容区滚动;紧凑效果与滚动仍待真实页面视觉验收。
- [x] 目标利润率和 0–6 位小数(默认 2 位)实时重算,旁边增加「重新计算」按钮,按当前参数对所有规格精确四舍五入。重算覆盖手动值并明确提示;之后可逐项修改,提交最终输入售价。服务端强校验归属、成本、价格和模型/规格版本,事务保存,冲突整批回滚,不改成本或启停状态。
- [x] 前端类型检查、69 项专项及相邻回归测试通过,包含真实表格组件渲染、多规格单模型行、输入框最终值、精度和手动价重算。后端调价与相邻成本/删除测试通过,覆盖真实 HTTP 登录/管理员权限、整数/null/零售价、最终手工售价保存、过期版本拒绝及并发冲突事务回滚。验证使用内存 SQLite,未进行 PostgreSQL 或浏览器验收。
- [ ] 待登录后的真实页面验收:多选/跨页/切换渠道,修改比例/精度后实时计算,手动编辑后点击「重新计算」恢复所有规格价格,逐项编辑保存、成功刷新与错误保留;覆盖未配置成本、零成本、Token 多计费项、长名称、明暗主题、窄屏、表头与规格对齐及滚动。不操作现有环境真实价格数据。
- [x] 样式细化:渠道列表改为留白分组与中性选中描边,数量与启停状态分别呈现;模型头部说明成本口径,规格与成本分行,操作列固定在右侧,超过三个规格可展开查看。
- [x] “规格价格”改为“规格成本价”,仅读取管理员接口已有的 `priceTiers[].costPricing`,不再显示用户售价。支持按次、按秒、文本输入/输出/缓存 Token 和视频 Token;未配置成本明确提示,显式零成本正常显示,异常或缺失数值显示 `—`。不修改后端、计费或用户售价。
- [x] 规格成本读取管理员接口已有的 `priceTiers[].costPricing`,与销售价分开呈现;未配置成本明确提示,显式零成本正常显示,异常或缺失数值显示 `—`。
- [x] 本轮 49 项专项与相邻回归测试、前端类型检查通过;新增成本摘要真实组件渲染测试,覆盖成本/售价隔离、零成本、缺失/异常值、Token 单位、规格选择器与展开内容。样式细化仍需在登录后的真实页面检查明暗主题、长名称、多规格行高、横向滚动与固定操作列。
- [x] 系统渠道入口改为同页工作区:桌面左侧约 20% 展示渠道搜索、状态筛选、新增和排序,右侧约 80% 展示当前渠道信息与模型管理;移除模型管理的二级页面和返回入口,窄屏改为上下布局。
- [x] 保留渠道编辑、复制、启停、删除及模型拉取、选择导入、编辑、排序和批量删除。新增或复制后自动选中渠道;切换渠道时隔离模型列表、筛选、勾选和编辑状态,渠道与模型加载失败显示重试入口。服务端仍使用原分页接口,左栏分批读取全部渠道,避免默认仅展示前 20 个。