diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 84c78a7..683b167 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -37,12 +37,16 @@ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); } - * { + *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } + html, body { + width: 100%; + } + body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--color-bg); @@ -54,6 +58,8 @@ .app-container { display: flex; min-height: 100vh; + width: 100%; + max-width: 100vw; } /* 侧边栏 */ @@ -235,6 +241,9 @@ margin-left: 280px; padding: 36px 48px; min-height: 100vh; + min-width: 0; + max-width: calc(100vw - 280px); + box-sizing: border-box; } .page-header { @@ -262,6 +271,9 @@ padding: 28px; margin-bottom: 24px; box-shadow: var(--shadow-sm); + max-width: 100%; + width: 100%; + box-sizing: border-box; } .card-header { @@ -574,11 +586,111 @@ } /* 筛选标签 */ + /* 统计筛选栏 - 合并版 */ + .stats-filter-bar { + display: flex; + align-items: center; + gap: 12px; + margin-bottom: 24px; + background: var(--color-bg-card); + border: 1px solid var(--color-border); + border-radius: var(--radius); + padding: 12px 16px; + } + + .stats-filter-grid { + display: flex; + gap: 6px; + flex: 1; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + + .stats-filter-item { + display: flex; + align-items: center; + gap: 6px; + padding: 8px 14px; + border-radius: 20px; + background: var(--color-bg-secondary); + border: 1px solid transparent; + text-decoration: none; + transition: all 0.2s; + white-space: nowrap; + flex-shrink: 0; + } + + .stats-filter-item:hover { + background: var(--color-bg-hover); + } + + .stats-filter-item.active { + background: var(--color-primary-light); + border-color: var(--color-primary); + } + + .sf-value { + font-weight: 700; + font-size: 16px; + color: var(--color-text); + } + + .sf-label { + font-size: 13px; + color: var(--color-text-secondary); + } + + .stats-filter-item.danger .sf-value { color: var(--color-danger); } + .stats-filter-item.warning .sf-value { color: var(--color-warning); } + .stats-filter-item.success .sf-value { color: var(--color-success); } + .stats-filter-item.info .sf-value { color: var(--color-primary); } + + .stats-filter-item.active .sf-label { + color: var(--color-primary); + } + + .export-icon-btn { + display: flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + border-radius: 10px; + background: var(--color-bg-secondary); + border: 1px solid var(--color-border); + color: var(--color-text-secondary); + transition: all 0.2s; + flex-shrink: 0; + } + + .export-icon-btn:hover { + background: var(--color-primary-light); + border-color: var(--color-primary); + color: var(--color-primary); + } + + .filter-action-bar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + margin-bottom: 24px; + } + .filter-tabs { display: flex; gap: 10px; - margin-bottom: 28px; flex-wrap: wrap; + flex: 1; + } + + .export-btn { + flex-shrink: 0; + } + + .btn-sm { + padding: 8px 14px; + font-size: 13px; } .filter-tab { @@ -699,7 +811,7 @@ border-top: 1px solid var(--color-border-light); } - /* 响应式 */ + /* 响应式 - 中等屏幕 */ @media (max-width: 1024px) { .sidebar { width: 80px; @@ -720,9 +832,32 @@ padding: 14px; } + .nav-item svg { + margin-right: 0; + } + + .user-section { + padding: 16px 8px; + } + + .user-info { + display: none; + } + + .logout-btn { + width: 100%; + justify-content: center; + padding: 10px; + } + + .logout-btn span { + display: none; + } + .main-content { margin-left: 80px; padding: 28px 24px; + max-width: calc(100vw - 80px); } } @@ -1055,6 +1190,8 @@ align-items: center; justify-content: space-between; box-shadow: var(--shadow-sm); + box-sizing: border-box; + max-width: 100vw; } .mobile-logo { @@ -1171,6 +1308,9 @@ .main-content { margin-left: 0; padding: 76px 16px 24px; + max-width: 100vw; + box-sizing: border-box; + width: 100%; } .page-header { @@ -1187,37 +1327,107 @@ /* 卡片适配 */ .card { - padding: 20px; + padding: 16px; border-radius: 12px; } /* 统计卡片 */ + /* 移动端统计筛选栏 */ + .stats-filter-bar { + padding: 10px 12px; + gap: 10px; + margin-bottom: 16px; + } + + .stats-filter-grid { + gap: 4px; + } + + .stats-filter-item { + padding: 6px 10px; + gap: 4px; + } + + .sf-value { + font-size: 14px; + } + + .sf-label { + font-size: 11px; + } + + .export-icon-btn { + width: 36px; + height: 36px; + } + + /* 移动端统计卡片 - 紧凑模式 (备用) */ .stats-grid { - grid-template-columns: repeat(2, 1fr); - gap: 12px; + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-bottom: 20px; } .stat-card { - padding: 16px; + flex: 1 1 calc(50% - 4px); + min-width: calc(50% - 4px); + padding: 12px 14px; + display: flex; + align-items: center; + gap: 10px; + border-radius: 10px; } - .stat-number { + .stat-card:nth-child(5) { + flex: 1 1 100%; + justify-content: center; + } + + .stat-value { font-size: 24px; + margin-bottom: 0; + line-height: 1; } .stat-label { font-size: 12px; + white-space: nowrap; + } + + .stat-card:hover { + transform: none; } /* 筛选按钮 */ + .filter-action-bar { + flex-direction: column; + align-items: stretch; + gap: 12px; + margin-bottom: 16px; + } + .filter-tabs { - flex-wrap: wrap; - gap: 8px; + display: flex; + flex-wrap: nowrap; + gap: 6px; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + padding-bottom: 4px; } .filter-tab { padding: 8px 14px; font-size: 13px; + flex-shrink: 0; + } + + .export-btn { + align-self: flex-start; + } + + .export-text { + display: inline; } /* 患者卡片 */ @@ -1372,22 +1582,31 @@ flex-direction: column; align-items: stretch; gap: 12px; + width: 100%; + box-sizing: border-box; } .card-header .btn, .card-header .btn-outline { width: 100%; justify-content: center; + box-sizing: border-box; } /* 搜索框适配 */ .search-box { max-width: 100%; width: 100%; + box-sizing: border-box; } .search-box input { width: 100%; + box-sizing: border-box; + } + + .search-box form { + width: 100%; } /* 操作按钮组适配 */ @@ -1446,8 +1665,52 @@ /* 超小屏幕适配 */ @media (max-width: 380px) { + /* 小屏幕统计筛选栏 */ + .stats-filter-bar { + padding: 8px 10px; + gap: 8px; + } + + .stats-filter-item { + padding: 5px 8px; + } + + .sf-value { + font-size: 13px; + } + + .sf-label { + font-size: 10px; + } + + .export-icon-btn { + width: 32px; + height: 32px; + } + + .export-icon-btn svg { + width: 16px; + height: 16px; + } + + /* 小屏幕统计卡片 - 更紧凑 (备用) */ .stats-grid { - grid-template-columns: 1fr; + gap: 6px; + } + + .stat-card { + flex: 1 1 calc(50% - 3px); + min-width: calc(50% - 3px); + padding: 10px 12px; + gap: 8px; + } + + .stat-value { + font-size: 20px; + } + + .stat-label { + font-size: 11px; } .mobile-header { @@ -1470,6 +1733,14 @@ padding: 6px 12px; font-size: 12px; } + + .export-btn .export-text { + display: none; + } + + .export-btn { + padding: 8px; + } } @@ -1555,7 +1826,7 @@ - 退出登录 + 退出登录 diff --git a/resources/views/patients/index.blade.php b/resources/views/patients/index.blade.php index 2517b79..71b8235 100644 --- a/resources/views/patients/index.blade.php +++ b/resources/views/patients/index.blade.php @@ -4,15 +4,98 @@ @section('content')