admin后台 第一阶段目录优化

This commit is contained in:
yml2213
2026-05-15 14:12:38 +08:00
parent 34b71decf1
commit 11678a7f83
35 changed files with 41 additions and 46 deletions
-5
View File
@@ -12,11 +12,6 @@ export {}
declare module 'vue' { declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
AdminPageHeader: typeof import('./components/admin/AdminPageHeader.vue')['default'] AdminPageHeader: typeof import('./components/admin/AdminPageHeader.vue')['default']
AdminPlatformAgisoSection: typeof import('./components/admin/AdminPlatformAgisoSection.vue')['default']
AdminPlatformCloudtentaclesSection: typeof import('./components/admin/AdminPlatformCloudtentaclesSection.vue')['default']
AdminPlatformKuaishouEticketSection: typeof import('./components/admin/AdminPlatformKuaishouEticketSection.vue')['default']
AdminPlatformNinetyoneSection: typeof import('./components/admin/AdminPlatformNinetyoneSection.vue')['default']
AdminPlatformNotificationSection: typeof import('./components/admin/AdminPlatformNotificationSection.vue')['default']
AdminResultCard: typeof import('./components/admin/AdminResultCard.vue')['default'] AdminResultCard: typeof import('./components/admin/AdminResultCard.vue')['default']
AdminStatusTag: typeof import('./components/admin/AdminStatusTag.vue')['default'] AdminStatusTag: typeof import('./components/admin/AdminStatusTag.vue')['default']
ElAlert: typeof import('element-plus/es')['ElAlert'] ElAlert: typeof import('element-plus/es')['ElAlert']
+16 -16
View File
@@ -26,11 +26,11 @@ const router = createRouter({
}, },
{ {
path: '/admin/login', path: '/admin/login',
component: () => import('@/views/admin/AdminLoginView.vue'), component: () => import('@/views/admin/auth/AdminLoginView.vue'),
}, },
{ {
path: '/admin', path: '/admin',
component: () => import('@/views/admin/AdminLayout.vue'), component: () => import('@/views/admin/layout/AdminLayout.vue'),
children: [ children: [
{ {
path: '', path: '',
@@ -38,32 +38,32 @@ const router = createRouter({
}, },
{ {
path: 'dashboard', path: 'dashboard',
component: () => import('@/views/admin/AdminDashboardView.vue'), component: () => import('@/views/admin/dashboard/AdminDashboardView.vue'),
}, },
{ {
path: 'users', path: 'users',
meta: { allowedRoles: ['admin'] }, meta: { allowedRoles: ['admin'] },
component: () => import('@/views/admin/AdminUsersView.vue'), component: () => import('@/views/admin/users/AdminUsersView.vue'),
}, },
{ {
path: 'orders', path: 'orders',
component: () => import('@/views/admin/AdminOrdersView.vue'), component: () => import('@/views/admin/orders/AdminOrdersView.vue'),
}, },
{ {
path: 'orders/:orderId', path: 'orders/:orderId',
component: () => import('@/views/admin/AdminOrderDetailView.vue'), component: () => import('@/views/admin/orders/AdminOrderDetailView.vue'),
}, },
{ {
path: 'tasks', path: 'tasks',
component: () => import('@/views/admin/AdminTasksView.vue'), component: () => import('@/views/admin/tasks/AdminTasksView.vue'),
}, },
{ {
path: 'manual-redeem', path: 'manual-redeem',
component: () => import('@/views/admin/AdminManualRedeemView.vue'), component: () => import('@/views/admin/manual-redeem/AdminManualRedeemView.vue'),
}, },
{ {
path: 'tasks/:taskId', path: 'tasks/:taskId',
component: () => import('@/views/admin/AdminTaskDetailView.vue'), component: () => import('@/views/admin/tasks/AdminTaskDetailView.vue'),
}, },
{ {
path: 'cdks', path: 'cdks',
@@ -72,26 +72,26 @@ const router = createRouter({
{ {
path: 'inventory', path: 'inventory',
meta: { allowedRoles: ['admin', 'operator'] }, meta: { allowedRoles: ['admin', 'operator'] },
component: () => import('@/views/admin/AdminInventoryView.vue'), component: () => import('@/views/admin/inventory/AdminInventoryView.vue'),
}, },
{ {
path: 'message-deliveries', path: 'message-deliveries',
component: () => import('@/views/admin/AdminMessageDeliveriesView.vue'), component: () => import('@/views/admin/message-deliveries/AdminMessageDeliveriesView.vue'),
}, },
{ {
path: 'webhook-events', path: 'webhook-events',
meta: { allowedRoles: ['admin', 'operator'] }, meta: { allowedRoles: ['admin', 'operator'] },
component: () => import('@/views/admin/AdminWebhookEventsView.vue'), component: () => import('@/views/admin/webhook-events/AdminWebhookEventsView.vue'),
}, },
{ {
path: 'platform-shops', path: 'platform-shops',
meta: { allowedRoles: ['admin'] }, meta: { allowedRoles: ['admin'] },
component: () => import('@/views/admin/AdminPlatformShopsView.vue'), component: () => import('@/views/admin/platform-shops/AdminPlatformShopsView.vue'),
}, },
{ {
path: 'platform-fulfillment', path: 'platform-fulfillment',
meta: { allowedRoles: ['admin'] }, meta: { allowedRoles: ['admin'] },
component: () => import('@/views/admin/AdminFulfillmentConfigHubView.vue'), component: () => import('@/views/admin/fulfillment/AdminFulfillmentConfigHubView.vue'),
}, },
{ {
path: 'platform-kuaishou-cloud-fulfillment', path: 'platform-kuaishou-cloud-fulfillment',
@@ -101,12 +101,12 @@ const router = createRouter({
{ {
path: 'webhook-events/:eventId', path: 'webhook-events/:eventId',
meta: { allowedRoles: ['admin', 'operator'] }, meta: { allowedRoles: ['admin', 'operator'] },
component: () => import('@/views/admin/AdminWebhookEventDetailView.vue'), component: () => import('@/views/admin/webhook-events/AdminWebhookEventDetailView.vue'),
}, },
{ {
path: 'audit-logs', path: 'audit-logs',
meta: { allowedRoles: ['admin'] }, meta: { allowedRoles: ['admin'] },
component: () => import('@/views/admin/AdminAuditLogsView.vue'), component: () => import('@/views/admin/audit-logs/AdminAuditLogsView.vue'),
}, },
], ],
}, },
@@ -170,7 +170,7 @@ onMounted(loadAuditLogs)
</template> </template>
<style scoped> <style scoped>
@import '../../styles/admin-list-pages.css'; @import '../../../styles/admin-list-pages.css';
.total-label { .total-label {
color: var(--text-secondary); color: var(--text-secondary);
@@ -1,4 +1,4 @@
@import '../../styles/admin-config-pages.css'; @import '../../../styles/admin-config-pages.css';
/* ============================================================ /* ============================================================
AdminFulfillmentBindings 绿色主题覆盖 & 页面特有样式 AdminFulfillmentBindings 绿色主题覆盖 & 页面特有样式
@@ -2,8 +2,8 @@
import { computed } from 'vue' import { computed } from 'vue'
import { useRoute, useRouter } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import AdminFulfillmentBindingsView from '@/views/admin/AdminFulfillmentBindingsView.vue' import AdminFulfillmentBindingsView from './AdminFulfillmentBindingsView.vue'
import AdminKuaishouCloudFulfillmentView from '@/views/admin/AdminKuaishouCloudFulfillmentView.vue' import AdminKuaishouCloudFulfillmentView from './AdminKuaishouCloudFulfillmentView.vue'
type FulfillmentTabKey = 'legacy' | 'kuaishou-cloud' type FulfillmentTabKey = 'legacy' | 'kuaishou-cloud'
@@ -1,4 +1,4 @@
@import '../../styles/admin-config-pages.css'; @import '../../../styles/admin-config-pages.css';
.admin-panel { .admin-panel {
--panel-ink: var(--text-primary); --panel-ink: var(--text-primary);
@@ -1,4 +1,4 @@
@import '../../styles/admin-list-pages.css'; @import '../../../styles/admin-list-pages.css';
.form-grid { .form-grid {
display: grid; display: grid;
@@ -195,7 +195,7 @@ onMounted(loadMessageDeliveries)
</template> </template>
<style scoped> <style scoped>
@import '../../styles/admin-list-pages.css'; @import '../../../styles/admin-list-pages.css';
.filter-grid { .filter-grid {
grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-columns: repeat(4, minmax(0, 1fr));
@@ -244,7 +244,7 @@ onMounted(loadOrders)
</template> </template>
<style scoped> <style scoped>
@import '../../styles/admin-list-pages.css'; @import '../../../styles/admin-list-pages.css';
.filter-grid { .filter-grid {
grid-template-columns: minmax(200px, 1fr) minmax(130px, 0.6fr) minmax(180px, 0.9fr) minmax(320px, 1.4fr) minmax(150px, 0.55fr); grid-template-columns: minmax(200px, 1fr) minmax(130px, 0.6fr) minmax(180px, 0.9fr) minmax(320px, 1.4fr) minmax(150px, 0.55fr);
@@ -3,17 +3,6 @@ import { onMounted, ref } from 'vue'
import { RefreshRight } from '@element-plus/icons-vue' import { RefreshRight } from '@element-plus/icons-vue'
import AdminPageHeader from '@/components/admin/AdminPageHeader.vue' import AdminPageHeader from '@/components/admin/AdminPageHeader.vue'
import AdminPlatformAgisoSection from '@/components/admin/AdminPlatformAgisoSection.vue'
import AdminPlatformCloudtentaclesSection from '@/components/admin/AdminPlatformCloudtentaclesSection.vue'
import AdminPlatformNinetyoneSection from '@/components/admin/AdminPlatformNinetyoneSection.vue'
import AdminPlatformNotificationSection from '@/components/admin/AdminPlatformNotificationSection.vue'
import AdminPlatformKuaishouEticketSection from '@/components/admin/AdminPlatformKuaishouEticketSection.vue'
import { useAdminAgisoPlatform } from '@/composables/admin/platform-shops/useAdminAgisoPlatform'
import { useAdminCloudtentaclesPlatform } from '@/composables/admin/platform-shops/useAdminCloudtentaclesPlatform'
import { useAdminNinetyonePlatform } from '@/composables/admin/platform-shops/useAdminNinetyonePlatform'
import { useAdminNotificationPlatform } from '@/composables/admin/platform-shops/useAdminNotificationPlatform'
import { useAdminKuaishouEticketPlatform } from '@/composables/admin/platform-shops/useAdminKuaishouEticketPlatform'
import type { PlatformTab } from '@/composables/admin/platform-shops/types'
import { import {
fetchAdminAgisoShopConfigs, fetchAdminAgisoShopConfigs,
fetchAdminCloudtentaclesSourceConfig, fetchAdminCloudtentaclesSourceConfig,
@@ -22,6 +11,17 @@ import {
fetchAdminScheduledJobsConfig, fetchAdminScheduledJobsConfig,
} from '@/services/admin' } from '@/services/admin'
import { hasAdminRole } from '@/utils/admin-auth' import { hasAdminRole } from '@/utils/admin-auth'
import AdminPlatformAgisoSection from './components/AdminPlatformAgisoSection.vue'
import AdminPlatformCloudtentaclesSection from './components/AdminPlatformCloudtentaclesSection.vue'
import AdminPlatformNinetyoneSection from './components/AdminPlatformNinetyoneSection.vue'
import AdminPlatformNotificationSection from './components/AdminPlatformNotificationSection.vue'
import AdminPlatformKuaishouEticketSection from './components/AdminPlatformKuaishouEticketSection.vue'
import { useAdminAgisoPlatform } from './composables/useAdminAgisoPlatform'
import { useAdminCloudtentaclesPlatform } from './composables/useAdminCloudtentaclesPlatform'
import { useAdminNinetyonePlatform } from './composables/useAdminNinetyonePlatform'
import { useAdminNotificationPlatform } from './composables/useAdminNotificationPlatform'
import { useAdminKuaishouEticketPlatform } from './composables/useAdminKuaishouEticketPlatform'
import type { PlatformTab } from './composables/types'
const loading = ref(true) const loading = ref(true)
const isDevMode = import.meta.env.DEV const isDevMode = import.meta.env.DEV
@@ -2,7 +2,7 @@
import type { AdminAgisoObservedShopItem } from '@/types/admin' import type { AdminAgisoObservedShopItem } from '@/types/admin'
import { formatAdminDateTime } from '@/utils/admin-time' import { formatAdminDateTime } from '@/utils/admin-time'
import type { EditableDefaults, EditableShop } from '@/composables/admin/platform-shops/types' import type { EditableDefaults, EditableShop } from '../composables/types'
type Props = { type Props = {
agisoFilePath: string agisoFilePath: string
@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import type { EditableKuaishouEticketShop } from '@/composables/admin/platform-shops/types' import type { EditableKuaishouEticketShop } from '../composables/types'
import type { import type {
AdminKuaishouEticketConsumeResult, AdminKuaishouEticketConsumeResult,
AdminKuaishouEticketDetailResult, AdminKuaishouEticketDetailResult,
@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed } from 'vue' import { computed } from 'vue'
import type { AdminNotificationTestResult, AdminScheduledJobRuntimeState } from '@/types/admin' import type { AdminNotificationTestResult, AdminScheduledJobRuntimeState } from '@/types/admin'
import type { EditableNotificationRecipient, EditableScheduledJob } from '@/composables/admin/platform-shops/types' import type { EditableNotificationRecipient, EditableScheduledJob } from '../composables/types'
import { formatAdminDateTime } from '@/utils/admin-time' import { formatAdminDateTime } from '@/utils/admin-time'
type Props = { type Props = {
@@ -287,7 +287,7 @@ function resetFilters() {
</template> </template>
<style scoped> <style scoped>
@import '../../styles/admin-list-pages.css'; @import '../../../styles/admin-list-pages.css';
.filter-grid { .filter-grid {
grid-template-columns: minmax(150px, 0.75fr) minmax(220px, 1fr) minmax(220px, 1fr) minmax(210px, 0.95fr); grid-template-columns: minmax(150px, 0.75fr) minmax(220px, 1fr) minmax(220px, 1fr) minmax(210px, 0.95fr);
@@ -206,7 +206,7 @@ onMounted(loadUsers)
</template> </template>
<style scoped> <style scoped>
@import '../../styles/admin-list-pages.css'; @import '../../../styles/admin-list-pages.css';
.users-tools { .users-tools {
display: grid; display: grid;
@@ -233,7 +233,7 @@ onMounted(loadEvents)
</template> </template>
<style scoped> <style scoped>
@import '../../styles/admin-list-pages.css'; @import '../../../styles/admin-list-pages.css';
.filter-grid { .filter-grid {
grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-columns: repeat(4, minmax(0, 1fr));