diff --git a/components/analytics/AnalyticsMultiLineChart.uvue b/components/analytics/AnalyticsMultiLineChart.uvue
new file mode 100644
index 00000000..b044bb4e
--- /dev/null
+++ b/components/analytics/AnalyticsMultiLineChart.uvue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
diff --git a/components/analytics/AnalyticsUserGenderSection.uvue b/components/analytics/AnalyticsUserGenderSection.uvue
new file mode 100644
index 00000000..41f67ab7
--- /dev/null
+++ b/components/analytics/AnalyticsUserGenderSection.uvue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+ 总用户数
+ {{ totalUsers }}
+
+
+
+
+
+
+
+
+
diff --git a/components/analytics/AnalyticsUserMapTable.uvue b/components/analytics/AnalyticsUserMapTable.uvue
new file mode 100644
index 00000000..c3a5311e
--- /dev/null
+++ b/components/analytics/AnalyticsUserMapTable.uvue
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+ {{ item.total }}
+ {{ item.newUsers }}
+ {{ item.visitors }}
+ {{ item.amount }}
+
+
+
+
+
+
+
+
+
+
diff --git a/layouts/admin/AdminLayout.uvue b/layouts/admin/AdminLayout.uvue
index 3dc66dd2..1b0e05e1 100644
--- a/layouts/admin/AdminLayout.uvue
+++ b/layouts/admin/AdminLayout.uvue
@@ -47,12 +47,12 @@
/>
-
+
-
+
@@ -215,8 +215,9 @@ onMounted(() => {
background: #f0f2f5;
}
-.content {
+.content-scroll {
flex: 1;
+ overflow-y: scroll;
background: #f0f2f5;
}
diff --git a/layouts/admin/components/AdminAside.uvue b/layouts/admin/components/AdminAside.uvue
index 612834c9..a662125d 100644
--- a/layouts/admin/components/AdminAside.uvue
+++ b/layouts/admin/components/AdminAside.uvue
@@ -4,7 +4,7 @@
{{ collapsed ? 'M' : 'MALL' }}
-
+
@@ -79,6 +79,7 @@ function onRouteClick(routeId: string): void {
.subsider-menu {
flex: 1;
padding: 8px 0;
+ overflow-y: scroll;
}
.menu-group {
diff --git a/layouts/admin/components/AdminSubsider_old.uvue.bak b/layouts/admin/components/AdminSubsider_old.uvue.bak
deleted file mode 100644
index a4d60bb7..00000000
--- a/layouts/admin/components/AdminSubsider_old.uvue.bak
+++ /dev/null
@@ -1,396 +0,0 @@
-
-
-
-
-
-
-
-
- {{ g.title }}
-
-
- v
-
-
-
-
-
-
- {{ c.title }}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/layouts/admin/router/adminComponentMap.uts b/layouts/admin/router/adminComponentMap.uts
index d8d8b71d..e1549903 100644
--- a/layouts/admin/router/adminComponentMap.uts
+++ b/layouts/admin/router/adminComponentMap.uts
@@ -18,15 +18,18 @@ import PlaceholderPage from '@/layouts/admin/components/PlaceholderPage.uvue'
import HomeIndex from '@/layouts/admin/pages/HomeIndex.uvue'
// 导入用户模块(纯组件,不包含 AdminLayout)
+import UserStatistic from '@/pages/mall/admin/user/Statistic.uvue'
import UserList from '@/pages/mall/admin/user/list.uvue'
import UserLevel from '@/pages/mall/admin/user/level.uvue'
import UserGroup from '@/pages/mall/admin/user/group.uvue'
import UserLabel from '@/pages/mall/admin/user/label.uvue'
+import MemberConfig from '@/pages/mall/admin/user/MemberConfig.uvue'
// 其他用户模块组件暂时使用 PlaceholderPage
// import UserGradeType from '@/pages/mall/admin/user/grade/type.uvue'
// import UserGradeCard from '@/pages/mall/admin/user/grade/card.uvue'
// import UserGradeRecord from '@/pages/mall/admin/user/grade/record.uvue'
// import UserGradeRight from '@/pages/mall/admin/user/grade/right.uvue'
+// import UserMemberConfig from '@/pages/mall/admin/user/MemberConfig.uvue'
// 导入商品模块(纯组件,不包含 AdminLayout)
import ProductList from '@/pages/mall/admin/product/list.uvue'
@@ -39,6 +42,11 @@ import ProductProtection from '@/pages/mall/admin/product/protection.uvue'
// 导入订单模块(纯组件,不包含 AdminLayout)
import OrderList from '@/pages/mall/admin/order/list.uvue'
+import OrderStatistic from '@/pages/mall/admin/order/order-statistics/index.uvue'
+import OrderRefund from '@/pages/mall/admin/order/aftersales-order/index.uvue'
+import OrderCashier from '@/pages/mall/admin/order/cashier-order/index.uvue'
+import OrderVerify from '@/pages/mall/admin/order/write-off-records/index.uvue'
+import OrderConfig from '@/pages/mall/admin/order/order-configuration/index.uvue'
// 营销、内容、财务、数据、设置模块暂时使用 PlaceholderPage
// 避免循环依赖问题
@@ -63,10 +71,12 @@ export const componentMap: Map = new Map([
['HomeIndex', HomeIndex],
// 用户模块
+ ['UserStatistic', UserStatistic],
['UserList', UserList],
['UserLevel', UserLevel],
['UserGroup', UserGroup],
['UserLabel', UserLabel],
+ ['UserMemberConfig', MemberConfig],
['UserGradeType', PlaceholderPage], // 暂时使用占位组件
['UserGradeCard', PlaceholderPage],
['UserGradeRecord', PlaceholderPage],
@@ -83,6 +93,11 @@ export const componentMap: Map = new Map([
// 订单模块
['OrderList', OrderList],
+ ['OrderStatistic', OrderStatistic],
+ ['OrderRefund', OrderRefund],
+ ['OrderCashier', OrderCashier],
+ ['OrderVerify', OrderVerify],
+ ['OrderConfig', OrderConfig],
// 营销模块 - 暂时使用占位组件
['MarketingCoupon', PlaceholderPage],
diff --git a/layouts/admin/router/adminRoutes.uts b/layouts/admin/router/adminRoutes.uts
index cd32859d..c782323f 100644
--- a/layouts/admin/router/adminRoutes.uts
+++ b/layouts/admin/router/adminRoutes.uts
@@ -72,8 +72,8 @@ export const topMenus: TopMenu[] = [
path: '/pages/mall/admin/user/list',
order: 2,
groups: [
- { id: 'user-manage', title: '用户管理', order: 1 },
- { id: 'user-grade', title: '会员管理', order: 2 }
+ { id: 'user-manage', title: '', order: 1 },
+ { id: 'member-manage', title: '会员管理', order: 2 }
]
},
{
@@ -93,7 +93,7 @@ export const topMenus: TopMenu[] = [
path: '/pages/mall/admin/order/list',
order: 4,
groups: [
- { id: 'order-manage', title: '订单管理', order: 1 }
+ { id: 'order-manage', title: '', order: 1 }
]
},
{
@@ -168,6 +168,16 @@ export const routes: RouteRecord[] = [
},
// ========== 用户模块 ==========
+ {
+ id: 'user_statistic',
+ title: '用户统计',
+ path: '/pages/mall/admin/user/Statistic',
+ componentKey: 'UserStatistic',
+ parentId: 'user',
+ groupId: 'user-manage',
+ auth: ['admin-user-statistic-index'],
+ order: 1
+ },
{
id: 'user_list',
title: '用户管理',
@@ -176,16 +186,6 @@ export const routes: RouteRecord[] = [
parentId: 'user',
groupId: 'user-manage',
auth: ['admin-user-user-index'],
- order: 1
- },
- {
- id: 'user_level',
- title: '用户等级',
- path: '/pages/mall/admin/user/level',
- componentKey: 'UserLevel',
- parentId: 'user',
- groupId: 'user-manage',
- auth: ['user-user-level'],
order: 2
},
{
@@ -208,15 +208,35 @@ export const routes: RouteRecord[] = [
auth: ['user-user-label'],
order: 4
},
+ {
+ id: 'user_level',
+ title: '用户等级',
+ path: '/pages/mall/admin/user/level',
+ componentKey: 'UserLevel',
+ parentId: 'user',
+ groupId: 'user-manage',
+ auth: ['user-user-level'],
+ order: 5
+ },
+ {
+ id: 'user_member_config',
+ title: '用户配置',
+ path: '/pages/mall/admin/user/MemberConfig',
+ componentKey: 'UserMemberConfig',
+ parentId: 'user',
+ groupId: 'user-manage',
+ auth: ['admin-user-member-config'],
+ order: 6
+ },
{
id: 'user_type',
title: '会员类型',
path: '/pages/mall/admin/user/grade/type',
componentKey: 'UserGradeType',
parentId: 'user',
- groupId: 'user-grade',
+ groupId: 'member-manage',
auth: ['admin-user-member-type'],
- order: 5
+ order: 1
},
{
id: 'user_card',
@@ -224,9 +244,9 @@ export const routes: RouteRecord[] = [
path: '/pages/mall/admin/user/grade/card',
componentKey: 'UserGradeCard',
parentId: 'user',
- groupId: 'user-grade',
+ groupId: 'member-manage',
auth: ['admin-user-grade-card'],
- order: 6
+ order: 2
},
{
id: 'user_record',
@@ -234,9 +254,9 @@ export const routes: RouteRecord[] = [
path: '/pages/mall/admin/user/grade/record',
componentKey: 'UserGradeRecord',
parentId: 'user',
- groupId: 'user-grade',
+ groupId: 'member-manage',
auth: ['admin-user-grade-record'],
- order: 7
+ order: 3
},
{
id: 'user_right',
@@ -244,9 +264,9 @@ export const routes: RouteRecord[] = [
path: '/pages/mall/admin/user/grade/right',
componentKey: 'UserGradeRight',
parentId: 'user',
- groupId: 'user-grade',
+ groupId: 'member-manage',
auth: ['admin-user-grade-right'],
- order: 8
+ order: 4
},
// ========== 商品模块 ==========
@@ -323,6 +343,16 @@ export const routes: RouteRecord[] = [
},
// ========== 订单模块 ==========
+ {
+ id: 'order_statistic',
+ title: '订单统计',
+ path: '/pages/mall/admin/order/statistic',
+ componentKey: 'OrderStatistic',
+ parentId: 'order',
+ groupId: 'order-manage',
+ auth: ['admin-order-statistic-index'],
+ order: 1
+ },
{
id: 'order_list',
title: '订单管理',
@@ -332,7 +362,47 @@ export const routes: RouteRecord[] = [
groupId: 'order-manage',
auth: ['admin-order-storeOrder-index'],
keepAlive: true,
- order: 1
+ order: 2
+ },
+ {
+ id: 'order_refund',
+ title: '售后订单',
+ path: '/pages/mall/admin/order/refund',
+ componentKey: 'OrderRefund',
+ parentId: 'order',
+ groupId: 'order-manage',
+ auth: ['admin-order-refund-index'],
+ order: 3
+ },
+ {
+ id: 'order_cashier',
+ title: '收银订单',
+ path: '/pages/mall/admin/order/cashier',
+ componentKey: 'OrderCashier',
+ parentId: 'order',
+ groupId: 'order-manage',
+ auth: ['admin-order-cashier-index'],
+ order: 4
+ },
+ {
+ id: 'order_verify',
+ title: '核销记录',
+ path: '/pages/mall/admin/order/verify',
+ componentKey: 'OrderVerify',
+ parentId: 'order',
+ groupId: 'order-manage',
+ auth: ['admin-order-verify-index'],
+ order: 5
+ },
+ {
+ id: 'order_config',
+ title: '订单配置',
+ path: '/pages/mall/admin/order/config',
+ componentKey: 'OrderConfig',
+ parentId: 'order',
+ groupId: 'order-manage',
+ auth: ['admin-order-config-index'],
+ order: 6
},
// ========== 营销模块 ==========
diff --git a/pages/mall/admin/order/aftersales-order/index.uvue b/pages/mall/admin/order/aftersales-order/index.uvue
index 5519b3e4..36ebdde2 100644
--- a/pages/mall/admin/order/aftersales-order/index.uvue
+++ b/pages/mall/admin/order/aftersales-order/index.uvue
@@ -1,18 +1,15 @@
-
-
-
+
+
-
+
diff --git a/pages/mall/admin/order/cashier-order/index.uvue b/pages/mall/admin/order/cashier-order/index.uvue
index 39e53a8c..5aba5247 100644
--- a/pages/mall/admin/order/cashier-order/index.uvue
+++ b/pages/mall/admin/order/cashier-order/index.uvue
@@ -1,18 +1,15 @@
-
-
-
+
+
-
+
diff --git a/pages/mall/admin/order/list.uvue b/pages/mall/admin/order/list.uvue
index 28fe926e..ffbcbe2a 100644
--- a/pages/mall/admin/order/list.uvue
+++ b/pages/mall/admin/order/list.uvue
@@ -1,15 +1,136 @@
-
-
diff --git a/pages/mall/admin/order/order-statistics/index.uvue b/pages/mall/admin/order/order-statistics/index.uvue
index ad0aa396..40582f86 100644
--- a/pages/mall/admin/order/order-statistics/index.uvue
+++ b/pages/mall/admin/order/order-statistics/index.uvue
@@ -1,21 +1,599 @@
-
-
-
+
+
+
+
+
+
+
+
+
+ 209
+ 订单量
+
+
+
+
+
+
+
+
+
+ 443254.62
+ 订单销售额
+
+
+
+
+
+
+
+
+
+ 0
+ 退款订单数
+
+
+
+
+
+
+
+
+
+ 0
+ 退款金额
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ index + 1 }}
+ {{ item.name }}
+ {{ item.amount }}
+
+
+
+
+ {{ item.rate }}%
+
+
+
+
+
+
+
+
+
diff --git a/pages/mall/admin/user/Statistic.uvue b/pages/mall/admin/user/Statistic.uvue
new file mode 100644
index 00000000..838febcd
--- /dev/null
+++ b/pages/mall/admin/user/Statistic.uvue
@@ -0,0 +1,306 @@
+
+
+
+
+
+ 用户渠道:
+
+ 全部
+ ▼
+
+
+
+
+ 选择时间:
+
+ 📅
+ 2026/01/04 - 2026/02/02
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.icon }}
+
+
+ {{ item.title }}
+ {{ item.value }}
+
+ 环比增长:
+ {{ item.percent }} {{ item.trend === 'up' ? '▲' : '▼' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/mall/admin/user/list.uvue b/pages/mall/admin/user/list.uvue
index ed5537f0..6e9b4259 100644
--- a/pages/mall/admin/user/list.uvue
+++ b/pages/mall/admin/user/list.uvue
@@ -1,15 +1,123 @@
-
-