/** * 报工页面自定义样式 * 补充Tailwind CSS的样式定义 * 主题色: #02B980 */ /* 全局样式 */ * { box-sizing: border-box; } /* 主题色变量定义 */ :root { --primary-color: #02B980; --primary-hover: #029968; --primary-light: #E6F7F1; --primary-dark: #016B4A; --primary-shadow: rgba(2, 185, 128, 0.1); } /* 主题色相关的通用样式 */ .btn-primary { background-color: var(--primary-color); color: white; transition: background-color 0.2s ease; } .btn-primary:hover { background-color: var(--primary-hover); } .btn-primary:disabled { background-color: #9CA3AF; cursor: not-allowed; } .border-primary { border-color: var(--primary-color); } .text-primary { color: var(--primary-color); } .bg-primary { background-color: var(--primary-color); } .bg-primary-light { background-color: var(--primary-light); } .ring-primary { --tw-ring-color: var(--primary-color); } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; } /* 下拉菜单动画 */ #work-order-dropdown { transition: opacity 0.3s ease-in-out; } #work-order-dropdown.show { display: flex !important; flex-direction: column; justify-content: flex-end; } #work-order-dropdown .bg-white { transform: translateY(100%); transition: transform 0.3s ease-out; } #work-order-dropdown.show .bg-white { transform: translateY(0); } /* 下拉箭头旋转动画 */ #dropdown-arrow.rotate { transform: rotate(90deg); } /* 工单列表项样式 */ .work-order-item { padding: 12px 16px; border-bottom: 1px solid #f3f4f6; cursor: pointer; transition: background-color 0.2s ease; } .work-order-item:hover { background-color: #f9fafb; } .work-order-item:last-child { border-bottom: none; } .work-order-item.selected { background-color: var(--primary-light); border-left: 4px solid var(--primary-color); } /* 输入框焦点样式增强 */ input:focus { outline: none; box-shadow: 0 0 0 3px rgba(2, 185, 128, 0.1); border-color: var(--primary-color) !important; } /* 按钮点击效果 */ button:active { transform: scale(0.98); } /* 主题色按钮悬停效果 */ button[style*="background-color: var(--primary-color)"]:hover { background-color: var(--primary-hover) !important; } button[style*="border-color: var(--primary-color)"]:hover { background-color: var(--primary-light) !important; } /* 复选框和单选框主题色 */ input[type="checkbox"]:checked, input[type="radio"]:checked { background-color: var(--primary-color) !important; border-color: var(--primary-color) !important; } input[type="checkbox"]:focus, input[type="radio"]:focus { box-shadow: 0 0 0 3px var(--primary-shadow) !important; border-color: var(--primary-color) !important; } /* 自定义CSS类 */ .hover-primary-bg:hover { background-color: var(--primary-hover) !important; } .hover-primary-light-bg:hover { background-color: var(--primary-light) !important; } .focus-primary-ring:focus { --tw-ring-color: var(--primary-color) !important; border-color: var(--primary-color) !important; } .checkbox-primary:checked { background-color: var(--primary-color) !important; border-color: var(--primary-color) !important; } .checkbox-primary:focus { box-shadow: 0 0 0 3px var(--primary-shadow) !important; border-color: var(--primary-color) !important; } /* 状态标签动画 */ .status-tag { transition: transform 0.2s ease; } .status-tag:hover { transform: scale(1.05); } /* 响应式调整 */ @media (max-width: 640px) { /* 移动端下拉菜单全屏显示 */ #work-order-dropdown .bg-white { min-height: 80vh; border-radius: 16px 16px 0 0; } /* 移动端表单字段间距调整 */ #report-form .space-y-4 > * + * { margin-top: 1.5rem; } /* 移动端工单选择区域优化 */ #work-order-selector { margin-bottom: 1rem; } /* 移动端物料信息卡片优化 */ #material-info .bg-white { padding: 1rem; margin-bottom: 1rem; } /* 移动端状态标签优化 */ .status-tag { font-size: 0.75rem; padding: 0.25rem 0.75rem; } /* 移动端输入框优化 */ input[type="number"], input[type="text"] { font-size: 16px; /* 防止iOS缩放 */ padding: 0.75rem; } /* 移动端按钮优化 */ #submit-btn { padding: 1rem; font-size: 1.125rem; font-weight: 600; } } /* 平板设备优化 */ @media (min-width: 641px) and (max-width: 1024px) { /* 平板端下拉菜单适配 */ #work-order-dropdown .bg-white { min-height: 60vh; max-width: 600px; margin: 0 auto; border-radius: 12px; margin-top: 10vh; } /* 平板端表单布局优化 */ #report-form .bg-white { max-width: 500px; margin: 0 auto; } } /* 大屏设备优化 */ @media (min-width: 1025px) { /* 桌面端容器最大宽度 */ #app { max-width: 480px; margin: 0 auto; box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); } /* 桌面端下拉菜单 */ #work-order-dropdown .bg-white { max-width: 480px; margin: 0 auto; border-radius: 12px; margin-top: 5vh; min-height: 50vh; } } /* 横屏适配 */ @media (orientation: landscape) and (max-height: 600px) { /* 横屏时减少垂直间距 */ #header-nav { padding: 0.5rem 1rem; } main { padding: 1rem; } #work-order-dropdown .bg-white { min-height: 70vh; } #empty-state { padding: 2rem 0; } #empty-state .w-48 { width: 8rem; height: 8rem; } } /* 高分辨率屏幕优化 */ @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { /* 高分辨率屏幕下的图标和边框优化 */ .border { border-width: 0.5px; } svg { shape-rendering: geometricPrecision; } } /* 深色模式支持 */ @media (prefers-color-scheme: dark) { /* 可以添加深色模式样式 */ /* 目前保持浅色主题 */ } /* 减少动画偏好 */ @media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } #work-order-dropdown, #work-order-dropdown .bg-white, #dropdown-arrow { transition: none !important; } } /* 触摸设备优化 */ @media (pointer: coarse) { /* 增大触摸目标 */ button, .cursor-pointer { min-height: 44px; min-width: 44px; } /* 工单列表项触摸优化 */ .work-order-item { padding: 1rem; min-height: 60px; } /* 输入框触摸优化 */ input, select, textarea { min-height: 44px; } } /* 无障碍优化 */ @media (prefers-contrast: high) { /* 高对比度模式 */ .border-gray-300 { border-color: #000 !important; } .text-gray-500 { color: #333 !important; } .bg-gray-50 { background-color: #fff !important; } } /* 加载状态样式 */ .loading { position: relative; overflow: hidden; } .loading::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent); animation: loading 1.5s infinite; } @keyframes loading { 0% { left: -100%; } 100% { left: 100%; } } /* 滚动条样式 */ #work-order-list::-webkit-scrollbar { width: 4px; } #work-order-list::-webkit-scrollbar-track { background: #f1f5f9; } #work-order-list::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 2px; } #work-order-list::-webkit-scrollbar-thumb:hover { background: #94a3b8; }