diff --git a/src/api/user.js b/src/api/user.js
new file mode 100644
index 0000000..a7ff01a
--- /dev/null
+++ b/src/api/user.js
@@ -0,0 +1,16 @@
+import request from '../utils/request'
+
+export function getUsers(params) {
+ return request({
+ url: '/api/admin/users',
+ method: 'get',
+ params
+ })
+}
+
+export function getUserById(id) {
+ return request({
+ url: `/api/admin/users/${id}`,
+ method: 'get'
+ })
+}
diff --git a/src/views/users/detail.vue b/src/views/users/detail.vue
index 298518b..b806ec5 100644
--- a/src/views/users/detail.vue
+++ b/src/views/users/detail.vue
@@ -1,8 +1,177 @@
- 用户详情
+
-
+
+
+
+
+
+ {{ detail.id }}
+ {{ detail.nickname || '-' }}
+
+
+
+ {{ genderLabel(detail.gender) }}
+ {{ maskPhone(detail.phone || detail.mobile) }}
+ {{ detail.open_id || '-' }}
+
+
+
+
+ {{ detail.mini_program_id || detail.mini_program?.id || '-' }}
+
+
+ {{ detail.mini_program_name || detail.mini_program?.name || '-' }}
+
+
+
+
+
+
+ {{ memberInfo.is_member ? '会员' : '非会员' }}
+
+
+
+ {{ memberInfo.package_type || '-' }}
+
+
+ {{ formatDateTime(memberInfo.expires_at) }}
+
+
+ {{ formatDateTime(detail.created_at || detail.registered_at) }}
+
+
+
+
+
+ 数据统计
+
+
+
+
+
+
{{ item.label }}
+
{{ item.value }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/users/index.vue b/src/views/users/index.vue
index ada65d4..2435771 100644
--- a/src/views/users/index.vue
+++ b/src/views/users/index.vue
@@ -1,8 +1,202 @@
- 用户管理
+
-
+
+
+
+
+
+
+ {{ (row.nickname || 'U').slice(0, 1) }}
+
+
+
+
+
+
+ {{ maskPhone(row.phone || row.mobile) }}
+
+
+
+
+ {{ row.mini_program_name || row.mini_program?.name || '-' }}
+
+
+
+
+
+ {{ row.is_member ? '会员' : '非会员' }}
+
+
+
+
+
+ {{ formatDateTime(row.created_at || row.registered_at) }}
+
+
+
+
+ 查看详情
+
+
+
+
+
+
+
+
+