From 08ee0f7a806cd6a492e67352f4c6f18e96c733b9 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期日, 18 一月 2026 08:36:14 +0800
Subject: [PATCH] 退出登录

---
 pages/home/home.vue |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 3 deletions(-)

diff --git a/pages/home/home.vue b/pages/home/home.vue
index d5d955a..5ad6c58 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -62,7 +62,7 @@
 						<view class="divider-line"></view>
 					</view>
 					<view class="menu-grid-flat">
-						<view class="menu-item-flat" v-for="(item, index) in uncategorizedMenus" :key="item.name" 
+						<view class="menu-item-flat" v-for="(item, index) in uncategorizedMenus.filter(item => !excludeFromCategory.includes(item.name))" :key="item.name" 
 							@click="navigateTo(item)" :style="{animationDelay: (index * 0.1) + 's'}">
 							<view class="menu-card-flat" :class="'card-flat-' + item.color">
 								<view class="card-flat-icon">
@@ -79,12 +79,30 @@
 						</view>
 					</view>
 				</view>
+				
+				<!-- 閫�鍑虹櫥褰曟寜閽� - 濮嬬粓鏄剧ず鍦ㄥ簳閮� -->
+				<view class="logout-section" v-if="logoutMenu">
+					<view class="menu-item-flat" @click="navigateTo(logoutMenu)">
+						<view class="menu-card-flat card-flat-grey">
+							<view class="card-flat-icon">
+								<uni-icons :type="getIconType(logoutMenu)" size="28" color="#ffffff"></uni-icons>
+							</view>
+							<view class="card-flat-info">
+								<text class="card-flat-title">{{logoutMenu.title}}</text>
+								<text class="card-flat-desc">{{logoutMenu.name}}</text>
+							</view>
+							<view class="card-flat-arrow">
+								<uni-icons type="right" size="16" color="rgba(255,255,255,0.6)"></uni-icons>
+							</view>
+						</view>
+					</view>
+				</view>
 			</template>
 			
 			<!-- 骞抽摵妯″紡锛氱洿鎺ユ樉绀烘墍鏈夎彍鍗� -->
 			<template v-else>
 				<view class="menu-grid-flat">
-					<view class="menu-item-flat" v-for="(item, index) in elements" :key="item.name" 
+					<view class="menu-item-flat" v-for="(item, index) in elements.filter(item => item.name !== 'logOut')" :key="item.name" 
 						@click="navigateTo(item)" :style="{animationDelay: (index * 0.1) + 's'}">
 						<view class="menu-card-flat" :class="'card-flat-' + item.color">
 							<view class="card-flat-icon">
@@ -93,6 +111,24 @@
 							<view class="card-flat-info">
 								<text class="card-flat-title">{{item.title}}</text>
 								<text class="card-flat-desc">{{item.name}}</text>
+							</view>
+							<view class="card-flat-arrow">
+								<uni-icons type="right" size="16" color="rgba(255,255,255,0.6)"></uni-icons>
+							</view>
+						</view>
+					</view>
+				</view>
+				
+				<!-- 閫�鍑虹櫥褰曟寜閽� - 濮嬬粓鏄剧ず鍦ㄥ簳閮� -->
+				<view class="logout-section" v-if="logoutMenu">
+					<view class="menu-item-flat" @click="navigateTo(logoutMenu)">
+						<view class="menu-card-flat card-flat-grey">
+							<view class="card-flat-icon">
+								<uni-icons :type="getIconType(logoutMenu)" size="28" color="#ffffff"></uni-icons>
+							</view>
+							<view class="card-flat-info">
+								<text class="card-flat-title">{{logoutMenu.title}}</text>
+								<text class="card-flat-desc">{{logoutMenu.name}}</text>
 							</view>
 							<view class="card-flat-arrow">
 								<uni-icons type="right" size="16" color="rgba(255,255,255,0.6)"></uni-icons>
@@ -292,8 +328,18 @@
 				});
 				
 				return this.elements.filter(item => 
-					!allCategorizedItems.has(item.name) || this.excludeFromCategory.includes(item.name)
+					(!allCategorizedItems.has(item.name) || this.excludeFromCategory.includes(item.name)) && item.name !== 'logOut'
 				);
+			},
+			// 閫�鍑虹櫥褰曡彍鍗�
+			logoutMenu() {
+				return this.elements.find(item => item.name === 'logOut') || {
+					title: '閫�鍑虹櫥褰�',
+					name: 'logOut',
+					color: 'grey',
+					cuIcon: 'exit',
+					url: '/login/logOut'
+				};
 			}
 		},
 		onShow() {
@@ -817,6 +863,13 @@
 	.card-flat-yellow { background: linear-gradient(135deg, #fbbd08 0%, #f37b1d 100%); }
 	.card-flat-grey { background: linear-gradient(135deg, #8799a3 0%, #606266 100%); }
 	
+	/* 閫�鍑虹櫥褰曞尯鍩� */
+	.logout-section {
+		margin-top: 40rpx;
+		padding-top: 20rpx;
+		border-top: 2rpx solid #e4e7ed;
+	}
+	
 	/* 搴曢儴 */
 	.footer {
 		padding: 40rpx 0 60rpx;

--
Gitblit v1.9.1