chen.llin
18 小时以前 08ee0f7a806cd6a492e67352f4c6f18e96c733b9
退出登录
1个文件已修改
59 ■■■■■ 已修改文件
pages/home/home.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;