feat: 数字员工财务报告体系与定时提醒及看板快照调度

- 新增数字员工财务报告生成、邮件投递与渲染调度器
- 引入员工画像扫描调度与定时提醒任务
- 完善财务看板快照、排行口径与部门人员占比计算
- 优化数字员工工作看板仪表盘与技能目录
- 增强前端总览页图表、工作台摘要与顶部导航栏交互
- 新增差旅申请规划推动提醒与报销创建会话状态管理
- 补充财务报告、看板调度、数字员工工作记录测试覆盖
This commit is contained in:
caoxiaozhu
2026-06-03 09:25:23 +08:00
parent 0c74b4ab4a
commit 15006a05a7
114 changed files with 7356 additions and 650 deletions

View File

@@ -142,19 +142,16 @@
.trend-count-panel,
.donut-panel,
.rank-panel,
.employee-rank-panel,
.top-claim-panel,
.budget-metrics-panel,
.bottleneck-panel,
.budget-panel,
.model-panel,
.feedback-panel {
grid-column: span 3;
}
.bottleneck-panel,
.rank-panel,
.employee-rank-panel,
.top-claim-panel,
.budget-metrics-panel,
.bottleneck-panel,
.budget-panel {
grid-column: span 6;
}
@@ -188,6 +185,21 @@
width: 110px;
}
.card-range-chip {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 28px;
padding: 0 10px;
border: 1px solid rgba(var(--theme-primary-rgb, 58, 124, 165), .18);
border-radius: 4px;
background: rgba(var(--theme-primary-rgb, 58, 124, 165), .07);
color: var(--theme-primary-active);
font-size: 12px;
font-weight: 800;
white-space: nowrap;
}
.panel-note {
margin-top: 8px;
color: #64748b;
@@ -581,6 +593,42 @@
.top-claim-list {
display: grid;
gap: 10px;
align-content: start;
}
.top-claim-split {
flex: 1;
display: grid;
grid-template-columns: minmax(260px, .92fr) minmax(0, 1.08fr);
gap: 18px;
align-items: stretch;
min-height: 0;
}
.department-employee-mix {
min-width: 0;
padding-right: 18px;
border-right: 1px solid #f1f5f9;
}
.department-employee-mix :deep(.donut-chart) {
min-height: 100%;
}
.department-employee-mix :deep(.donut-body) {
height: 150px;
}
.department-employee-mix :deep(.donut-legend) {
grid-template-columns: 1fr;
gap: 7px;
}
.department-employee-mix :deep(.legend-name) {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.top-claim-row {
@@ -873,6 +921,17 @@
grid-template-columns: 24px 64px minmax(0, 1fr);
}
.top-claim-split {
grid-template-columns: 1fr;
}
.department-employee-mix {
padding-right: 0;
padding-bottom: 14px;
border-right: 0;
border-bottom: 1px solid #f1f5f9;
}
.budget-metric-grid {
grid-template-columns: 1fr;
}

View File

@@ -0,0 +1,69 @@
@media (max-width: 760px) {
.approval-page,
.approval-detail,
.detail-scroll,
.detail-hero,
.progress-card,
.detail-grid,
.detail-left,
.detail-card {
width: 100%;
min-width: 0;
max-width: 100%;
}
.detail-scroll {
padding-right: 0;
overflow-x: hidden;
}
.detail-scroll > * {
min-width: 0;
max-width: 100%;
}
.hero-banner-main,
.hero-fact-grid,
.applicant-card,
.detail-card-head {
min-width: 0;
max-width: 100%;
}
.progress-card,
.progress-block {
min-width: 0;
max-width: 100%;
}
.progress-line {
width: 100%;
min-width: 0;
max-width: 100%;
}
.detail-expense-table {
width: 100%;
min-width: 0;
max-width: 100%;
overflow-x: auto;
}
.detail-actions {
width: 100%;
min-width: 0;
max-width: 100%;
}
.approval-action-group {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
gap: 8px;
}
.back-action,
.approval-action-group > button {
width: 100%;
min-width: 0;
}
}

View File

@@ -704,6 +704,7 @@
.ai-preview-secondary:disabled,
.ai-preview-primary:disabled,
.approve-action:disabled,
.secondary-action:disabled,
.return-action:disabled,
.ai-send-btn:disabled {
opacity: .45;

View File

@@ -1645,6 +1645,13 @@
color: #ef4444;
}
.secondary-action {
min-width: 98px;
border: 1px solid #bfdbfe;
background: #eff6ff;
color: #2563eb;
}
.return-action {
min-width: 98px;
border: 1px solid #fed7aa;