From 93de43267e1663031fe5dc2f5ae40d128a182a76 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 18 六月 2026 17:24:51 +0800
Subject: [PATCH] 新增智能电表、空调管理

---
 h5/pages/customer/index.vue |  100 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 64 insertions(+), 36 deletions(-)

diff --git a/h5/pages/customer/index.vue b/h5/pages/customer/index.vue
index 6948e8a..125a7c5 100644
--- a/h5/pages/customer/index.vue
+++ b/h5/pages/customer/index.vue
@@ -1,11 +1,19 @@
 <template>
   <view class="cu-page cu-page--home">
     <view class="cu-hero">
-      <view class="cu-hero__greet">
-        <view class="cu-avatar">{{ customerInitial }}</view>
-        <view>
-          <view class="cu-hero__hi">{{ greeting }}</view>
-          <view class="cu-hero__name">{{ home.customerName || '鍟嗘埛鐢ㄦ埛' }}</view>
+      <view class="cu-profile-bar">
+        <view class="cu-profile-bar__info">
+          <view class="cu-avatar">{{ customerInitial }}</view>
+          <view>
+            <view class="cu-hero__hi">{{ greeting }}</view>
+            <view class="cu-hero__name">{{ displayName }}</view>
+          </view>
+        </view>
+        <view class="cu-profile-actions">
+          <view class="cu-profile-action cu-profile-action--pill" @click="logout">
+            <u-icon name="minus-circle-fill" color="#ffffff" size="18" />
+            <text class="cu-profile-action__text">閫�鍑�</text>
+          </view>
         </view>
       </view>
     </view>
@@ -15,43 +23,61 @@
         <u-swiper :list="banners" keyName="imageUrl" height="160" radius="12" indicator indicatorMode="dot" />
       </view>
 
-      <view class="cu-section-title">涓撳睘鏈嶅姟</view>
-      <view class="cu-service-grid">
-        <view class="cu-service-item cu-service-item--electric" @click="go('/pages/customer/electricity/list')">
-          <view class="cu-service-item__icon">鈿�</view>
-          <text class="cu-service-item__label">浜ょ數璐�</text>
-          <text class="cu-service-item__desc">鐢佃〃 / 绌鸿皟鍏呭��</text>
+      <view class="cu-service-panel">
+        <view class="cu-section-head">
+          <view class="cu-section-head__bar" />
+          <text class="cu-section-head__title">涓撳睘鏈嶅姟</text>
         </view>
-        <view class="cu-service-item cu-service-item--contract" @click="go('/pages/customer/contract/list')">
-          <view class="cu-service-item__icon">
-            <u-icon name="file-text-fill" color="#40a9ff" size="24" />
+        <view class="cu-service-grid">
+          <view class="cu-service-card cu-service-card--electric" @click="go('/pages/customer/electricity/list')">
+            <view class="cu-service-card__top">
+              <view class="cu-service-card__icon">
+                <u-icon name="coupon-fill" color="#fa8c16" size="26" />
+              </view>
+              <text class="cu-service-card__arrow">鈥�</text>
+            </view>
+            <text class="cu-service-card__label">浜ょ數璐�</text>
+            <text class="cu-service-card__desc">鐢佃〃 / 绌鸿皟鍏呭��</text>
           </view>
-          <text class="cu-service-item__label">鏌ュ悎鍚�</text>
-          <text class="cu-service-item__desc">绉熻祦鍚堝悓鏌ヨ</text>
+          <view class="cu-service-card cu-service-card--contract" @click="go('/pages/customer/contract/list')">
+            <view class="cu-service-card__top">
+              <view class="cu-service-card__icon">
+                <u-icon name="file-text-fill" color="#40a9ff" size="26" />
+              </view>
+              <text class="cu-service-card__arrow">鈥�</text>
+            </view>
+            <text class="cu-service-card__label">鏌ュ悎鍚�</text>
+            <text class="cu-service-card__desc">绉熻祦鍚堝悓鏌ヨ</text>
+          </view>
+          <view class="cu-service-card cu-service-card--bill" @click="go('/pages/customer/bill/list')">
+            <view class="cu-service-card__top">
+              <view class="cu-service-card__icon">
+                <u-icon name="red-packet-fill" color="#597ef7" size="26" />
+              </view>
+              <text class="cu-service-card__arrow">鈥�</text>
+            </view>
+            <text class="cu-service-card__label">鏌ヨ处鍗�</text>
+            <text class="cu-service-card__desc">鍦ㄧ嚎缂磋垂</text>
+          </view>
+          <view class="cu-service-card cu-service-card--record" @click="go('/pages/customer/recharge/record')">
+            <view class="cu-service-card__top">
+              <view class="cu-service-card__icon">
+                <u-icon name="list" color="#9254de" size="26" />
+              </view>
+              <text class="cu-service-card__arrow">鈥�</text>
+            </view>
+            <text class="cu-service-card__label">鍏呭�艰褰�</text>
+            <text class="cu-service-card__desc">鍘嗗彶鍏呭�兼槑缁�</text>
+          </view>
         </view>
-        <view class="cu-service-item cu-service-item--bill" @click="go('/pages/customer/bill/list')">
-          <view class="cu-service-item__icon">馃挸</view>
-          <text class="cu-service-item__label">鏌ヨ处鍗�</text>
-          <text class="cu-service-item__desc">鍦ㄧ嚎缂磋垂</text>
-        </view>
-        <view class="cu-service-item cu-service-item--record" @click="go('/pages/customer/recharge/record')">
-          <view class="cu-service-item__icon">馃搵</view>
-          <text class="cu-service-item__label">鍏呭�艰褰�</text>
-          <text class="cu-service-item__desc">鍘嗗彶鍏呭�兼槑缁�</text>
-        </view>
-      </view>
-
-      <view class="cu-footer-bar">
-        <view class="cu-footer-btn cu-footer-btn--primary" @click="onSwitchRole">鍒囨崲瑙掕壊</view>
-        <view class="cu-footer-btn" @click="logout">閫�鍑虹櫥褰�</view>
       </view>
     </view>
   </view>
 </template>
 
 <script>
-import { customerBanners, customerHome } from '@/api'
-import { switchRole, goRoleSelect } from '@/utils/roleSwitch.js'
+import { customerBanners, customerHome, customerLogout } from '@/api'
+import { switchRole } from '@/utils/roleSwitch.js'
 export default {
   data () {
     return { banners: [], home: {} }
@@ -63,8 +89,11 @@
       if (h < 18) return '涓嬪崍濂�'
       return '鏅氫笂濂�'
     },
+    displayName () {
+      return this.home.displayName || this.home.customerName || '鍟嗘埛鐢ㄦ埛'
+    },
     customerInitial () {
-      const name = (this.home.customerName || '鍟�').trim()
+      const name = (this.home.memberName || this.home.customerName || '鍟�').trim()
       return name.charAt(0)
     }
   },
@@ -76,8 +105,7 @@
   },
   methods: {
     go (url) { uni.navigateTo({ url }) },
-    onSwitchRole () { switchRole() },
-    logout () { goRoleSelect() }
+    logout () { switchRole(customerLogout) }
   }
 }
 </script>

--
Gitblit v1.9.3