From 724eef2b19bf22e9dce2d32ccf94b996e0e61f98 Mon Sep 17 00:00:00 2001 From: TianyangZhang Date: Wed, 25 Mar 2026 17:02:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E4=B8=BA=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/admin/UserManageView.vue | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) 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() })