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() })