From f7b44a9a178ccd1a9013fee97293aa00b047bb1a Mon Sep 17 00:00:00 2001 From: carry <2641257231@qq.com> Date: Sun, 16 Feb 2025 17:14:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BA=86=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8EfetchUsers=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/EditUserDialog.vue | 14 +++++++++++--- src/components/UserTable.vue | 14 ++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/components/EditUserDialog.vue b/src/components/EditUserDialog.vue index f878f1e..d87e716 100644 --- a/src/components/EditUserDialog.vue +++ b/src/components/EditUserDialog.vue @@ -39,6 +39,7 @@ const props = defineProps<{ }>() const dialogVisible = ref(false) +const options = ref<{ userId?: number, mode?: 'create' | 'edit', onConfirm?: () => void }>({}) const editForm = ref({ id: 0, username: '', @@ -51,9 +52,10 @@ const editForm = ref({ const emit = defineEmits(['confirm']) -const open = async () => { - if (props.mode === 'edit' && props.userId) { - const user = await userService.getUser(props.userId) +const open = async (opts: { userId?: number, mode?: 'create' | 'edit', onConfirm?: () => void }) => { + options.value = opts + if (options.value.mode === 'edit' && options.value.userId) { + const user = await userService.getUser(options.value.userId) editForm.value = { ...user } } else { editForm.value = { @@ -65,6 +67,9 @@ const open = async () => { updated_at: '' } } + if (options.value.onConfirm) { + emit('confirm', options.value.onConfirm) + } dialogVisible.value = true } @@ -88,6 +93,9 @@ const handleConfirm = async () => { await userService.updateUser(id, updateData) } emit('confirm', editForm.value) + if (options.value.onConfirm) { + options.value.onConfirm() + } dialogVisible.value = false } catch (error) { console.error('操作失败:', error) diff --git a/src/components/UserTable.vue b/src/components/UserTable.vue index 5f6fb54..d3d2f4a 100644 --- a/src/components/UserTable.vue +++ b/src/components/UserTable.vue @@ -1,4 +1,7 @@