feat: 电子签署改为「待签合同」,按员工聚合+催办功能

1. 菜单「电子签署」改名为「待签合同」
2. 页面重构为两个 Tab:
   - 待签合同:按员工聚合展示所有未签文件(EsignRecord
     PENDING/SIGNING + LaborContract signDate 为空),展开可
     查看该员工名下所有待签文件详情
   - 签署记录:原有全部签署记录列表(保留筛选功能)
3. 催办功能:点击催办生成一次性自动登录链接(24h有效),
   指向员工端签署页,弹窗展示二维码+可复制链接,HR 发给
   员工扫码直接进入签署
4. 后端新增接口:
   - GET /esign/pending 待签合同按员工聚合列表
   - POST /esign/remind 催办生成自动登录链接

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
selfrelease
2026-08-16 11:57:43 +08:00
parent ebd47e4500
commit 71f0619d18
4 changed files with 373 additions and 24 deletions
+6
View File
@@ -644,6 +644,12 @@ export const benefitApi = {
export const esignApi = {
list: (params?: { status?: string; scene?: string }) =>
get('/esign', { params: params || {} }).then(unwrap<any[]>()),
/** 待签合同列表(按员工聚合) */
pending: () =>
get('/esign/pending').then(unwrap<any[]>()),
/** 催办(生成自动登录链接) */
remind: (employeeId: string) =>
post('/esign/remind', { employeeId }).then(unwrap<any>()),
create: (data: { contractId?: string; employeeId: string; documentTitle: string; documentContent?: string; remark?: string; scene?: string; templateId?: string; templateVars?: Record<string, string> }) =>
post('/esign/create', data),
detail: (id: string) =>