Files
thebet365/apps/player/src/views/desktop/DesktopAnnouncementsHubShell.vue
Mars 7f563326d8 feat(player+api): 桌面端钱包/注单栏重构,首页快速下注与移动端体验优化
桌面端:
- 新增 DesktopWalletPageHeader 统一钱包子导航,移除重复大标题
- 重构我的余额页布局(居中窄卡片 + 余额/统计/账户设置)
- 新增 DesktopBetSlipRail 可折叠注单侧栏,优化 BetSlipPanel 交互
- 首页 upcoming 赛事卡片支持胜平负/让球/大小球快速下注
- 优化 DesktopShell 布局、3D 轮播、各账户/消息/充值页面样式

移动端:
- 重构 MobileWalletView 钱包页 UI
- 修复 MarketSelectionsPanel 下注区黑色背景问题
- 新增 PageBackButton 与 useSmartBack 智能返回逻辑
- 优化公告/消息/个人中心等详情页导航

API:
- listUpcomingPublished 支持 includeMarkets,返回首页卡片所需核心玩法
2026-06-30 16:11:27 +08:00

46 lines
1001 B
Vue

<script setup lang="ts">
import { computed } from 'vue';
import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
import AnnouncementListView from '../AnnouncementListView.vue';
const route = useRoute();
const { t } = useI18n();
const isDetailRoute = computed(
() => route.path.startsWith('/announcements/') && Boolean(route.params.id),
);
</script>
<template>
<div class="desktop-layout-hub desktop-hub-page">
<aside class="desktop-hub-left">
<AnnouncementListView embedded />
</aside>
<main class="desktop-hub-right">
<slot v-if="isDetailRoute" />
<div v-else class="hub-placeholder">
{{ t('announcements.select_hint') }}
</div>
</main>
</div>
</template>
<style scoped>
.desktop-hub-page {
flex: 1;
min-height: 0;
height: 100%;
}
.hub-placeholder {
display: flex;
align-items: center;
justify-content: center;
min-height: 280px;
color: var(--text-muted);
font-size: 14px;
font-weight: 600;
}
</style>