160 lines
5.2 KiB
TypeScript
160 lines
5.2 KiB
TypeScript
import type { RouteRecordRaw } from 'vue-router'
|
|
|
|
export const mobileRoutes: RouteRecordRaw[] = [
|
|
{
|
|
path: '/m',
|
|
name: 'mobile-home',
|
|
component: () => import('@/features/listings/views/MobileHomeView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
path: '/m/listings',
|
|
name: 'mobile-listings',
|
|
component: () => import('@/features/listings/views/MobileHomeView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
path: '/m/listings/collections',
|
|
name: 'mobile-listing-collections',
|
|
component: () => import('@/features/listings/views/ListingCollectionsView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
path: '/m/listings/:id',
|
|
name: 'mobile-listing-detail',
|
|
component: () => import('@/features/listings/views/MobileListingDetailView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
path: '/m/add-home-guide',
|
|
name: 'mobile-add-home-guide',
|
|
component: () => import('@/features/guide/views/MobileAddHomeGuideView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
path: '/m/login',
|
|
name: 'mobile-login',
|
|
component: () => import('@/features/auth/views/MobileLoginView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
path: '/m/register',
|
|
name: 'mobile-register',
|
|
component: () => import('@/features/auth/views/MobileRegisterView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
path: '/m/messages',
|
|
name: 'mobile-messages',
|
|
component: () => import('@/features/chats/views/MobileMessagesView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/announcements',
|
|
name: 'mobile-announcements',
|
|
component: () => import('@/features/announcement/views/MobileAnnouncementsView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
path: '/m/announcements/:id',
|
|
name: 'mobile-announcement-detail',
|
|
component: () => import('@/features/announcement/views/MobileAnnouncementDetailView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
path: '/m/chats/:id',
|
|
name: 'mobile-chat',
|
|
component: () => import('@/features/chats/views/MobileChatView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/realname',
|
|
name: 'mobile-realname',
|
|
component: () => import('@/features/auth/views/MobileRealnameView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/profile',
|
|
name: 'mobile-profile',
|
|
component: () => import('@/features/auth/views/MobileProfileView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/notifications',
|
|
name: 'mobile-notifications',
|
|
component: () => import('@/features/auth/views/MobileNotificationsView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/wallet/withdrawal',
|
|
name: 'mobile-withdrawal',
|
|
component: () => import('@/features/wallet/views/MobileWithdrawalView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/crash',
|
|
name: 'mobile-crash-list',
|
|
component: () => import('@/features/mohong/views/MobileMohongListView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
{
|
|
// 撞车订单列表统一到底栏「订单」页(与租赁订单混排)
|
|
path: '/m/crash/orders',
|
|
name: 'mobile-crash-orders',
|
|
redirect: '/m/orders',
|
|
},
|
|
{
|
|
path: '/m/crash/orders/:id',
|
|
name: 'mobile-crash-order-detail',
|
|
component: () => import('@/features/mohong/views/MobileMohongOrderDetailView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/crash/:id',
|
|
name: 'mobile-crash-detail',
|
|
component: () => import('@/features/mohong/views/MobileMohongDetailView.vue'),
|
|
meta: { layout: 'blank' },
|
|
},
|
|
// 旧路径兼容
|
|
{ path: '/m/mohong', redirect: '/m/crash' },
|
|
{ path: '/m/mohong/orders', redirect: '/m/crash/orders' },
|
|
{ path: '/m/mohong/orders/:id', redirect: to => `/m/crash/orders/${to.params.id}` },
|
|
{ path: '/m/mohong/:id', redirect: to => `/m/crash/${to.params.id}` },
|
|
{
|
|
path: '/m/orders',
|
|
name: 'mobile-orders',
|
|
component: () => import('@/features/orders/views/MobileOrdersView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/orders/:id',
|
|
name: 'mobile-order-detail',
|
|
component: () => import('@/features/orders/views/MobileOrderDetailView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/seller/listings/create',
|
|
name: 'mobile-seller-listing-create',
|
|
component: () => import('@/features/seller/views/MobileSellerListingCreateView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true, requiresRealname: true },
|
|
},
|
|
{
|
|
path: '/m/seller/listings/:id/edit',
|
|
name: 'mobile-seller-listing-edit',
|
|
component: () => import('@/features/seller/views/MobileSellerListingCreateView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true, requiresRealname: true },
|
|
},
|
|
{
|
|
path: '/m/seller/listings/:id',
|
|
name: 'mobile-seller-listing-detail',
|
|
component: () => import('@/features/seller/views/MobileSellerListingDetailView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
{
|
|
path: '/m/seller/listings',
|
|
name: 'mobile-seller-listings',
|
|
component: () => import('@/features/seller/views/MobileSellerListingsView.vue'),
|
|
meta: { layout: 'blank', requiresAuth: true },
|
|
},
|
|
]
|