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/i/:code', name: 'mobile-invite-register', redirect: to => ({ path: '/m/register', query: { invite_code: String(to.params.code || ''), }, }), }, { 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/invitations', name: 'mobile-invitations', component: () => import('@/features/invitation/views/UserInvitationView.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 }, }, ]