feat(performance): 新增绩效下签功能支持

- 在月报审批页面增加 sign-off 场景支持
- 添加绩效下签对话框组件实现批量下签功能
- 增加导入绩效压缩包和直接下签两种操作模式
- 实现电子签名预览和日期格式化显示功能
- 更新绩效权限配置增加下签相关权限
- 优化审批对话框标题和按钮文案显示
- 添加导入结果提示和文件验证功能
- 实现团队模式下的下签操作入口
- 完善绩效表格状态和操作权限判断逻辑
This commit is contained in:
dk
2026-07-19 18:21:14 +08:00
parent c2f9c922cf
commit 08fff8bbc5
17 changed files with 1523 additions and 116 deletions

View File

@@ -74,6 +74,8 @@ declare namespace Api {
fileVersion: number;
statusCode: Common.SheetStatusCode;
statusName: string;
signOffStatus?: string | null;
signOffStatusName?: string | null;
actualScoreTotal?: string | number | null;
baseScoreTotal?: string | number | null;
extraScoreTotal?: string | number | null;
@@ -96,6 +98,7 @@ declare namespace Api {
managerId: string;
managerName: string;
statusCode: Common.SheetStatusCode;
signOffStatus: string;
}
>;
@@ -121,6 +124,27 @@ declare namespace Api {
ids: string[];
}
interface ImportZipParams {
file: File;
periodMonth: string;
employeeIds?: string[] | null;
}
interface ImportZipResult {
workbookCount: number;
sheetCount: number;
successCount: number;
skippedCount: number;
failedCount: number;
messages: string[];
}
interface SignOffParams {
periodMonth: string;
employeeIds?: string[] | null;
remark?: string | null;
}
interface StatusDict {
statusCode: Common.SheetStatusCode;
statusName: string;

View File

@@ -239,6 +239,25 @@ declare namespace Api {
roleIds: string[];
}
interface UserSignature {
id: string;
userId: string;
fileId: string;
fileName?: string | null;
status?: number | null;
remark?: string | null;
createTime?: string | null;
updateTime?: string | null;
}
interface SaveUserSignatureParams {
userId: string;
fileId: string;
fileName?: string | null;
status?: number | null;
remark?: string | null;
}
/**
* menu type
*

View File

@@ -189,6 +189,8 @@ declare namespace Api {
periodEndDate: string;
statusCode: Common.WorkReportStatusCode | string;
statusName: string;
signOffStatus?: string | null;
signOffStatusName?: string | null;
allowEdit: boolean;
terminal: boolean;
totalWorkHours?: number | string | null;
@@ -204,6 +206,7 @@ declare namespace Api {
type MonthlyReportSearchParams = Common.WorkReportBaseSearchParams & {
reporterIds?: string[] | null;
signOffStatus?: string | null;
};
interface MonthlyReportSaveParams {
@@ -245,10 +248,22 @@ declare namespace Api {
improvementSuggestion?: string | null;
performanceResult?: string | null;
employeeSignName?: string | null;
employeeSignatureFileId?: string | null;
employeeSignedDate?: string | null;
supervisorSignName?: string | null;
supervisorSignatureFileId?: string | null;
supervisorSignedDate?: string | null;
}
interface MonthlyReportSignOffConfirmParams {
meetingDate: string;
employeeSignedDate?: string | null;
}
interface MonthlyReportSignOffDetail {
report: MonthlyReport;
latestApprovalRecord: MonthlyReportApprovalRecord | null;
}
}
namespace Project {

View File

@@ -130,11 +130,13 @@ declare module 'vue' {
IconMdiFolderOpen: typeof import('~icons/mdi/folder-open')['default']
IconMdiFolderOutline: typeof import('~icons/mdi/folder-outline')['default']
IconMdiFolderPlusOutline: typeof import('~icons/mdi/folder-plus-outline')['default']
IconMdiFolderZipOutline: typeof import('~icons/mdi/folder-zip-outline')['default']
IconMdiInboxMultipleOutline: typeof import('~icons/mdi/inbox-multiple-outline')['default']
IconMdiInformationOutline: typeof import('~icons/mdi/information-outline')['default']
IconMdiKeyboardEsc: typeof import('~icons/mdi/keyboard-esc')['default']
IconMdiKeyboardReturn: typeof import('~icons/mdi/keyboard-return')['default']
IconMdiLinkVariant: typeof import('~icons/mdi/link-variant')['default']
IconMdiPenCheckOutline: typeof import('~icons/mdi/pen-check-outline')['default']
IconMdiPencilOutline: typeof import('~icons/mdi/pencil-outline')['default']
IconMdiPlus: typeof import('~icons/mdi/plus')['default']
IconMdiRefresh: typeof import('~icons/mdi/refresh')['default']