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')