diff --git a/pangu-ui/src/views/member/components/MemberDialog.vue b/pangu-ui/src/views/member/components/MemberDialog.vue index fea17d3..110b6bc 100644 --- a/pangu-ui/src/views/member/components/MemberDialog.vue +++ b/pangu-ui/src/views/member/components/MemberDialog.vue @@ -9,6 +9,7 @@ width="700px" :close-on-click-modal="false" destroy-on-close + @close="handleClose" @open="handleOpen" > props.modelValue, - set: (val) => emit('update:modelValue', val) -}) +const visible = ref(false) +const memberId = ref(null) const formRef = ref(null) const submitLoading = ref(false) +/** + * 打开弹窗 + * @param {Object} row - 编辑时传入会员数据 + */ +const open = (row) => { + memberId.value = row?.memberId || null + visible.value = true +} + +// 暴露方法给父组件 +defineExpose({ open }) + // 表单数据 const form = reactive({ memberId: null, @@ -303,9 +303,9 @@ const handleOpen = async () => { } // 编辑模式加载会员数据 - if (props.memberId) { + if (memberId.value) { try { - const res = await getMember(props.memberId) + const res = await getMember(memberId.value) if (res.code === 200 && res.data) { const data = res.data form.memberId = data.memberId @@ -342,6 +342,14 @@ const handleOpen = async () => { } } +/** + * 弹窗关闭时重置 + */ +const handleClose = () => { + formRef.value?.resetFields() + memberId.value = null +} + /** * 重置表单 */ @@ -530,11 +538,4 @@ const handleSubmit = async () => { submitLoading.value = false } } - -// 监听弹窗关闭,重置表单 -watch(visible, (val) => { - if (!val) { - formRef.value?.resetFields() - } -}) diff --git a/pangu-ui/src/views/member/index.vue b/pangu-ui/src/views/member/index.vue index c054ce8..7c576be 100644 --- a/pangu-ui/src/views/member/index.vue +++ b/pangu-ui/src/views/member/index.vue @@ -48,7 +48,7 @@ - + - + + +