Files
CoreInject/frontend/dist/assets/BWVVIzHX.css
QiuChenly 8394c93e6c 性能优化、错误修复
### 后端更新

性能优化
- Redis、数据库索引优化, 复杂联表查询查询速度从10秒降低到500ms

功能增强
- 统一文件上传 API
- 论坛权限管理优化

### 前端更新

问题修复
- 统一错误提示、组件复用、图标本地化、密码加密传输、大文件分片上传

新增功能
- 全局通知系统、WebSocket 实时消息、图标批量同步、IP 封禁管理、应用版本批量查询、头像上传、TypeScript 类型完善、讨论区功能增强

代码优化
- 删除冗余组件、统一 API 错误处理、优化代码结构、统一 UI 风格
2025-11-13 03:02:01 +08:00

2 lines
4.7 KiB
CSS

.modal-overlay[data-v-f5d3fd24]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--spacing-lg)}.modal-container[data-v-f5d3fd24]{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-light)}.modal-header[data-v-f5d3fd24]{padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;background:var(--bg-secondary)}.modal-header .modal-title[data-v-f5d3fd24]{margin:0;font-size:1.3rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm)}.modal-header .modal-title .modal-icon[data-v-f5d3fd24]{font-size:1.5rem;color:var(--primary-color)}.modal-header .modal-close[data-v-f5d3fd24]{background:transparent;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:1.5rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.modal-header .modal-close[data-v-f5d3fd24]:hover{background:var(--bg-primary);color:var(--text-primary)}.modal-body[data-v-f5d3fd24]{flex:0 0 auto;overflow:hidden;padding:var(--spacing-md)}.log-container[data-v-f5d3fd24]{height:500px;min-height:500px;max-height:60vh;overflow-y:auto;overflow-x:hidden;background:var(--bg-tertiary, #1a1a1a);border-radius:var(--radius-md);padding:var(--spacing-md);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:.9rem;line-height:1.6;scroll-behavior:smooth}.log-container[data-v-f5d3fd24]::-webkit-scrollbar{width:8px}.log-container[data-v-f5d3fd24]::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}.log-container[data-v-f5d3fd24]::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.log-container[data-v-f5d3fd24]::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.log-line[data-v-f5d3fd24]{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);padding:var(--spacing-xs) 0;align-items:flex-start}.log-line.loading[data-v-f5d3fd24]{color:var(--primary-color)}.log-line .log-time[data-v-f5d3fd24]{color:var(--text-tertiary);flex-shrink:0;font-size:.85rem}.log-line .log-message[data-v-f5d3fd24]{color:var(--text-secondary);flex:1;word-break:break-word;white-space:pre-wrap}.log-line.log-info .log-message[data-v-f5d3fd24]{color:var(--text-secondary)}.log-line.log-success .log-message[data-v-f5d3fd24]{color:var(--success-color)}.log-line.log-warning .log-message[data-v-f5d3fd24]{color:var(--warning-color)}.log-line.log-error .log-message[data-v-f5d3fd24]{color:var(--error-color)}.modal-footer[data-v-f5d3fd24]{padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--border-light);background:var(--bg-secondary);display:flex;align-items:center;justify-content:space-between}.modal-footer .footer-status[data-v-f5d3fd24]{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1rem;font-weight:500}.modal-footer .footer-status .status-success[data-v-f5d3fd24]{color:var(--success-color);display:flex;align-items:center;gap:var(--spacing-xs)}.modal-footer .footer-status .status-error[data-v-f5d3fd24]{color:var(--error-color);display:flex;align-items:center;gap:var(--spacing-xs)}.modal-footer .footer-status .status-loading[data-v-f5d3fd24]{color:var(--primary-color);display:flex;align-items:center;gap:var(--spacing-xs)}.modal-footer .footer-actions[data-v-f5d3fd24]{display:flex;gap:var(--spacing-sm)}.spinner-small[data-v-f5d3fd24]{width:16px;height:16px;border:2px solid var(--border-color);border-top:2px solid var(--primary-color);border-radius:50%;animation:spin-f5d3fd24 1s linear infinite}@keyframes spin-f5d3fd24{to{transform:rotate(360deg)}}.modal-enter-active[data-v-f5d3fd24],.modal-leave-active[data-v-f5d3fd24]{transition:opacity .3s ease}.modal-enter-from[data-v-f5d3fd24],.modal-leave-to[data-v-f5d3fd24]{opacity:0}.modal-enter-active .modal-container[data-v-f5d3fd24],.modal-leave-active .modal-container[data-v-f5d3fd24]{transition:transform .3s ease}.modal-enter-from .modal-container[data-v-f5d3fd24],.modal-leave-to .modal-container[data-v-f5d3fd24]{transform:scale(.9) translateY(-20px)}@media (max-width: 768px){.modal-overlay[data-v-f5d3fd24]{padding:0}.modal-container[data-v-f5d3fd24]{max-width:100%;max-height:100vh;border-radius:0}.log-container[data-v-f5d3fd24]{height:400px;min-height:400px;max-height:50vh}.modal-footer[data-v-f5d3fd24]{flex-direction:column;gap:var(--spacing-md);align-items:stretch}.modal-footer .footer-actions[data-v-f5d3fd24]{width:100%}.modal-footer .footer-actions .btn[data-v-f5d3fd24]{flex:1}}