/* 财务工作台样式 - iOS风格设计 */ .finance-dashboard { min-height: 100vh; background-color: #f2f2f7; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; } /* 顶部标题区域 */ .dashboard-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; } .dashboard-title { font-size: 28px; font-weight: 600; color: #1c1c1e; margin: 0; } .current-date { font-size: 16px; color: #6c6c70; } /* 快捷操作区域 */ .quick-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-bottom: 24px; } .action-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; background-color: #ffffff; border-radius: 16px; border: none; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); cursor: pointer; transition: all 0.3s ease; } .action-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); } .action-icon { font-size: 32px; margin-bottom: 12px; } .action-label { font-size: 16px; font-weight: 500; color: #1c1c1e; } /* 主内容区域 */ .dashboard-content { display: flex; flex-direction: column; gap: 24px; } /* 数据概览卡片 */ .stats-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; } .stat-card { display: flex; align-items: center; padding: 20px; background-color: #ffffff; border-radius: 16px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; } .stat-card:hover { box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); } .stat-icon { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 12px; margin-right: 16px; background-color: #f2f2f7; color: #007aff; } .stat-icon.orders { background-color: #e0f7fa; color: #00bcd4; } .stat-icon.payment { background-color: #e8f5e9; color: #4caf50; } .stat-icon.quotes { background-color: #fff3e0; color: #ff9800; } .stat-icon.savings { background-color: #ede7f6; color: #9c27b0; } .stat-content { flex: 1; } .stat-value { font-size: 24px; font-weight: 700; color: #1c1c1e; margin-bottom: 4px; } .stat-label { font-size: 14px; color: #6c6c70; } .view-detail-btn { padding: 8px 16px; background-color: #f2f2f7; border: none; border-radius: 12px; font-size: 14px; font-weight: 500; color: #007aff; cursor: pointer; transition: all 0.3s ease; } .view-detail-btn:hover { background-color: #e5e5ea; } /* 待办任务区域 */ .todo-section { background-color: #ffffff; border-radius: 16px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); padding: 20px; } .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; } .section-header h2 { font-size: 20px; font-weight: 600; color: #1c1c1e; margin: 0; } .task-count { font-size: 14px; color: #6c6c70; } .task-list { display: flex; flex-direction: column; gap: 12px; } .task-item { display: flex; align-items: center; padding: 16px; background-color: #f9f9f9; border-radius: 12px; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: hidden; } .task-item:hover { background-color: #f2f2f7; transform: translateX(4px); } .task-priority-indicator { width: 4px; height: 24px; border-radius: 2px; background-color: #8e8e93; margin-right: 12px; } .task-item.high-priority .task-priority-indicator { background-color: #ff3b30; } .task-item.medium-priority .task-priority-indicator { background-color: #ff9500; } .task-content { flex: 1; } .task-title { font-size: 16px; font-weight: 500; color: #1c1c1e; margin-bottom: 4px; } .task-meta { display: flex; gap: 16px; } .due-time { font-size: 14px; color: #6c6c70; } .task-action { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; color: #6c6c70; } /* 响应式设计 */ @media (max-width: 768px) { .finance-dashboard { padding: 16px; } .dashboard-title { font-size: 24px; } .quick-actions { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; } .stats-cards { grid-template-columns: 1fr; gap: 16px; } .stat-card { padding: 16px; } .todo-section { padding: 16px; } } /* iOS风格动画效果 */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .stat-card, .action-btn, .task-item { animation: fadeIn 0.5s ease-out; } .stat-card:nth-child(2) { animation-delay: 0.1s; } .stat-card:nth-child(3) { animation-delay: 0.2s; } .stat-card:nth-child(4) { animation-delay: 0.3s; } .action-btn:nth-child(2) { animation-delay: 0.1s; } .action-btn:nth-child(3) { animation-delay: 0.2s; } .action-btn:nth-child(4) { animation-delay: 0.3s; } /* 工时统计模块样式 */ .work-hour-module { background-color: #ffffff; border-radius: 16px; padding: 24px; margin-bottom: 24px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); animation: slideInUp 0.5s ease-out; } .work-hour-module .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .work-hour-module h2 { font-size: 20px; font-weight: 600; color: #1c1c1e; margin: 0; } .close-btn { background: none; border: none; font-size: 24px; color: #8e8e93; cursor: pointer; padding: 4px 8px; border-radius: 8px; transition: background-color 0.2s ease; } .close-btn:hover { background-color: #f2f2f7; } /* 工时概览卡片 */ .work-hour-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-bottom: 24px; } .overview-card { display: flex; align-items: center; padding: 16px; background-color: #f8f9fa; border-radius: 12px; border: 1px solid #e9ecef; } .card-icon { font-size: 24px; margin-right: 12px; } .card-content { flex: 1; } .card-value { font-size: 18px; font-weight: 600; color: #1c1c1e; margin-bottom: 4px; } .card-label { font-size: 12px; color: #6c6c70; } /* 绩效等级分布 */ .performance-distribution { margin-bottom: 24px; } .performance-distribution h3 { font-size: 16px; font-weight: 600; color: #1c1c1e; margin-bottom: 16px; } .performance-chart { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; } .performance-item { display: flex; align-items: center; padding: 12px; background-color: #f8f9fa; border-radius: 8px; } .level-indicator { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-weight: 600; font-size: 14px; margin-right: 12px; } .level-info { flex: 1; } .level-count { font-size: 14px; font-weight: 600; color: #1c1c1e; margin-bottom: 2px; } .level-desc { font-size: 12px; color: #6c6c70; } /* 月度统计表格 */ .monthly-stats h3 { font-size: 16px; font-weight: 600; color: #1c1c1e; margin-bottom: 16px; } .stats-table { background-color: #f8f9fa; border-radius: 8px; overflow: hidden; } .table-header { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; background-color: #e9ecef; padding: 12px 0; } .header-cell { padding: 0 16px; font-size: 12px; font-weight: 600; color: #495057; text-align: center; } .table-body { max-height: 300px; overflow-y: auto; } .table-row { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; padding: 12px 0; border-bottom: 1px solid #dee2e6; } .table-row:last-child { border-bottom: none; } .table-cell { padding: 0 16px; font-size: 14px; color: #495057; text-align: center; display: flex; align-items: center; justify-content: center; } .performance-badge { padding: 4px 8px; border-radius: 12px; color: white; font-size: 12px; font-weight: 600; } /* 工时按钮特殊样式 */ .work-hour-btn { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; } .work-hour-btn .action-icon { color: white; } .work-hour-btn .action-label { color: white; } .work-hour-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(102, 126, 234, 0.3); } /* 动画效果 */ @keyframes slideInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }