导入 AKSRT 主题开发源码
This commit is contained in:
1 parent
9681dd3d48
commit
1268a55dd0
595 files changed
+127705
No files matched your search
@@ -0,0 +1,19 @@
|
||||
export const corePageLoaders = {
|
||||
SchemaPage: () => import('@/pages/SchemaPage.vue'),
|
||||
DeferredPage: () => import('@/components/DeferredPage.vue'),
|
||||
FloatingButtonsSettings: () => import('@/pages/content/FloatingButtonsSettings.vue'),
|
||||
FooterTabbarSettings: () => import('@/pages/content/FooterTabbarSettings.vue'),
|
||||
FooterSettings: () => import('@/pages/content/FooterSettings.vue'),
|
||||
HomepageSettings: () => import('@/pages/content/HomepageSettings.vue'),
|
||||
PostPageSettings: () => import('@/pages/post-list/PostPageSettings.vue'),
|
||||
CommentSettings: () => import('@/pages/post-list/CommentSettings.vue'),
|
||||
CommentPermissions: () => import('@/pages/permissions/CommentPermissions.vue'),
|
||||
PermissionsCapabilities: () => import('@/pages/permissions/PermissionsCapabilities.vue'),
|
||||
AttachmentPermissions: () => import('@/pages/permissions/AttachmentPermissions.vue'),
|
||||
DownloadPermissions: () => import('@/pages/permissions/DownloadPermissions.vue'),
|
||||
CmsCredits: () => import('@/pages/CmsCredits.vue'),
|
||||
ResourceDownload: () => import('@/pages/ResourceDownload.vue'),
|
||||
ThemeInfoPage: () => import('@/pages/theme/ThemeInfoPage.vue'),
|
||||
ThemeAuthorizationPage: () => import('@/pages/theme/ThemeAuthorizationPage.vue'),
|
||||
DocsPage: () => import('@/pages/docs/DocsPage.vue'),
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export const extensionsPageLoaders = {
|
||||
ExtensionTools: () => import('@/pages/extensions/ExtensionTools.vue'),
|
||||
ExtensionSecurity: () => import('@/pages/extensions/ExtensionSecurity.vue'),
|
||||
ExtensionAI: () => import('@/pages/extensions/ExtensionAI.vue'),
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
export const forumPageLoaders = {
|
||||
ForumDashboard: () => import('@/pages/forum/ForumDashboard.vue'),
|
||||
ForumBoards: () => import('@/pages/forum/ForumBoards.vue'),
|
||||
ForumTopics: () => import('@/pages/forum/ForumTopics.vue'),
|
||||
ForumModerators: () => import('@/pages/forum/ForumModerators.vue'),
|
||||
ForumModeratorApplications: () => import('@/pages/forum/ForumModeratorApplications.vue'),
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { corePageLoaders } from './core'
|
||||
import { usersPageLoaders } from './users'
|
||||
import { paymentPageLoaders } from './payment'
|
||||
import { toolsPageLoaders } from './tools'
|
||||
import { shopPageLoaders } from './shop'
|
||||
import { forumPageLoaders } from './forum'
|
||||
import { extensionsPageLoaders } from './extensions'
|
||||
|
||||
export const componentLoaders = {
|
||||
...corePageLoaders,
|
||||
...usersPageLoaders,
|
||||
...paymentPageLoaders,
|
||||
...toolsPageLoaders,
|
||||
...shopPageLoaders,
|
||||
...forumPageLoaders,
|
||||
...extensionsPageLoaders,
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
export const paymentPageLoaders = {
|
||||
PaymentRevenue: () => import('@/pages/payment/PaymentRevenue.vue'),
|
||||
PaymentGateway: () => import('@/pages/payment/PaymentGateway.vue'),
|
||||
PaymentChargeCard: () => import('@/pages/payment/PaymentChargeCard.vue'),
|
||||
PaymentRebate: () => import('@/pages/payment/PaymentRebate.vue'),
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
export const shopPageLoaders = {
|
||||
ShopDashboard: () => import('@/pages/shop/ShopDashboard.vue'),
|
||||
ShopProducts: () => import('@/pages/shop/ShopProducts.vue'),
|
||||
ShopOrders: () => import('@/pages/shop/ShopOrders.vue'),
|
||||
ShopWithdrawals: () => import('@/pages/shop/ShopWithdrawals.vue'),
|
||||
ShopCoupons: () => import('@/pages/shop/ShopCoupons.vue'),
|
||||
ShopAfterSale: () => import('@/pages/shop/ShopAfterSale.vue'),
|
||||
ShopShipping: () => import('@/pages/shop/ShopShipping.vue'),
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
export const toolsPageLoaders = {
|
||||
ToolsImportExport: () => import('@/pages/tools/ToolsImportExport.vue'),
|
||||
ToolsHealth: () => import('@/pages/tools/ToolsHealth.vue'),
|
||||
ToolsMigration: () => import('@/pages/tools/ToolsMigration.vue'),
|
||||
ToolsEmailRollback: () => import('@/pages/tools/ToolsEmailRollback.vue'),
|
||||
ToolsUpdate: () => import('@/pages/tools/ToolsUpdate.vue'),
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
export const usersPageLoaders = {
|
||||
UsersFeatures: () => import('@/pages/users/UsersFeatures.vue'),
|
||||
UsersSignin: () => import('@/pages/users/UsersSignin.vue'),
|
||||
UsersInviteCodes: () => import('@/pages/users/UsersInviteCodes.vue'),
|
||||
UsersVerify: () => import('@/pages/users/UsersVerify.vue'),
|
||||
UsersLevel: () => import('@/pages/users/UsersLevel.vue'),
|
||||
UsersBadge: () => import('@/pages/users/UsersBadge.vue'),
|
||||
UsersReport: () => import('@/pages/users/UsersReport.vue'),
|
||||
UsersMessages: () => import('@/pages/users/UsersMessages.vue'),
|
||||
UsersBan: () => import('@/pages/users/UsersBan.vue'),
|
||||
UsersWechatTemplate: () => import('@/pages/users/UsersWechatTemplate.vue'),
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
import { createRouter, createWebHashHistory } from 'vue-router'
|
||||
import { getAllAdminPages } from '@/constants/admin-sections'
|
||||
import { componentLoaders } from './component-loaders/index.js'
|
||||
|
||||
function resolveComponent(page) {
|
||||
if (componentLoaders[page.component]) {
|
||||
return componentLoaders[page.component]
|
||||
}
|
||||
|
||||
// Log missing component for debugging — avoids silent fallback to DeferredPage
|
||||
if (page.component && page.component !== 'DeferredPage') {
|
||||
console.warn(
|
||||
`[AKSRT Route] Component "${page.component}" not found in componentLoaders for route "${page.route}". Falling back to DeferredPage.`
|
||||
)
|
||||
}
|
||||
|
||||
return componentLoaders.DeferredPage
|
||||
}
|
||||
|
||||
function createRouteMeta(page) {
|
||||
const meta = {
|
||||
title: page.title,
|
||||
section: page.sectionKey || '',
|
||||
desc: page.desc || '',
|
||||
status: page.status || 'available',
|
||||
}
|
||||
|
||||
if (page.canonicalDomain) {
|
||||
meta.canonicalDomain = page.canonicalDomain
|
||||
}
|
||||
|
||||
if (page.section) {
|
||||
meta.section = page.section
|
||||
}
|
||||
|
||||
if (page.component === 'DeferredPage') {
|
||||
meta.deferred = true
|
||||
meta.deferredProps = {
|
||||
title: page.title,
|
||||
description: page.desc || '',
|
||||
icon: page.iconClass || 'fas fa-compass-drafting',
|
||||
phase: page.phase || '',
|
||||
status: page.status || 'deferred',
|
||||
dependsOn: page.dependsOn || [],
|
||||
reason: page.reason || '',
|
||||
features: page.features || [],
|
||||
}
|
||||
}
|
||||
|
||||
return meta
|
||||
}
|
||||
|
||||
const routes = [
|
||||
{ path: '/', redirect: '/global/common' },
|
||||
...getAllAdminPages().map((page) => ({
|
||||
path: page.route,
|
||||
name: page.name,
|
||||
component: resolveComponent(page),
|
||||
meta: createRouteMeta(page),
|
||||
})),
|
||||
]
|
||||
|
||||
export default createRouter({
|
||||
history: createWebHashHistory(),
|
||||
routes,
|
||||
})
|
||||
Reference in new issue
Block a user