This commit is contained in:
aaron 2025-03-09 13:53:16 +08:00
parent f59f7937b0
commit 08dc2d2db9
3 changed files with 65 additions and 17 deletions

View File

@ -8,6 +8,7 @@
</div> </div>
<a-menu <a-menu
v-model:selectedKeys="selectedKeys" v-model:selectedKeys="selectedKeys"
v-model:openKeys="openKeys"
theme="dark" theme="dark"
mode="inline" mode="inline"
style="background: #1a1a1a;" style="background: #1a1a1a;"
@ -16,14 +17,21 @@
<template #icon><dashboard-outlined /></template> <template #icon><dashboard-outlined /></template>
<span>仪表盘</span> <span>仪表盘</span>
</a-menu-item> </a-menu-item>
<a-menu-item key="finance" @click="() => $router.push('/finance')">
<a-sub-menu key="finance">
<template #icon><dollar-outlined /></template> <template #icon><dollar-outlined /></template>
<span>财务管理</span> <template #title>财务管理</template>
</a-menu-item>
<a-menu-item key="bank-card" @click="() => $router.push('/bank-card')"> <a-menu-item key="finance-account" @click="() => $router.push('/finance/account')">
<template #icon><credit-card-outlined /></template> <template #icon><wallet-outlined /></template>
<span>银行卡管理</span> <span>账号管理</span>
</a-menu-item> </a-menu-item>
<a-menu-item key="finance-bank-card" @click="() => $router.push('/finance/bank-card')">
<template #icon><credit-card-outlined /></template>
<span>银行卡管理</span>
</a-menu-item>
</a-sub-menu>
</a-menu> </a-menu>
</a-layout-sider> </a-layout-sider>
@ -37,7 +45,12 @@
<home-outlined /> <home-outlined />
</a-breadcrumb-item> </a-breadcrumb-item>
<a-breadcrumb-item>蜂快 · 运营商平台</a-breadcrumb-item> <a-breadcrumb-item>蜂快 · 运营商平台</a-breadcrumb-item>
<a-breadcrumb-item>{{ currentPageTitle }}</a-breadcrumb-item> <a-breadcrumb-item v-if="route.meta.parentTitle">
{{ route.meta.parentTitle }}
</a-breadcrumb-item>
<a-breadcrumb-item>
{{ currentPageTitle }}
</a-breadcrumb-item>
</a-breadcrumb> </a-breadcrumb>
</div> </div>
@ -81,7 +94,8 @@ import {
DashboardOutlined, DashboardOutlined,
HomeOutlined, HomeOutlined,
DollarOutlined, DollarOutlined,
CreditCardOutlined CreditCardOutlined,
WalletOutlined
} from '@ant-design/icons-vue'; } from '@ant-design/icons-vue';
export default { export default {
@ -90,7 +104,8 @@ export default {
DashboardOutlined, DashboardOutlined,
HomeOutlined, HomeOutlined,
DollarOutlined, DollarOutlined,
CreditCardOutlined CreditCardOutlined,
WalletOutlined
}, },
setup() { setup() {
const store = useStore(); const store = useStore();
@ -104,6 +119,7 @@ export default {
const userInfo = computed(() => store.getters.userInfo); const userInfo = computed(() => store.getters.userInfo);
const selectedKeys = ref([]); const selectedKeys = ref([]);
const openKeys = ref(['finance']);
// //
const currentPageTitle = computed(() => { const currentPageTitle = computed(() => {
@ -112,8 +128,16 @@ export default {
// //
watch(() => route.path, (path) => { watch(() => route.path, (path) => {
const key = path.split('/')[1] || 'dashboard'; const pathParts = path.split('/');
selectedKeys.value = [key]; if (pathParts.length >= 3 && pathParts[1] === 'finance') {
//
selectedKeys.value = [`finance-${pathParts[2]}`];
openKeys.value = ['finance'];
} else {
//
const key = pathParts[1] || 'dashboard';
selectedKeys.value = [key];
}
}, { immediate: true }); }, { immediate: true });
// //
@ -131,9 +155,11 @@ export default {
return { return {
collapsed, collapsed,
selectedKeys, selectedKeys,
openKeys,
userInfo, userInfo,
handleLogout, handleLogout,
currentPageTitle currentPageTitle,
route
}; };
} }
}; };

View File

@ -1,5 +1,15 @@
import { createRouter, createWebHistory } from 'vue-router'; import { createRouter, createWebHistory } from 'vue-router';
import { h } from 'vue';
import AdminLayout from '../layouts/AdminLayout.vue'; import AdminLayout from '../layouts/AdminLayout.vue';
import { defineComponent } from 'vue';
// 创建一个空的RouterView组件作为父级路由的容器
const RouterView = defineComponent({
name: 'RouterView',
setup() {
return () => h('router-view');
}
});
const routes = [ const routes = [
{ {
@ -15,15 +25,27 @@ const routes = [
}, },
{ {
path: 'finance', path: 'finance',
name: 'Finance', redirect: '/finance/account',
meta: { title: '财务管理', icon: 'money' },
},
{
path: 'finance/account',
name: 'FinanceAccount',
component: () => import('../views/Finance.vue'), component: () => import('../views/Finance.vue'),
meta: { title: '财务管理', icon: 'money' } meta: { title: '账号管理', parentTitle: '财务管理', icon: 'wallet' }
},
{
path: 'finance/bank-card',
name: 'FinanceBankCard',
component: () => import('../views/BankCard.vue'),
meta: { title: '银行卡管理', parentTitle: '财务管理', icon: 'credit-card' }
}, },
{ {
path: 'bank-card', path: 'bank-card',
name: 'BankCard', name: 'BankCard',
component: () => import('../views/BankCard.vue'), component: () => import('../views/BankCard.vue'),
meta: { title: '银行卡管理', icon: 'credit-card' } meta: { title: '银行卡管理', icon: 'credit-card' },
hidden: true
} }
] ]
}, },

View File

@ -298,7 +298,7 @@ export default {
// //
const goToBankCardPage = () => { const goToBankCardPage = () => {
router.push('/bank-card'); router.push('/finance/bank-card');
if (withdrawalModalVisible.value) { if (withdrawalModalVisible.value) {
withdrawalModalVisible.value = false; withdrawalModalVisible.value = false;
} }