liuwenxin
013d6e7a74
docs(测试): 标注 T+ 前端 e2e 待补
...
按模块测试约定,T+ 页面验收节点应统一编写 Playwright 用例
并记录运行结果;当前仅有 type-check 验证,显式标注避免遗忘。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-30 09:58:27 +08:00
liuwenxin
0ca1734523
refactor(前端): 清理 T+ 页面展示细节
...
详情对话框:异常明细补充后端已支持的范围筛选,执行时间行
在批次未开始时隐藏(原先显示「— → —」);核验结果提示与
页首警告统一 show-icon;删除已声明未消费的 receipt_line_kinds
类型字段(方向信息已在 receipt_kinds 名称内)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-30 09:58:08 +08:00
liuwenxin
b0c599e513
fix(脚本): 收紧 T+ 运维脚本校验与恢复行为
...
login 脚本原先在结尾无条件 SET READ_ONLY:库名误指向其他
可写库时会把它锁成只读。改为开头校验库存在(不存在即中止)
并记录初始 Updateability,结尾仅当初始为 READ_ONLY 时恢复。
inventory 脚本的库名校验统一为 restore 脚本的字符白名单。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-30 09:57:30 +08:00
liuwenxin
2fda2d118b
refactor(脚本): 复用应用连接校验与 URL 转义
...
verify_staging 原先 setattr 改写全局 Settings 单例,绕过
_ConnectionFile 严格校验与 sa 账号拒绝;profile_source 手工
拼接 ODBC 连接串且仅转义密码,database/user 含分号时可注入
连接属性。两者统一改为 model_copy 副本 + resolve_tplus_settings
完整校验 + SQLAlchemy URL 自建引擎,与 check_compatibility
同一路径,顺带消除 pyodbc connect 上下文的提交语义隐患。
真实源库连接的功能验证待本机 T+ 环境执行。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-30 09:57:07 +08:00
liuwenxin
37eb51513f
fix(前端): 兼容非安全上下文的任务请求键生成
...
crypto.randomUUID 仅在 HTTPS 或 localhost 下存在,客户内网
以 http://<内网IP> 访问时该 API 为 undefined,而新建任务
对话框在页面挂载即调用,会直接 TypeError 导致整页白屏。
新增 newRequestKey 工具:优先 randomUUID,不可用时降级为
getRandomValues 拼 v4 格式(非安全上下文仍可用)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-30 09:56:41 +08:00
liuwenxin
ee801652e3
fix(运维): 限制 T+ 开发库端口仅本机访问
...
SQL Server 容器还原的是客户真实账套且带 sa 账号,1433 端口
原先绑定全部网卡会暴露到局域网。改为 127.0.0.1 回环地址,
与 MySQL 开发库的绑定先例保持一致,宿主机访问不受影响。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-30 09:56:13 +08:00
liuwenxin
8a171a572c
docs(tplus): 完成交付设计并统一客户确认表与同版本基准
2026-10-28 16:31:55 +08:00
liuwenxin
651341b36c
fix(tplus): 统一兼容检查连接策略并默认启用加密
2026-10-28 16:01:38 +08:00
liuwenxin
0d63359acb
docs(tplus): 导入设计补充字典交叉验证的字段核验备注
2026-10-28 14:41:50 +08:00
liuwenxin
ea41dadb64
docs(tplus): 修正验收手册只读表述并补 B5 预留参数
2026-10-28 13:11:15 +08:00
liuwenxin
8242aae454
docs(tplus): 新增 2008 R2 验收手册与数据导入设计稿
2026-10-28 11:52:39 +08:00
liuwenxin
87a0884953
docs(tplus): 更新客户口径文档与开发计划
2026-10-28 11:43:13 +08:00
liuwenxin
ea989ce9ad
feat(tplus): 新增 T+ 同步管理页面与菜单入口
2026-10-28 11:42:51 +08:00
liuwenxin
4fe5916c2c
feat(tplus): 新增 T+ 只读同步服务与同步管理
2026-10-28 11:42:15 +08:00
liuwenxin
78bef43c06
feat(tplus): 新增同步暂存与任务管理迁移和环境配置
2026-10-28 11:41:38 +08:00
liuwenxin
823d9f02ec
docs: 补充文案约定与侧栏层级说明
...
- backend/README 新增「面向业务人员的文案」约定:param_registry 的
description 是唯一显示源、枚举值在页面上必须翻译、报错要给下一步、
init-dev.sql 种子必须与 registry 同源、模板层禁止出现开发者语汇
- frontend/README 增补侧栏层级口径、最近动态独立分页端点,以及分页的
两个坑(v-loading 不要罩到分页条上、翻页失败必须退回实际显示页)
- backend/tests/README 记录本轮运行结果
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 16:23:14 +08:00
liuwenxin
678db0499d
fix(frontend): 分页失败回滚到实际显示页
...
records 只在请求成功时更新,而分页器高亮绑的是 pageNum,失败不回滚就会
出现「高亮第 1 页、列表是第 2 页的数据」的永久错位,用户来回点才恢复。
- 用 shownPageNum / shownPageSize 记录实际显示的页,失败时 restoreShownPage
退回该页
- 回滚本身也要防竞态:只有本次请求仍是最新请求(seq === requestSeq)才回滚,
否则连点时旧请求失败会把用户刚点出的新页码覆盖掉,表现为页码自己跳回去
- 页码与条数在 await 之前取快照,避免等待期间被别的点击改动后记错「显示的页」
对外接口不变(load / search / onPageChange / onSizeChange / reloadAfterDelete),
现有调用方无需改动。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 16:22:19 +08:00
liuwenxin
a00fca942d
refactor(frontend): 侧栏层级与表单页版式调整
...
侧栏层级口径改版(视觉稿 v4.2):组标题与菜单项同字号 13px,层级改由
「折叠箭头 + 组间留白 + 子项缩进」表达,不靠字号/字重压过父级。
- 去掉组标题的靛蓝竖标与激活项左侧 2px 竖条(竖条只能落在侧栏内边缘、
与白底悬空,是重复的第二个信号),激活只留白底浮起 + 靛蓝字
- 子项缩进 30px 收到 22px,图标父子统一 16px
- AppMenu 的 .app-menu 提供横向 10px 留白,BasicLayout 的 .app-aside__menu
只写上下内距——两处都用 padding 简写会同权重靠注入顺序决胜,横向留白
会被整条抹掉、条目贴到侧栏边缘
公司信息页字段自适应分列:卡片够宽时两字段并排,窄时折回单列;说明文字
紧贴控件下方,不再顶到卡片最右缘(宽屏下与输入框隔上千像素,视线关联断掉)。
设计稿同步升 v4.2。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 16:21:19 +08:00
liuwenxin
61965e0b60
feat(ui): 面向客户的文案中文化
...
系统由财务与营销人员日常使用,不是给开发者看的。本批把会渲染到页面上的
文本统一改成业务语言:
- param_registry 的 22 条参数说明重写为「管什么、钱怎么变、何时该调它」,
去掉英文枚举名、需求编号、内部阶段号与精度约束
- 前端补 formatByCode:变更记录、版本历史、快照对比只给裸 value_text,
需回目录按编码补 value_type 与 unit 才能翻译枚举,否则这些位置仍显示
INCLUDE/FULL/1;编辑弹窗 BOOL 改为开启/关闭下拉
- 后端错误文案:模板报错用中文模板名并给出下一步,产品类别不再甩
municipal_water / rail_transit
- 台账与预览落库的计提说明口语化(rate_note / strategy_note / 聚合行 note),
去掉「基数开关=1」「#12 参数化」「9.8 方案公式」
分数原文 11/1125 与「聚合:20%+5%」不动——那是金额口径的可复核原文,
不是说明文案。init-dev.sql 种子 description 与 registry 同源。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 16:20:05 +08:00
liuwenxin
111ac5425a
feat(customer): 客户列表展示等级徽标并统一等级不落库口径
...
评级计算器并入客户管理后,列表只有分数看不出档位,本批补上等级徽标:
- 抽出 utils/rating.ts 的 resolveGrade(按 sort_order 升序取首个
min_score ≤ 总分的等级,单边判定避免区间边界歧义),列表页与弹窗共用
- 等级映射按需拉取并缓存在内存,等级配置改动后回调父页重拉,避免
「同一分数在弹窗是 B、在列表是 C」的两处口径分歧
- 徽标色调按等级名首字母映射,自定义等级名落回中性灰(等级名可配置,
不能靠写死枚举判语义色)
- 悬浮提示给出等级区间与评级时间
同时订正三处与实现不符的注释:rate_customer 实际只写 rating_score 与
rating_time,等级由分数按当前映射实时推导,三处却写成「后端判定并固化等级
名快照」,v13 迁移 docstring 还引用了并不存在的 v14(d5b8f2a46c71)。
纯注释改动,无逻辑变更。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 16:18:47 +08:00
liuwenxin
61fe5cca98
feat(dashboard): 最近动态改服务端分页
...
工作台「最近动态」原为聚合端点内嵌、固定截断前 20 条,操作日志变长后
既撑大响应又只能看到头部。改为独立分页端点:
- GET /api/v1/dashboard/activities,支持 pageNum/pageSize/module 筛选
- 模块筛选项与列表同源返回(全量模块名,不随翻页变化),前端不必再取一次全量
- 聚合端点去掉内嵌 activities,避免同一份数据两处查询
前端改用 usePagedList + 统一 AppPagination(每页 10/20/50),模块筛选由
本地过滤改为服务端筛选。集成测试 13 例(含翻页不重不漏 / 模块筛选 / 越权 403)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 16:15:09 +08:00
liuwenxin
32b7940067
feat(customer): 客户评级并入客户管理并落库
...
- customers 表新增 rating_score/rating_time(V13 迁移 + V10 SQL + init-dev 同步)
- 新端点 PUT /customers/{id}/rating:评分是档案属性,只存总分与评级时间(五项明细不落库)
- 列表排序 order_by=rating_score,未评分客户升序/降序都垫底,id desc 兜底稳定分页
- 前端 RatingCalculatorDialog 并入客户管理(评分列 + 评级计算按钮),删除独立页与路由
- 测试:评级保存/越界/排序垫底 3 例,test_customers.py 18 passed;schema 同步 216 passed
2026-10-23 10:59:33 +08:00
liuwenxin
b9781f7d3f
docs(design): 视觉稿升 v4.1 并新增表单页章节
...
承接 10-23 浏览器实测验收,把三处实测偏差与新增的表单页口径写回设计稿(代码为视觉权威,稿为描述):
- §03 新增「表格 · 行高」卡:单元格行高定 1.5(组件库默认 23px 会把单行数据行撑到 51px)
- §05 工作台:卡片内空态改为在剩余高度内垂直居中
- §09 月结:生命周期条四段圆点改为按阶段着色(草稿中性 / 待审批琥珀 / 已审定靛蓝 / 已驳回砖红,与选中态解耦),并补条右侧操作提示
- §10 新增「表单页(公司信息)」:两列版式(左 1fr + 右 480px 实景预览,≤1200px 折单列)、控件与说明同行(≥1600px 说明靠卡片右缘右对齐)、实景预览按真实登录页 1:1 复刻、独立的「生效范围」卡
- 封面与文件头注释同步 v4.1 变更说明
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 10:24:41 +08:00
liuwenxin
8e8bcaa5fb
feat(frontend): 视觉规范 v4 全站落地与实测修复
...
token 补齐与 EP 形体基准、全站版式工具类(.page-head/.card 系/.filter-bar/.ys-pill 等)、布局与登录页、工作台 Bento 与图表主题、打印稿纸、全部业务页统一到全局类;StatusTag 改 pill、AppPagination 加 background。
浏览器实测修复:表格行高收到 1.5;月结生命周期条圆点按阶段着色并加操作提示;工作台空态垂直居中;状态/结果列宽按胶囊内容给足(96/108/120),消除 Element Plus 省略号伪『小点』。设计稿反向同步圆点着色与流程条提示。
2026-10-23 09:58:48 +08:00
liuwenxin
1f65913002
docs: 更新视觉方向预览页与部署组件需求说明
...
- 设计/视觉方向预览.html 同步当前视觉体系(品牌色、语义三色、菜单
图标),作为前端视觉落地的对照稿
- 部署组件需求说明.docx 精简冗余章节
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 19:47:19 +08:00
liuwenxin
e61800dcdc
feat(frontend): 菜单图标与视觉设计系统落地
...
- 引入 @element-plus/icons-vue 官方图标库,菜单项按模块配图标,消除
纯文字导航的辨识成本(新增依赖已评估:Element Plus 官方同源维护)
- AppMenu/BasicLayout/router 同步:图标渲染、菜单结构与路由 meta 对齐
- index.css 视觉系统化:品牌色、语义三色(ok/warn/danger 及其 wash 层次)、
形体与材质(圆角、缓动、阴影、等宽字体)统一为 CSS 变量,并覆盖
Element Plus 主色
- 登录页、业务页、结算页、工作台、审批页等视图随新变量适配
验证:pnpm type-check 与 pnpm build 均通过;后端接口契约未变。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 19:45:54 +08:00
liuwenxin
f88857e026
style(backend): ruff format 统一迁移脚本格式
...
存量迁移脚本未纳入格式化,与项目代码风格不一致(引号不统一、行宽未
收敛)。仅格式调整,无逻辑变更,不影响任何库的升级路径。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 19:44:29 +08:00
liuwenxin
5ece9f6dab
refactor(backend): 仓储层散参数收敛为查询 DTO
...
仓储层的 list_*/count_* 此前以 keyword/status/offset/limit 四五个散参数
传参,调用点重复铺开、易漏传且不可扩展;按项目「参数 >4 封装 DTO」的
约定统一收敛为各模块的 Query 对象(如 RoleQuery、BusinessQuery),
服务层与测试调用同步调整,行为不变。
- repositories 层查询方法签名改为 (session, query),分页与筛选条件
由 Query 承载,_apply_filters 同步收口
- schemas 层补齐各模块 Query 模型(approval/business_role/report 等)
- services 层调用点同步改为传 Query
- tests 随之调整;新增用例:待办角色流转(财务通过后领导出现待办)、
参数预览顺序稳定
验证:全量 pytest 900 passed(11:08);单元 526 passed;ruff check 绿。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 19:43:20 +08:00
liuwenxin
c48d24ab6d
merge: 合并 V12 审批版本号唯一键与 T+ 清单 v1.7 至 main
...
- V12:审批单 (order_type, ref_id, version_no) 唯一键 + 取号改锁读
- 审批详情展示快照采集时间
- T+ 对接清单升至 v1.7,清理过期版本文件;补充部署硬件需求
- 全量回归 897 passed
2026-10-22 13:42:25 +08:00
liuwenxin
d0726487e9
merge: 合并 main 至 docs/tplus-field-mapping(V12 审批版本号批次收口前同步)
2026-10-22 13:32:30 +08:00
liuwenxin
a84fe9b316
chore: 忽略嵌套目录下的 e2e 失败截图与临时文档目录
...
- `frontend/e2e/*.png` 改为 `frontend/e2e/**/*.png`:e2e 脚本按相对路径
写 failure.png,在不同 CWD 下会落到 frontend/e2e/e2e/
- 忽略 .tmpdocx/(AI 生成文档的脚本与预览截图)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 13:31:57 +08:00
liuwenxin
94e2957359
docs: T+ 清单升至 v1.7 并清理过期版本文件
...
- 新增 docs/T+对接数据需求清单_v1.7_2026-10-20.xlsx(v1.6 可读性改造
的进一步结构重构:结论总览首屏、业务列前置、技术列后置分区)
- 保留 v1.6 供对照;删除已被替代的 T+ 清单 2026-10-15/v1.4/v1.5、
待澄清问题清单 2026-10-15(两份)、待确认事项排序表 2026-10-16
(两份)与 2026-10-13 阶段报告(均有 10-19/10-20 后继文档)
- 新增部署硬件需求(txt 源文与 docx 说明)
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 13:31:57 +08:00
liuwenxin
ebc9595de2
feat(approval): 审批详情展示内容采集时间
...
- 快照单显示「内容采集时间(送审版本)」;live 单显示「打开详情时实时
读取(非送审版本)」,让复核者明确看到的是哪个时点的内容
- live 分支不展示 new Date() 生成的时刻:渲染函数里的时间非响应式,
且 toISOString 为 UTC 会差 8 小时
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 13:31:19 +08:00
liuwenxin
9964281c14
fix(approval): 版本号唯一键兜底 + 取号改当前读防并发重复
...
- V12 迁移:先重排存量重复 (order_type, ref_id) 分组的 version_no
(V11 把存量一律置 1,而 V11 前重提是新建行),再加
uk_approval_orders_order_type_ref_version;只重排真有重复的分组,
避免改动前端已展示过的历史版本号
- _next_version 改锁读(select version_no ... FOR UPDATE,最大值在
Python 侧算):请求级鉴权的普通 SELECT 已把 REPEATABLE READ 快照
锚定在请求开始时刻,原 MAX 快照读在并发下会算出同一版本号;
聚合 + FOR UPDATE 为 MySQL 明确禁止,故不锁聚合结果
- 编辑与月结提交路径把 1062 收敛为 400「提交冲突(版本号生成重复),
请重试」,其余完整性错误原样上抛;submit_order 内不 catch/rollback
- 驳回清空方案的过时注释改为 V11 起的 append-only 语义(置历史不删行)
- init-dev.sql 同步唯一键与 alembic_version 7f4f7b918bc4,导出 V12 SQL
- 测试:集成 +5(锁读 SQL 形态、两会话快照回归、唯一键 1062、冲突 400、
正常递增)+ 单元 +1;工作台假审批单改用不同 ref_id 适配唯一键
- 全量回归 897 passed;ruff 与前端 type-check 绿
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 13:31:01 +08:00
liuwenxin
694d21d1fd
test(e2e): 二次分配流程断言改为取实际方案并补审批内容校验
...
审批详情的送审内容断言不再硬编码参与人姓名(下拉取人员列表前两项,
未必是脚本刚建的 t_e2e 员):改为经业务详情接口取回实际保存的方案,
逐参与人断言姓名与比例出现在审批抽屉中。顺带修掉原脚本清理环节的
隐性缺陷——开关开启时业务有在途审批单,界面删除被拦截而脚本无断言,
数据从未真正清理;现脚本内显式关闭审批开关并保证结束还原为 1。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-21 14:25:39 +08:00
liuwenxin
4c32a556de
feat(approval): 审批单内容快照与二次分配方案版本化
...
补齐 code-review 遗留 2 项:审批单此前只固化 ref_id/refer_no 指针,复核者看到
的是业务当前内容;二次分配方案在编辑替换与驳回清空时一律物理删除,方案事实
无处回溯。
- 审批单加 version_no 与 snapshot_json(信封 schema_version/order_type/
captured_at/data);二次分配、月结、调整单三类提交均固化送审内容,开关关闭
的自动通过路径同样写快照;详情按 snapshot/live/missing 三态回显,历史单
只读回退当前内容并显式告警,不回填历史快照
- 二次分配方案行改 append-only 版本化(version_no/is_active,唯一键扩为
business+version+personnel):编辑替换与驳回清空只置历史,核算与详情默认
只取生效行,业务详情新增 allocation_history
- 送审内容未变不重提、方案未变不新增版本:判据统一为送审内容,两个
version_no 语义解耦(方案版本=内容第几版,审批单版本=第几次送审)
- 审批单列表、工作台待办、审批超时预警三处 defer 快照列,避免整列拉取
- 月结提交取行加 for_update,防并发提交算出重复的审批单版本号
- 修复审批类型筛选上界 le=2(调整单无法筛选)、快照金额把空值写成 0.00
- V11 迁移三件套同步(Alembic / db/migration / init-dev.sql)
测试:单元 +16(方案内容比较 10、审批入参 6)、集成 +12;全量 891 passed。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 18:30:51 +08:00
liuwenxin
4c10475228
merge: 合并 T+ 字段映射草案与清单 v1.5 至 main
2026-10-20 10:57:09 +08:00
liuwenxin
2e0c64849b
docs(tplus): 收敛 IT 待确认事项并更新催办清单
...
原 18 项收敛为 13 项 IT 待确认 + 1 组业务裁决,每项附字典候选字段与来源;同步更新待确认汇总第三节与文档待办。字段级证据见映射草案 v0.1。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 10:56:07 +08:00
liuwenxin
33b9b00bb0
docs(tplus): 新增 T+12.3 六类字段映射草案与需求清单 v1.5
...
全量解析 T+12.3 数据字典(1,457 页 / 931 表 / 21,019 字段,0 失败),按 v1.4 的 75 项逐项回填 T+ 候选字段、类型、枚举与系统目标列;必须项候选覆盖率 91.4%。v1.5 补齐 IT 收敛表(13 项 + 1 组业务裁决)与不覆盖字段 12 条,并修复 v1.4 单 sheet 与 21 项/#20 笔误。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 10:55:57 +08:00
liuwenxin
d03ddadd1a
merge: 合并 M4 阶段报告至 main
2026-10-20 10:19:22 +08:00
liuwenxin
c319a6a428
docs: M4 阶段报告(2026-10-20)
...
汇总报表统计与工作台交付范围、关键口径、测试证据与遗留事项。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 10:19:15 +08:00
liuwenxin
36114745db
merge: 合并 M4 工作台与报表修复至 main
2026-10-20 10:18:40 +08:00
liuwenxin
b86eaf2b00
docs: 记录 2026-10-20 全量回归与 e2e 实跑结果
...
全量 862 passed(11:32);e2e role_home 4/4、report_flow 12/12(按业务编号下钻断言)、calc_settlement 8/8;审批开关已还原、无测试账号残留。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 10:10:32 +08:00
liuwenxin
71df9a16ed
docs: 修复催办清单行首井号被误判为标题
...
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 10:05:28 +08:00
liuwenxin
980628bb8f
test(e2e): 回款统计改按本次业务编号下钻断言
...
历史 e2e 数据会累计到同一回款区间桶,断言桶聚合值在重复运行时必然失败;改为展开目标桶后按本次业务编号定位下钻行并校验金额,脚本可无副作用重跑。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 10:04:42 +08:00
liuwenxin
c8131588bf
chore: 忽略 T+12.3 数据字典参考资料
...
- docs/**/*.rar、docs/T_12.3数据字典/ 与 __MACOSX/ 不入版本库
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 09:47:41 +08:00
liuwenxin
b6d84033ce
docs(plan): 回填里程碑完成状态与开放问题结论
...
- 开发计划:M3/M4 ⑤⑧/⑦⑨ 标记完成,依赖图与里程碑状态同步
- 开放问题表补 2026-10-20 结论映射;补充需求已随 SRS V2.1 回填
- 待确认事项汇总与催办清单同步当前状态
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 09:47:41 +08:00
liuwenxin
698df6d31a
docs: 同步报表与工作台口径及测试记录
...
- backend/README:全公司 5% 每位有聚合行经理各计一次并与月结对拍、
待办按角色过滤、预警排除终止业务与 total 计数、趋势范围查询
- backend/tests/README:新增修复回归与 e2e 全链路运行记录、缺陷表
- frontend/README:普通用户落地页规则、预警徽标、e2e 实跑结果
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 09:47:03 +08:00
liuwenxin
39a3fa7796
fix(dashboard): 修复普通用户落地页与待办角色过滤
...
- 新增 router/access.ts 统一准入与落地页(工作台→业务数据→回款),
守卫/登录回跳/菜单/面包屑复用;普通用户不再被无限重定向
- 待办按角色映射在途审批节点(财务/领导/admin),admin 不代办但可查全部
- 预警排除已终止业务;WarningBlock.total 为全量命中数;回款趋势改日期范围
- 工作台加载请求序号防竞态;KPI 口径说明补经理分成/调整单
- 新增 role_home_flow e2e,更新 system_management 普通用户断言
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 09:45:03 +08:00
liuwenxin
ebb3a92f25
fix(report): 报表统计修复批次——对账口径、导出审计与月份校验
...
- 部门汇总全公司 5% 按每位有台账聚合行的营销经理各计一次,
团队应发小计取聚合额 + 调整净额;与月结 total_payable 对拍
(有调整单时 + adjust_net_total),分列舍入差单列
- 人员归属按行类型拆分(普通/经理个人户/仅调整单),调整单全量并入,
团队与未分配不重复;按经理筛选只汇总展示团队
- 导出改单 sheet 分块签字稿,审计覆盖取数与超限;筛选页眉 ID→名称
- 月份校验抽 core/month,报表/月结/调整单非法月份统一 400;
岗位只读选项供财务/领导筛选
- 前端修复:部门下钻带入筛选、回款多桶独立状态、打印截断判定、
summary 请求序号保护
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 09:44:43 +08:00