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 @@