feat: 优化差旅报销预审流程与个人工作台 UI 体系

- 完善 user_agent_application 申请差旅报销预审槽位与消息组装
- 增强预算助理报告与风险建议卡片交互
- 重构登录页视觉样式与移动端响应式适配
- 优化个人工作台、文档中心、政策中心、员工管理等页面布局
- 拆分 travelRequestDetailPreReviewModel 为 advice/submit 模型
- 补充报销草稿、风险复核、Item Sync 与模板执行器测试覆盖
This commit is contained in:
caoxiaozhu
2026-06-02 14:01:51 +08:00
parent 92444e7eae
commit ca691f3ee0
107 changed files with 5663 additions and 1542 deletions

View File

@@ -62,6 +62,35 @@ export const assistantCapabilities = [
}
]
const FINANCIAL_CAPABILITY_KEYS = new Set(['budget-planning', 'finance-analysis'])
const FINANCIAL_CAPABILITY_ROLE_CODES = new Set(['budget_monitor', 'executive', 'admin'])
const FINANCIAL_CAPABILITY_ROLE_LABELS = new Set(['预算监控员', '高级财务人员', '管理员'])
function normalizeRoleCodes(user = {}) {
const rawCodes = Array.isArray(user.roleCodes)
? user.roleCodes
: Array.isArray(user.role_codes)
? user.role_codes
: []
return rawCodes.map((code) => String(code || '').trim().toLowerCase()).filter(Boolean)
}
export function canViewFinancialWorkbenchCapabilities(user = {}) {
const roleLabel = String(user.role || '').trim()
return Boolean(user.isAdmin)
|| FINANCIAL_CAPABILITY_ROLE_LABELS.has(roleLabel)
|| normalizeRoleCodes(user).some((code) => FINANCIAL_CAPABILITY_ROLE_CODES.has(code))
}
export function filterAssistantCapabilitiesForUser(user = {}) {
const canViewFinancial = canViewFinancialWorkbenchCapabilities(user)
return assistantCapabilities.filter((item) => canViewFinancial || !FINANCIAL_CAPABILITY_KEYS.has(item.key))
}
export function resolveWorkbenchCapabilityGridClass(user = {}) {
return canViewFinancialWorkbenchCapabilities(user) ? 'capability-grid--privileged' : 'capability-grid--standard'
}
export const todoItems = [
{
title: '待补材料',