chore: 更新路由配置,使用 features 架构路径
This commit is contained in:
@@ -4,60 +4,60 @@ export const accountRoutes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: '/login',
|
||||
name: 'login',
|
||||
component: () => import('@/views/account/LoginView.vue'),
|
||||
component: () => import('@/features/auth/views/LoginView.vue'),
|
||||
},
|
||||
{
|
||||
path: '/orders/create',
|
||||
name: 'order-create',
|
||||
component: () => import('@/views/account/OrderCreateView.vue'),
|
||||
component: () => import('@/features/orders/views/OrderCreateView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/profile',
|
||||
name: 'profile',
|
||||
component: () => import('@/views/account/ProfileView.vue'),
|
||||
component: () => import('@/features/auth/views/ProfileView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/orders',
|
||||
name: 'orders',
|
||||
component: () => import('@/views/account/OrdersView.vue'),
|
||||
component: () => import('@/features/orders/views/OrdersView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/orders/:id',
|
||||
name: 'order-detail',
|
||||
component: () => import('@/views/account/OrderDetailView.vue'),
|
||||
component: () => import('@/features/orders/views/OrderDetailView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/wallet',
|
||||
name: 'wallet',
|
||||
component: () => import('@/views/account/WalletView.vue'),
|
||||
component: () => import('@/features/wallet/views/WalletView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/notifications',
|
||||
name: 'notifications',
|
||||
component: () => import('@/views/account/NotificationsView.vue'),
|
||||
component: () => import('@/features/auth/views/NotificationsView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/realname',
|
||||
name: 'realname',
|
||||
component: () => import('@/views/account/RealnameView.vue'),
|
||||
component: () => import('@/features/auth/views/RealnameView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/messages',
|
||||
name: 'messages',
|
||||
component: () => import('@/views/account/MessagesView.vue'),
|
||||
component: () => import('@/features/chats/views/MessagesView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/messages/:id',
|
||||
name: 'chat',
|
||||
component: () => import('@/views/account/ChatView.vue'),
|
||||
component: () => import('@/features/chats/views/ChatView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
]
|
||||
|
||||
@@ -7,91 +7,91 @@ export const adminRoutes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: '/admin/login',
|
||||
name: 'admin-login',
|
||||
component: () => import('@/views/admin/AdminLoginView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminLoginView.vue'),
|
||||
meta: { layout: 'blank' },
|
||||
},
|
||||
{
|
||||
path: '/admin/dashboard',
|
||||
name: 'admin-dashboard',
|
||||
component: () => import('@/views/admin/AdminDashboardView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminDashboardView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/users',
|
||||
name: 'admin-users',
|
||||
component: () => import('@/views/admin/AdminUsersView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminUsersView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/orders',
|
||||
name: 'admin-orders',
|
||||
component: () => import('@/views/admin/AdminOrdersView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminOrdersView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/orders/:id',
|
||||
name: 'admin-order-detail',
|
||||
component: () => import('@/views/admin/AdminOrderDetailView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminOrderDetailView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/listings',
|
||||
name: 'admin-listings',
|
||||
component: () => import('@/views/admin/AdminListingsView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminListingsView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/listings/:id',
|
||||
name: 'admin-listing-detail',
|
||||
component: () => import('@/views/admin/AdminListingDetailView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminListingDetailView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/listings/review',
|
||||
name: 'admin-listing-review',
|
||||
component: () => import('@/views/admin/AdminListingReviewView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminListingReviewView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/disputes',
|
||||
name: 'admin-disputes',
|
||||
component: () => import('@/views/admin/AdminDisputesView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminDisputesView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/chats',
|
||||
name: 'admin-chats',
|
||||
component: () => import('@/views/admin/AdminChatsView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminChatsView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/wallet-ledger',
|
||||
name: 'admin-wallet-ledger',
|
||||
component: () => import('@/views/admin/AdminWalletLedgerView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminWalletLedgerView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/system-configs',
|
||||
name: 'admin-system-configs',
|
||||
component: () => import('@/views/admin/AdminSystemConfigsView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminSystemConfigsView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/audit-logs',
|
||||
name: 'admin-audit-logs',
|
||||
component: () => import('@/views/admin/AdminAuditLogsView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminAuditLogsView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/admin-users',
|
||||
name: 'admin-admin-users',
|
||||
component: () => import('@/views/admin/AdminMgrUsersView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminMgrUsersView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
{
|
||||
path: '/admin/roles',
|
||||
name: 'admin-roles',
|
||||
component: () => import('@/views/admin/AdminRolesView.vue'),
|
||||
component: () => import('@/features/admin/views/AdminRolesView.vue'),
|
||||
meta: adminMeta,
|
||||
},
|
||||
]
|
||||
|
||||
@@ -2,7 +2,7 @@ import { createRouter, createWebHistory } from 'vue-router'
|
||||
|
||||
import { useAdminSessionStore } from '@/stores/adminSession'
|
||||
import { useSessionStore } from '@/stores/session'
|
||||
import { getAccessToken, getLoginPath } from '@/utils/authStorage'
|
||||
import { getAccessToken, getLoginPath } from '@/shared/utils/authStorage'
|
||||
import { accountRoutes } from './accountRoutes'
|
||||
import { adminRoutes } from './adminRoutes'
|
||||
import { isMobileHost, isMobileDevice, getMobilePath, getPcPath } from './mobileHost'
|
||||
|
||||
@@ -4,67 +4,67 @@ export const mobileRoutes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: '/m',
|
||||
name: 'mobile-home',
|
||||
component: () => import('@/views/mobile/MobileHomeView.vue'),
|
||||
component: () => import('@/features/listings/views/MobileHomeView.vue'),
|
||||
meta: { layout: 'blank' },
|
||||
},
|
||||
{
|
||||
path: '/m/listings',
|
||||
name: 'mobile-listings',
|
||||
component: () => import('@/views/mobile/MobileHomeView.vue'),
|
||||
component: () => import('@/features/listings/views/MobileHomeView.vue'),
|
||||
meta: { layout: 'blank' },
|
||||
},
|
||||
{
|
||||
path: '/m/listings/:id',
|
||||
name: 'mobile-listing-detail',
|
||||
component: () => import('@/views/mobile/MobileListingDetailView.vue'),
|
||||
component: () => import('@/features/listings/views/MobileListingDetailView.vue'),
|
||||
meta: { layout: 'blank' },
|
||||
},
|
||||
{
|
||||
path: '/m/login',
|
||||
name: 'mobile-login',
|
||||
component: () => import('@/views/mobile/MobileLoginView.vue'),
|
||||
component: () => import('@/features/auth/views/MobileLoginView.vue'),
|
||||
meta: { layout: 'blank' },
|
||||
},
|
||||
{
|
||||
path: '/m/register',
|
||||
name: 'mobile-register',
|
||||
component: () => import('@/views/mobile/MobileRegisterView.vue'),
|
||||
component: () => import('@/features/auth/views/MobileRegisterView.vue'),
|
||||
meta: { layout: 'blank' },
|
||||
},
|
||||
{
|
||||
path: '/m/messages',
|
||||
name: 'mobile-messages',
|
||||
component: () => import('@/views/mobile/MobileMessagesView.vue'),
|
||||
component: () => import('@/features/chats/views/MobileMessagesView.vue'),
|
||||
meta: { layout: 'blank', requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/m/chats/:id',
|
||||
name: 'mobile-chat',
|
||||
component: () => import('@/views/mobile/MobileChatView.vue'),
|
||||
component: () => import('@/features/chats/views/MobileChatView.vue'),
|
||||
meta: { layout: 'blank', requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/m/realname',
|
||||
name: 'mobile-realname',
|
||||
component: () => import('@/views/mobile/MobileRealnameView.vue'),
|
||||
component: () => import('@/features/auth/views/MobileRealnameView.vue'),
|
||||
meta: { layout: 'blank', requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/m/profile',
|
||||
name: 'mobile-profile',
|
||||
component: () => import('@/views/mobile/MobileProfileView.vue'),
|
||||
component: () => import('@/features/auth/views/MobileProfileView.vue'),
|
||||
meta: { layout: 'blank', requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/m/orders',
|
||||
name: 'mobile-orders',
|
||||
component: () => import('@/views/mobile/MobileOrdersView.vue'),
|
||||
component: () => import('@/features/orders/views/MobileOrdersView.vue'),
|
||||
meta: { layout: 'blank', requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/m/orders/:id',
|
||||
name: 'mobile-order-detail',
|
||||
component: () => import('@/views/mobile/MobileOrderDetailView.vue'),
|
||||
component: () => import('@/features/orders/views/MobileOrderDetailView.vue'),
|
||||
meta: { layout: 'blank', requiresAuth: true },
|
||||
},
|
||||
{
|
||||
|
||||
@@ -4,11 +4,11 @@ export const publicRoutes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: '/',
|
||||
name: 'home',
|
||||
component: () => import('@/views/public/HomeView.vue'),
|
||||
component: () => import('@/features/listings/views/HomeView.vue'),
|
||||
},
|
||||
{
|
||||
path: '/listings/:id',
|
||||
name: 'listing-detail',
|
||||
component: () => import('@/views/public/ListingDetailView.vue'),
|
||||
component: () => import('@/features/listings/views/ListingDetailView.vue'),
|
||||
},
|
||||
]
|
||||
|
||||
@@ -4,25 +4,25 @@ export const sellerRoutes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: '/seller/listings',
|
||||
name: 'seller-listings',
|
||||
component: () => import('@/views/seller/SellerListingsView.vue'),
|
||||
component: () => import('@/features/seller/views/SellerListingsView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/seller/listings/create',
|
||||
name: 'seller-listing-create',
|
||||
component: () => import('@/views/seller/SellerListingCreateView.vue'),
|
||||
component: () => import('@/features/seller/views/SellerListingCreateView.vue'),
|
||||
meta: { requiresAuth: true, requiresRealname: true },
|
||||
},
|
||||
{
|
||||
path: '/seller/handoffs',
|
||||
name: 'seller-handoffs',
|
||||
component: () => import('@/views/seller/SellerHandoffsView.vue'),
|
||||
component: () => import('@/features/seller/views/SellerHandoffsView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
{
|
||||
path: '/seller/earnings',
|
||||
name: 'seller-earnings',
|
||||
component: () => import('@/views/seller/SellerEarningsView.vue'),
|
||||
component: () => import('@/features/seller/views/SellerEarningsView.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
},
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user