2
0

fix:用户管理用户信息界面

This commit is contained in:
zhongzm
2024-12-18 17:30:52 +08:00
parent 609edf74bc
commit 0939032e9b
3 changed files with 108 additions and 56 deletions

View File

@@ -8,60 +8,69 @@ const props = defineProps<{
}>();
const emit = defineEmits<{
'update:model': [value: SearchModel];
'updateModel': [value: SearchModel];
'reset': [];
'search': [];
}>();
const formRef = ref<FormInstance>();
const localSearchParams = ref<SearchModel>({
pageNum: props.model.pageNum,
pageSize: props.model.pageSize,
username: props.model.username,
email: props.model.email
});
// 修改计算属性的实现
const formModel = computed({
get: () => ({
username: props.model.username,
email: props.model.email
username: props.model.username ?? '',
email: props.model.email ?? ''
}),
set: (val: Partial<SearchModel>) => {
emit('update:model', {
set: (val: Partial<{ username: string; email: string }>) => {
emit('updateModel', {
...props.model,
...val
username: val.username || undefined,
email: val.email || undefined
});
}
});
const handleReset = () => {
// 重置表单字段
formRef.value?.resetFields();
localSearchParams.value = {
// 重置表单模型的值
formModel.value = {
username: '',
email: ''
};
// 定义默认参数
const defaultParams: SearchModel = {
pageNum: 1,
pageSize: 10,
username: undefined,
email: undefined
};
emit('update:model', localSearchParams.value);
console.log('Emitting reset with params:', defaultParams);
// 发送更新事件
emit('updateModel', defaultParams);
// 发送重置事件
emit('reset');
};
const handleSearch = () => {
// 确保搜索时更新所有参数
console.log('Search form values:', formModel.value);
// 确保所有必要的字段都存在
const updatedParams: SearchModel = {
...props.model,
pageNum: 1,
pageSize: 10,
username: formModel.value.username,
email: formModel.value.email
pageNum: props.model.pageNum || 1,
pageSize: props.model.pageSize || 10,
username: formModel.value.username || undefined,
email: formModel.value.email || undefined
};
console.log('Search triggered with params:', updatedParams);
console.log('Emitting updated params:', updatedParams);
// 直接更新父组件的参数
emit('update:model', updatedParams);
// 触发搜索
emit('updateModel', updatedParams);
emit('search');
};
</script>