|
|
1e3d6ee20f
|
refactor(server): 收敛类型边界工具,aislop AI Slop 10 → 1
- 新增 common/buffer.ts bufferToArrayBuffer:9 处
'as unknown as ArrayBuffer' 收敛为精确切片(含 byteOffset),
消除潜在 Buffer 池偏移隐患,类型断言集中到单一实现
- 新增 common/stringify.ts:4 处重复的 stringify 助手收敛为共享实现
- aislop: AI Slop 10→1(仅剩 1 处有理由的 stringify 薄包装,
eslint no-base-to-string 绕过所需);Code Quality 剩余
4 重复块(声明式 SQL 配置)+ 2 文件过大(既有规模)均保留
- 测试 142 套件/1065 用例通过
|
2026-08-08 09:48:03 +08:00 |
|
|
|
a644a8de42
|
refactor(server): 清理全量 any 类型安全警告 (692 → 0)
- 全模块类型化:controller 的 req: any → AuthenticatedRequest/RequestUser,
聚合查询 getRawMany 泛型标注、导入行/响应体定义具体 interface、
catch (e: any) → unknown + 收窄、no-base-to-string 用 String() 显式转换
- 第三方无类型库边界(pdfkit/exceljs)文件级或单行 disable 并注明理由
- 顺带修复:get-business-context.tool 两个 require-await error、
bills.controller 参数顺序隐患、main.ts compression 调用
- 运行时逻辑零改动;测试 142 套件 / 1065 用例全部通过
|
2026-08-08 09:28:23 +08:00 |
|
|
|
fd39e1686a
|
feat: 重构各业务模块管理页面与服务
|
2026-08-05 17:12:00 +08:00 |
|
|
|
b1f35f9d1a
|
test: harden business boundary conditions
|
2026-07-15 00:03:55 +08:00 |
|
|
|
aa1ed7db56
|
refactor: resolve remaining field audit issues
|
2026-07-13 16:12:57 +08:00 |
|
|
|
0515e6ed27
|
fix(integration): simplify manual DingTalk sync setup
|
2026-07-13 16:12:22 +08:00 |
|
|
|
42d3f0e27f
|
feat: DingTalk attendance import + integration config + expense types + UI polish
Server:
- Add DingTalk attendance import service with SSE progress streaming
- Add IntegrationConfig entity & module for multi-tenant DingTalk setup
- Add ExpenseType entity & ExpenseTypesModule
- Add SeedModule for DB initialization
- Add UserDingMapping entity for DingTalk user linkage
- Attendance service: import flow with dedup & student auto-mapping
- Rooms service: time-range overlap queries
- Sync controller/service: DingTalk integration wiring
- Permission guard: refactor to pure re-export
- Campus scope middleware: tenant-aware filtering
Admin UI:
- Attendance page: import UI with progress & result summary
- All pages: tableStyle/tablePagination standardization
- Login page: responsive styling
- Sensitive data: useViewSensitive hook for masked viewing
- Vite config: path aliases, build optimization
- Test infra: vitest config, test utilities
Docs: PRD DingTalk batch 1 & 2 design docs
|
2026-07-09 09:11:56 +08:00 |
|