feat: 员工端新增个人资料页面,数据同步到花名册

- 后端新增 GET/PUT /portal/profile 接口,员工可查看和编辑个人资料
- 员工可编辑:紧急联系人、住址、银行卡、学历、参保城市
- 只读字段:姓名、性别、手机号、证件号码、部门、岗位、入职日期
- 数据直接写入 Employee 表(花名册),HR 管理端可见
- 更新操作记录证据链(PROFILE_UPDATE)
- 前端新增 MyProfile.tsx 页面,PortalNav 添加导航入口
This commit is contained in:
freedakgmail
2026-08-17 18:56:42 +08:00
parent cdbfeb4f99
commit c4a929fc8e
6 changed files with 319 additions and 1 deletions
+2
View File
@@ -58,6 +58,7 @@ const OnboardingProgress = lazyRetry(() => import('./pages/portal/OnboardingProg
const ResignationApply = lazyRetry(() => import('./pages/portal/ResignationApply'))
const MyEsign = lazyRetry(() => import('./pages/portal/MyEsign'))
const MyRecords = lazyRetry(() => import('./pages/portal/MyRecords'))
const MyProfile = lazyRetry(() => import('./pages/portal/MyProfile'))
const RiskCenter = lazyRetry(() => import('./pages/compliance/RiskCenter'))
const SalaryDashboard = lazyRetry(() => import('./pages/SalaryDashboard'))
const CommercialInsurance = lazyRetry(() => import('./pages/CommercialInsurance'))
@@ -247,6 +248,7 @@ export default function App() {
<Route path="/portal/resignation" element={<PortalLayoutWrapper><ResignationApply /></PortalLayoutWrapper>} />
<Route path="/portal/esign" element={<PortalLayoutWrapper><MyEsign /></PortalLayoutWrapper>} />
<Route path="/portal/records" element={<PortalLayoutWrapper><MyRecords /></PortalLayoutWrapper>} />
<Route path="/portal/profile" element={<PortalLayoutWrapper><MyProfile /></PortalLayoutWrapper>} />
{/* 兜底 */}
<Route path="*" element={<Navigate to="/" replace />} />