ATTV1 实现考勤统一入口与企微同步

这个提交包含在:
2026-05-17 16:56:24 +08:00
父节点 d50b7db143
当前提交 916cc3b7f7
共修改 51 个文件,包含 3323 行新增和 1762 行删除
+16 -1
查看文件
@@ -53,7 +53,7 @@ type MobileAction = "approve" | "reject" | "return" | "transfer";
type MobileTaskTab = "pending" | "completed";
type EmployeeProgressTab = "draft" | "reviewing" | "approved" | "returned";
type EmployeeProgressQueryStatus = "draft" | "reviewing" | "approved" | "rejected";
type EntityFilter = "all" | "leave" | "reimbursement" | "purchase_request" | "travel_request";
type EntityFilter = "all" | "leave" | "reimbursement" | "attendance_correction" | "purchase_request" | "travel_request";
type ReplayClassification = "failed" | "conflicted";
type VisibleTaskCard = {
@@ -85,6 +85,7 @@ const ENTITY_FILTER_OPTIONS: Array<{ value: EntityFilter; label: string }> = [
{ value: "all", label: "全部" },
{ value: "leave", label: "请假" },
{ value: "reimbursement", label: "报销" },
{ value: "attendance_correction", label: "考勤" },
{ value: "purchase_request", label: "采购" },
{ value: "travel_request", label: "差旅" },
];
@@ -118,6 +119,9 @@ function entityLabel(entityType: string | undefined | null) {
if (entityType === "reimbursement") {
return "报销";
}
if (entityType === "attendance_correction") {
return "考勤";
}
if (entityType === "purchase_request") {
return "采购";
}
@@ -596,12 +600,14 @@ export function MobileApprovalsPage() {
const selectedApplicantName = selectedTaskCard?.applicantName ??
selectedTask?.reimbursement?.submitter?.name ??
selectedTask?.leaveRequest?.owner?.name ??
selectedTask?.attendanceCorrection?.owner?.name ??
selectedTask?.purchaseRequest?.applicant?.name ??
selectedTask?.travelRequest?.applicant?.name ??
null;
const selectedMetric = selectedTaskCard?.metric ??
selectedTask?.reimbursement?.totalAmount ??
(selectedTask?.leaveRequest ? `${selectedTask.leaveRequest.requestedDays} 天` : null) ??
(selectedTask?.attendanceCorrection ? selectedTask.attendanceCorrection.workDate : null) ??
selectedTask?.purchaseRequest?.totalAmount ??
selectedTask?.travelRequest?.estimatedAmount ??
null;
@@ -1387,6 +1393,15 @@ export function MobileApprovalsPage() {
{joinBusinessMeta([`假期类型:${selectedTask.leaveRequest.leaveType?.name ?? "-"}`, `${selectedTask.leaveRequest.startDate ?? "-"} 至 ${selectedTask.leaveRequest.endDate ?? "-"}`])}
</div>
) : null}
{selectedTask.attendanceCorrection ? (
<div className="mt-3 rounded-lg bg-zinc-50 px-3 py-2 text-xs text-zinc-600">
{joinBusinessMeta([
`类型:${entityLabel("attendance_correction")}`,
`日期:${selectedTask.attendanceCorrection.workDate ?? "-"}`,
selectedTask.attendanceCorrection.reason ?? null,
])}
</div>
) : null}
{selectedTask.purchaseRequest ? (
<div className="mt-3 rounded-lg bg-zinc-50 px-3 py-2 text-xs text-zinc-600">
{joinBusinessMeta([`供应商:${selectedTask.purchaseRequest.supplier?.name ?? "-"}`, selectedTask.purchaseRequest.title])}