Commit Graph

100 Commits

Author SHA1 Message Date
freedakgmail c355a7d208 feat: 20260805 系统优化 - 身份证复制fallback/薪税日期筛选/社保版本修复/证据链导出/违纪证明/医疗期政策/绩效类型评级/合同作废/帮助更新 2026-08-05 20:26:16 +08:00
freedakgmail a5901d648e fix: 近期更新补充全部已完成项(离职校验/补偿金调整/退休提醒/休假审批入口/员工端辞职申请) 2026-08-05 08:59:16 +08:00
freedakgmail 9a960d8274 fix: 近期更新补充昨天完成的6项改动(身份证搜索/企业名称/表单中文/工作台Tab/电子签场景/通知设置) 2026-08-05 08:51:58 +08:00
freedakgmail 05b171b4e9 feat: 使用帮助新增'近期更新'分类,列出培训/绩效/违纪列表页、员工端签收、电子签扩展等更新说明 2026-08-05 08:48:27 +08:00
freedakgmail ddc51b33fd feat: 电子签署设置新增培训/绩效/违纪3个开关,改为两列卡片布局 2026-08-05 08:44:11 +08:00
freedakgmail 3afb383172 feat: 培训/绩效/违纪员工端签收+管理端签字状态只读化
- 后端: portal新增培训/绩效/违纪列表查看+签收接口,签收时创建证据链
- 管理端: 弹窗去掉HR手动签字勾选,改为只读显示签字状态
- 绩效列表新增签字状态列
- 员工端: 新增MyRecords页面,支持培训签收/拒绝、绩效签字、违纪签字
- 员工端导航新增'我的记录'入口
- EvidenceCategory新增TRAINING/PERFORMANCE类型
2026-08-05 08:39:04 +08:00
freedakgmail 15dde27701 fix: 培训/绩效/违纪列表页CRUD改用api实例(修复401鉴权失败) 2026-08-05 08:28:51 +08:00
freedakgmail b239465e78 feat: 培训记录/绩效考核/违纪记录独立列表页+菜单入口
- 后端: 新增3个组织级列表接口 (training/performance/disciplinary /list)
- 前端: 新增3个列表页面,支持搜索、分页、新增/编辑/删除弹窗
- 侧边栏: 团队分组新增培训记录、绩效考核、违纪记录入口
- 路由+面包屑注册
- 社公商保改名为社保公积金
2026-08-05 08:21:53 +08:00
freedakgmail 539e384ee1 fix: 发薪日缺省5号+通知设置去掉重复发薪日字段 2026-08-05 08:08:18 +08:00
freedakgmail 6ec939dc7f feat: 发薪日期多选+提前N天提醒+电子签设置区域修复
- Schema: 去掉 payrollFrequency,新增 payrollDays (JSON数组) + payrollReminderDays (Int)
- 设置页: 发薪日期改为1-28号多选按钮,新增提前提醒天数设置
- 设置页: 恢复电子签署设置区域(3个开关:规章制度/工资条/入职文件)
- 工作日历: 发薪日期作为 PAYROLL_DAY 事件显示
- 工作台: 提前N天提醒发薪日期,N可配置
- TaskCenter: 新增发薪提醒分类图标
- seed文件: 更新为 payrollDays 格式
2026-08-05 08:04:39 +08:00
freedakgmail 41b3030442 refactor: 设置页面调整-退休提醒独立tab+显示设置并入企业信息
- 退休提醒从企业信息中拆分为独立tab(RetirementSettings 独立 Card 组件)
- 显示设置从独立tab移入企业信息卡片底部(移除 DisplaySettings 组件)
- tab顺序:企业信息、用户管理、套餐、通知设置、退休提醒、数据导入、数据导出
2026-08-05 07:53:53 +08:00
freedakgmail 9512b555ee feat: 电子签全场景集成+场景筛选+设置开关
- ESignRecord 模型新增 scene 字段(CONTRACT/RESIGNATION/POLICY/PAYSLIP/ONBOARDING)
- Organization 模型新增3个电子签开关:esignPolicyEnabled/esignPayslipEnabled/esignOnboardingEnabled
- 设置页面企业信息新增电子签署设置区域,3个开关各自独立,缺省关闭
- 规章制度签收:开启电子签后,员工阅读确认时自动创建POLICY场景签署记录
- 工资条确认:开启电子签后,员工确认工资条时自动创建PAYSLIP场景签署记录
- 入职文件签署:开启电子签后,HR审批通过入职流程时自动创建ONBOARDING场景签署记录
- 电子签署列表增加场景筛选下拉(全部场景/劳动合同/离职协议/规章制度/工资条/入职文件)
- 管理端和员工端列表均展示场景标签(基于scene字段,替代硬编码判断)
- 合同和离职流程的esign调用已加scene参数
2026-08-05 07:47:00 +08:00
freedakgmail e8cd0f472b feat: 电子签署导航调整+员工手机端电子签署功能
- 管理端导航:电子签署移到首页分组(工作日历下)
- 员工端新增电子签署页面(MyEsign.tsx):
  - 查看自己的签署记录列表,支持待签/已签/已取消状态
  - 查看签署详情,含文件内容、关联合同标识
  - 确认签署操作(框架阶段,对接易签宝后跳转签署页面)
- 员工端导航(PortalNav)增加电子签署入口
- 员工首页(EmployeeHome)增加电子签署快捷入口
- 员工首页待办事项增加待签署文件提醒
- 后端portal路由新增3个接口:GET /esign、GET /esign/:id、POST /esign/:id/sign
2026-08-05 07:39:11 +08:00
freedakgmail b9240ffe9b feat: 电子签署集成到合同管理和离职流程
- 合同管理:选择电子签署时保存后自动创建ESignRecord并关联合同ID
- 离职管理:工作交接清单「离职文件签署」步骤增加「发起电子签署」按钮
- 电子签署页面:列表增加来源标识(劳动合同/离职协议)
- 合同卡片:电子签署合同显示提示而非手动填写编号/链接
2026-08-05 07:34:01 +08:00
freedakgmail cce0c936bd refactor: 侧边栏「特殊状态」改名为「特殊员工」 2026-08-05 07:29:39 +08:00
freedakgmail b576a48ff1 refactor: 调整侧边栏分组顺序,电子签署移至团队分组
- 电子签署从「福利保障」移到「团队」分组(与合同管理、用工办理同属员工生命周期)
- 「时间」分组移到「薪酬」之前
- 导航顺序:首页 → 团队 → 时间 → 薪酬 → 福利保障 → 合规
2026-08-05 07:27:41 +08:00
freedakgmail 13c9192b0a feat: 商业保险新增员工汇总Tab
- 后端新增 /commercial-insurance/employee-summary 接口,按员工维度汇总商险
- 前端商业保险页面新增Tab切换:方案管理 + 员工汇总
- 员工汇总展示每人参保项、年保费合计、保额合计,底部带总计行
2026-08-05 07:25:14 +08:00
freedakgmail c328172e7d feat: 商业保险/员工福利独立页面+易签宝电子签署框架
- 商业保险:从社公商保中拆出为独立页面,侧边栏新增「福利保障」分组
- 员工福利:新建完整模块(方案管理+批量参保+员工汇总),Prisma模型+后端路由+前端页面
- 电子签署:搭建易签宝对接框架(ESignRecord模型+创建/查询/取消/回调接口+前端签署管理页面)
- 侧边栏新增「福利保障」分组:商业保险、员工福利、电子签署
- Prisma schema 新增6个模型:CommercialInsurancePlan/Enrollment, EmployeeBenefitPlan/Enrollment, ESignRecord
2026-08-04 23:08:49 +08:00
freedakgmail 5604d02de9 feat: 完成23项系统优化 - 花名册社保状态列/身份证复制/附件类型扩展, 用工办理姓名检索/直接提交/文书查看/批量证明, 风险中心跳转筛选+批量处理, 日历7/15/35天分组+逾期统计, 考勤单条编辑+按人导出, 工资条查看状态+工资流水导出, 辞职申请附件上传, 交接清单PDF下载, 操作完成下一步引导, 休假审批入口, 人效成本分部门 2026-08-04 22:55:03 +08:00
selfrelease 338af5eee9 fix: 花名册身份证搜索bug修复 + Header企业名称 + 优化文档更新
- 修复Roster.tsx前端二次过滤清空身份证搜索结果的问题
- TopNav增加企业名称显示(复用settingsApi.org())
- 新增docs/20260804-优化.md(23项反馈全面审查)
- 更新20260803-优化.md状态(问题5已完成)
2026-08-04 18:56:07 +08:00
freedakgmail 2968484d2d 优化: 大文件拆分+代码分割+按需加载+console清理+any类型替换
- Money.tsx (2260行→54行): 拆分为 money/ 子目录4个组件, React.lazy二级分割
- AIAssistant.tsx (2038行→63行): 拆分为 ai-assistant/ 子目录6个组件, React.lazy二级分割
- xlsx改为动态导入, OvertimeTab从345KB降至12.7KB
- api-services.ts: 请求参数 any→Record<string,unknown>
- 移除前端3处console.log残留
- 后端console替换为pino logger
- 前后端未使用import/变量清理
- Zod schema验证: termination/platform/special-status/work-process
- 新增 leave.routes.ts, acceptance-test.routes.ts
- UI组件: PageGuide, QueryError, Stepper
2026-08-04 07:53:37 +08:00
selfrelease 68ebe6a4ff feat: 新增验收测试清单(199项24域)替代功能调查问卷; 修复工作台评分环文字重叠
- 新增 acceptance-test.html 交互式验收测试页面(验收人姓名/自动补全/自动统计/CSV+Excel下载)
- 新增 AcceptanceTestModal 组件, TopNav 中用验收测试弹窗替代 SurveyModal
- Settings 页问卷导出替换为验收测试结果导出(支持多验收人汇总MD)
- 修复 Dashboard 合规健康度评分环文字重叠: 圆环增大至w-32, 加overflow-hidden+truncate
2026-08-02 09:22:51 +08:00
selfrelease b0942f3e61 fix: Dashboard complianceScore 字段名不匹配及缺少可选链保护
- complianceScore.overallScore → fallback to totalScore
- complianceScore.levelLabel → fallback to summary
- complianceScore.suggestions 加可选链守卫
- data.todos 加可选链守卫
- data.topRisks 加空数组兜底
2026-08-01 16:27:03 +08:00
selfrelease a252d72e68 refactor: 消除所有 api-services-raw 残留调用,API 口径完全统一
- dashboardApi 新增 resolveTodo/ignoreTodo/batchResolveTodos/batchIgnoreTodos
- notificationsApi 新增 checkContracts/test
- settingsApi 新增 confirmRetirementPolicy
- socialInsuranceApi 新增 monthlyChanges/housingMonthlyChanges/housingActiveDeclaration
- Dashboard.tsx 替换 4 处 apiPatch
- Settings.tsx 替换 4 处 apiPost
- Notifications.tsx 替换 1 处 apiPost
- SocialInsurance.tsx 替换 4 处 apiGet
- AIAssistant.tsx 移除未使用的 apiPost 导入
- 所有页面零 api-services-raw 依赖
2026-08-01 16:20:28 +08:00
selfrelease 16f22e6622 refactor: 全量迁移前端 API 调用到统一 api-services 服务层
- 新建 api-services-raw.ts 导出原始 axios 方法供特殊端点使用
- 完成 api-services.ts 全领域覆盖(auth/employee/roster/dashboard/attendance/payroll/socialInsurance/commercialInsurance/termination/policies/evidence/audit/calendar/companyFiles/notifications/settings/ai/platform/portal/survey/search)
- 迁移所有 47+ 页面文件:pages/、pages/roster/、pages/portal/、pages/platform/、pages/auth/、pages/dashboard/、pages/compliance/
- 移除所有直接 import api from '../../lib/api' 引用
- 修复 Termination.tsx / WorkProcess.tsx 中 string|null 类型错误
- 修复 SocialInsurance.tsx 中 api-services-raw delete 导入名
- 修复 PlatformLogin.tsx 变量遮蔽问题
- tsc --noEmit 零错误,vite build 成功
2026-08-01 16:13:19 +08:00
selfrelease fb924dea98 refactor: API口径统一 — 统计函数/员工列表/前端服务层
后端:
- /dashboard/compliance-score 改用 getHealthCheck,与体检诊断同口径
- 新增 /employees/list 端点(不分页,供各页面下拉选择)
- /employees/all-lite 增加 position 字段和 status 筛选参数
- getHealthCheck 未签合同改为查无合同记录的员工(非UNSIGNED类型)

前端:
- 新建 lib/api-services.ts 统一 API 服务层
- employeeApi/rosterApi/dashboardApi/attendanceApi 统一封装
- 6个页面迁移到统一 API 调用:
  - Attendance: employeeApi.list + rosterApi.departments
  - Termination: rosterApi.list + rosterApi.departments
  - Money: rosterApi.list + rosterApi.departments
  - PortalQRModal: employeeApi.list
  - AIAssistant: 3处 employeeApi.list 替代 /roster?pageSize=999
  - Contracts: rosterApi.departments
  - Dashboard: rosterApi.expiringContracts + dashboardApi.healthCheck/workforceStats
2026-08-01 15:29:13 +08:00
selfrelease 31a25a7320 fix: 花名册合同风险统计与风险中心不一致
花名册快捷筛选标签基于当前页数据统计,改为后端返回全局RiskItem统计
- 后端roster API返回globalRiskStats(expiring/expired/unsigned)
- 前端优先使用全局统计,fallback到当前页统计
2026-08-01 14:41:45 +08:00
selfrelease e8690d4fbb fix: 日历月份切换在UTC+8时区跳两个月
toISOString() 使用UTC时间,在UTC+8时区下 new Date(y,m-2,1) 会回退到前一天导致月份-1。
改用本地时间格式化函数 fmtMonth/fmtDate 替代所有 toISOString().slice() 调用。
2026-08-01 14:33:54 +08:00
selfrelease 8faf0d4365 fix: 工作台tab数量不一致(20≠15+4)
riskTodos 缺少 RETIREMENT 类型,导致退休风险待办不计入风险提醒tab
2026-08-01 14:29:20 +08:00
selfrelease 4aa13d11c5 fix: 风险中心页面无数据
- 后端缺少 /compliance/risks 路由,新增 /dashboard/risks 端点返回PENDING风险项
- 前端API调用从 /compliance/risks 改为 /dashboard/risks
- RISK_TYPES 配置key从虚构子类型改为实际Prisma RiskType枚举值
- 风险列表字段映射修正: r.message→r.title, r.employeeName→r.employee.name
2026-08-01 14:14:47 +08:00
selfrelease 8892a244eb fix: 任务中心待办事项查看全部跳转到风险中心 2026-08-01 13:58:48 +08:00
selfrelease f1a02f0439 feat: TurboHR 14项优化与功能增强
- #1 Dashboard风险提醒增加立刻办理按钮
- #2 Calendar月份选择器改为input month
- #3 Termination增加7种解聘原因法律依据和操作步骤
- #5 合同审查支持PDF TXT格式
- #6 AI合同审查prompt优化为具体修改建议
- #7 知识库添加更新机制说明
- #9 SpecialStatus员工选择改用all-lite接口
- #10 Termination增加详细法律条款引用
- #11 Money发薪批次增加社保公积金合计列
- #12 EmployeeAttachment扩展文件类型
- #13 花名册增加女职工干部工人选项加退休提醒
- #14 新增公司备用文件上传模块
2026-08-01 13:47:49 +08:00
selfrelease 8e61c16f36 fix: 修复待办跳转定位错误员工 — 等待debouncedSearch匹配后才打开详情,避免旧数据误选 2026-08-01 08:19:30 +08:00
selfrelease 88e027bcda fix: 待办跳转修复 — 1)actionUrl从/contracts改为/roster(无此路由) 2)Roster页面读取employee参数自动搜索并打开员工详情 3)更新数据库281条已有riskItem的actionUrl 2026-08-01 08:15:52 +08:00
selfrelease d64f9c41a6 fix: 修复首页数据不一致 — 1)风险分布用去重数据 2)无工资数据时不估算社保 3)TaskCenter显示全部待办不再截取10条 4)修复dedupedTodos引用顺序 2026-08-01 07:53:30 +08:00
selfrelease 26147fa990 fix: 修复 portal 页面 top-level await 导致生产构建失败 2026-08-01 07:19:39 +08:00
selfrelease 6b0fee64d5 fix: 修复 ResignationApply records.some 错误 + prisma db push 同步 employeeNo/position/confirmedBy 字段 2026-08-01 07:02:44 +08:00
selfrelease a88c96299c Sprint 4-5: 员工自助+考勤+合规+AI+搜索 2026-08-01 06:45:59 +08:00
selfrelease 9946197d20 Sprint 3: 员工目录优化 + Profile Shell + 离职工作流重构 + 合同类型扩充 + 月度社保重构 + 商险管理Tab
S3-1: Roster.tsx 添加 InlineAlert 合同风险提示 + 快捷筛选标签
S3-2: 新建 EmployeeProfileShell.tsx 统一员工详情布局,重构 EmployeeProfile.tsx
S3-3: Termination.tsx 集成 Stepper 步骤条 + InlineAlert 风险提示
S3-4: schema.prisma ContractType 枚举扩充 DISPATCH/OUTSOURCING/PARTTIME + 后端接口 + 前端选择器
S3-5: SocialInsurance.tsx 月度办理 Tab 使用 InlineAlert 替换原始提示
S3-6: SocialInsurance.tsx 新增商险管理 Tab(方案CRUD + 参保人员列表)
2026-07-31 18:07:49 +08:00
selfrelease 55b6867c9c feat: Sprint 2 — Stepper/InlineAlert组件 + 首页TaskCenter任务中心 + /workspace/next-actions API + Money.tsx BatchDetail集成工作流步骤条和质量门禁 2026-07-31 17:52:02 +08:00
selfrelease e7dfe3c380 fix: 修复 Tailwind CSS border 类名冲突(border-border-default 改为直接颜色值) 2026-07-31 17:43:50 +08:00
selfrelease 821a62e3f8 feat: Sprint 1 — 设计Token系统 + 新导航5分组 + AppShell/PageHeader/FilterBar/DataTable组件 + 花名册导出扩充19字段 + 社保/公积金不缴纳选项 + 个税申报表导出 + 入离职/绩效统计看板 2026-07-31 17:40:49 +08:00
selfrelease c15e11ec22 fix: 人力成本分析按员工去重,统一与Dashboard口径;环比/同比无数据时显示暂无数据 2026-07-31 14:24:37 +08:00
selfrelease ebebe1814f ui: 移除Dashboard紧急风险横幅和待处理风险快捷入口,tab已包含全部风险 2026-07-31 11:41:49 +08:00
selfrelease c184670775 fix: 修复风险扫描去重key不匹配导致大量重复数据,Dashboard风险提醒按员工聚合 2026-07-31 11:26:03 +08:00
selfrelease 64f4f3e86a feat: Dashboard工作台增加待处理风险快捷入口卡片 2026-07-31 11:10:59 +08:00
selfrelease abbba82f25 feat: 员工规避损失明细添加规避方式列 2026-07-31 10:41:22 +08:00
selfrelease 8014c9a139 feat: 移除ROI,新增待处理风险列表
- 移除ROI横幅和说明,改为年度总价值概览
- 后端新增 pendingRisks 查询,返回PENDING状态风险
- 前端新增待处理风险表格,按员工去重展示
- summary 改为包含待处理风险数量
2026-07-31 10:04:04 +08:00
selfrelease c7f270e8df fix: 移除规避率30%打折,已解决风险直接用预估损失作为规避价值
- 后端移除 RISK_AVOIDANCE_RATE,adjustedLossAvoided = lossAvoided
- 前端移除规避率列和30%说明,表格直接展示预估损失=规避损失
- 价值计算说明更新:系统已发现并解决,全部潜在损失即为规避价值
2026-07-31 09:29:51 +08:00
selfrelease a77a37a32e feat: 年度价值报告增加员工维度规避损失明细
- 后端按员工汇总已解决风险明细,含风险标题、法律依据、预估损失
- 前端新增员工规避损失明细表格,展示每员工的原始损失、规避率(30%)、打折后损失
- 表格含合计行,与总价值计算逻辑一致
- 修复RISK_AVOIDANCE_RATE重复声明
2026-07-30 19:30:23 +08:00