-
-
欢迎使用智慧水务
-
移动端管理平台
+
+
+
+
+
+
+
+
+ 🏗️
+ {{ item.title }}
+
+
+
+
-
-
+
+
+
+ {{ alertMessage }}
+
+
+
+
+
+
+
-
-
- 首页
- 我的
+
+
+ 首页
+ 地图
+ 我的
@@ -58,68 +244,192 @@ function onTabChange(index: number): void {
.home-page {
min-height: 100vh;
background: var(--color-bg-page);
+ display: flex;
+ flex-direction: column;
+ // ── 导航栏 ──
:deep(.van-nav-bar) {
- background: var(--color-primary);
- --van-nav-bar-title-text-color: #fff;
+ background: #1E74FF;
+
+ .van-nav-bar__title {
+ color: #ffffff;
+ font-weight: 600;
+ font-size: 17px;
+ }
+
+ .van-nav-bar__left,
+ .van-nav-bar__right {
+ .van-icon {
+ color: #ffffff;
+ }
+ }
}
}
-.home-content {
- padding: 16px;
+.nav-left-brand {
+ font-size: 18px;
+ line-height: 1;
}
-.welcome-card {
- background: var(--color-bg-card);
- border-radius: 12px;
- padding: 32px 24px;
- text-align: center;
- box-shadow: var(--shadow-sm);
- margin-bottom: 16px;
-
- h2 {
- font-size: 20px;
- color: var(--color-text-primary);
- margin-bottom: 8px;
- }
-
- p {
- font-size: 14px;
- color: var(--color-text-secondary);
- margin: 0;
- }
+// ── 页面主体 ──
+.home-body {
+ flex: 1;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
}
-.feature-grid {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 12px;
+// ── Banner ──
+.banner-wrapper {
+ margin: 8px 12px;
}
-.feature-item {
- background: var(--color-bg-card);
- border-radius: 12px;
- padding: 24px 16px;
- text-align: center;
- box-shadow: var(--shadow-sm);
+.banner-swipe {
+ border-radius: 10px;
+ overflow: hidden;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.banner-slide {
+ width: 100%;
+ height: 180px;
+ background: linear-gradient(135deg, #1E74FF 0%, #64B5F6 100%);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.banner-content {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 8px;
+ color: #ffffff;
+}
+
+.banner-icon {
+ font-size: 36px;
+}
+
+.banner-title {
+ font-size: 16px;
+ font-weight: 500;
+}
+
+// ── 提示栏 ──
+.alert-bar {
+ margin: 0 12px 8px;
+ padding: 10px 14px;
+ background: #ffffff;
+ border-radius: 10px;
+ display: flex;
+ align-items: center;
+ gap: 8px;
cursor: pointer;
- transition: background-color var(--transition-fast);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
&:active {
- background: var(--color-border-light);
- }
-
- .feature-icon {
- width: 48px;
- height: 48px;
- border-radius: 12px;
- background: var(--color-primary-bg);
- margin: 0 auto 8px;
- }
-
- .feature-label {
- font-size: 14px;
- color: var(--color-text-regular);
+ background: #f7f8fa;
}
}
+
+.alert-text {
+ flex: 1;
+ font-size: 13px;
+ color: var(--color-text-regular);
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+// ── 菜单折叠面板 ──
+.menu-collapse {
+ margin: 0 12px;
+
+ :deep(.van-collapse-item) {
+ margin-bottom: 8px;
+ border-radius: 10px;
+ overflow: hidden;
+ background: #ffffff;
+
+ .van-cell {
+ padding: 14px 16px;
+ background: #ffffff;
+ }
+
+ .van-collapse-item__content {
+ padding: 0 16px 14px;
+ background: #ffffff;
+ }
+ }
+}
+
+// ── 面板标题 ──
+.panel-title {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+
+.panel-accent {
+ width: 4px;
+ height: 18px;
+ background: #1E74FF;
+ border-radius: 2px;
+ flex-shrink: 0;
+}
+
+.panel-label {
+ font-size: 15px;
+ font-weight: 600;
+ color: var(--color-text-primary);
+}
+
+// ── 菜单网格 (4 列) ──
+.menu-grid {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 12px 8px;
+}
+
+.menu-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 6px;
+ cursor: pointer;
+ padding: 4px 0;
+
+ &:active {
+ .menu-icon-box {
+ background: #e3f2fd;
+ }
+ }
+}
+
+.menu-icon-box {
+ width: 50px;
+ height: 50px;
+ border-radius: 12px;
+ background: #f0f6ff;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transition: background-color 0.15s ease;
+}
+
+.menu-label {
+ font-size: 12px;
+ color: var(--color-text-regular);
+ text-align: center;
+ line-height: 1.3;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ max-width: 100%;
+}
+
+// ── 底部安全区 ──
+.safe-bottom {
+ height: 12px;
+}
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index ceed395..4e3d893 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -1,153 +1,415 @@