导入 AKSRT 主题开发源码

This commit is contained in:
Claude Code committed 2026-07-03 22:50:34 +08:00
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'),
}
+66
View File
@@ -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,
})