diff --git a/offer_frontend/src/views/admin/UserManageView.vue b/offer_frontend/src/views/admin/UserManageView.vue
index 0d32995..a0dba25 100644
--- a/offer_frontend/src/views/admin/UserManageView.vue
+++ b/offer_frontend/src/views/admin/UserManageView.vue
@@ -4,7 +4,7 @@
用户管理
新增管理员
-
+
@@ -24,6 +24,15 @@
编辑
+
+
+
@@ -62,11 +71,31 @@ const orgs = ref([])
const dialogVisible = ref(false)
const editing = ref(null)
const saving = ref(false)
+const loading = ref(false)
+const currentPage = ref(1)
+const pageSize = ref(20)
+const total = ref(0)
const form = reactive({ username: '', email: '', phone: '', role: 'admin', organization: null, password: '', is_active: true })
-const fetchUsers = async () => { const { data } = await client.get('/auth/users/'); users.value = data.results || data }
+const fetchUsers = async (page = 1) => {
+ loading.value = true
+ try {
+ const { data } = await client.get('/auth/users/', { params: { page } })
+ users.value = data.results
+ total.value = data.count
+ currentPage.value = page
+ } catch (error) {
+ ElMessage.error('加载用户列表失败,请重试')
+ } finally {
+ loading.value = false
+ }
+}
const fetchOrgs = async () => { const { data } = await manageOrganizations(); orgs.value = data.results }
+function handlePageChange(newPage) {
+ fetchUsers(newPage)
+}
+
function openDialog(user = null) {
editing.value = user
if (user) Object.assign(form, user)
@@ -81,7 +110,7 @@ async function save() {
else await client.post('/auth/users/', form)
ElMessage.success('保存成功')
dialogVisible.value = false
- fetchUsers()
+ fetchUsers(1)
} catch { ElMessage.error('保存失败') } finally { saving.value = false }
}
onMounted(() => { fetchUsers(); fetchOrgs() })