feat: split admin dashboard, improve match ops, and player closed-match UX

Admin: add match/player overview sub-nav; refine settlement flow and league
match management UI; improve action button enabled/disabled styles; enhance
logo upload and outright odds sync.

API: expose matchPhase/bettingOpen for closed matches; league publish guards;
settlement preview with auto score save; outright team auto-sync.

Player: watermark for closed/settled states; keep match and bet details visible;
remove default login credentials.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-10 13:00:14 +08:00
parent 6124313369
commit 03f54ca689
43 changed files with 2787 additions and 519 deletions

View File

@@ -11,7 +11,20 @@ const router = createRouter({
component: () => import('../layouts/ManageLayout.vue'),
meta: { auth: true },
children: [
{ path: '', component: () => import('../views/HomeEntry.vue') },
{
path: '',
component: () => import('../views/HomeEntry.vue'),
children: [
{
path: '',
component: () => import('../views/dashboard/DashboardMatches.vue'),
},
{
path: 'dashboard/players',
component: () => import('../views/dashboard/DashboardPlayers.vue'),
},
],
},
{
path: 'users',
component: () => import('../views/AgentManager.vue'),
@@ -140,6 +153,10 @@ router.beforeEach(async (to) => {
return '/';
}
if (to.path.startsWith('/dashboard/') && !auth.isAdmin.value) {
return '/';
}
if (to.meta.agentOnly && !auth.isAgent.value) {
return '/';
}