fix: 改进用户管理页面的刷新逻辑和错误处理
优化内容: 1. 所有 fetchData 调用改为 await fetchData() 确保等待刷新完成 2. 改进表单验证逻辑,分离验证和提交逻辑 3. 添加更明确的错误提示信息 4. 删除操作优化:删除最后一条时自动返回上一页 5. 重置密码后也刷新列表(虽然不影响显示) 修复后确保: - 添加用户后立即刷新列表 - 编辑用户后立即刷新列表 - 启用/禁用用户后立即刷新列表 - 删除用户后立即刷新列表
This commit is contained in:
parent
64b8f42d5a
commit
29207d2e3c
@ -239,8 +239,13 @@ const resetForm = () => {
|
|||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
if (!formRef.value) return
|
if (!formRef.value) return
|
||||||
|
|
||||||
await formRef.value.validate(async (valid) => {
|
try {
|
||||||
if (valid) {
|
await formRef.value.validate()
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.warning('请检查表单填写是否完整')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (form.userId) {
|
if (form.userId) {
|
||||||
await updateUser(form.userId, form)
|
await updateUser(form.userId, form)
|
||||||
@ -250,13 +255,12 @@ const handleSubmit = async () => {
|
|||||||
ElMessage.success('创建成功')
|
ElMessage.success('创建成功')
|
||||||
}
|
}
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
fetchData()
|
await fetchData()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('保存失败:', error)
|
console.error('保存失败:', error)
|
||||||
|
ElMessage.error(error.message || '操作失败')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleResetPassword = (row) => {
|
const handleResetPassword = (row) => {
|
||||||
passwordForm.userId = row.userId
|
passwordForm.userId = row.userId
|
||||||
@ -273,8 +277,10 @@ const handlePasswordSubmit = async () => {
|
|||||||
await resetPassword(passwordForm.userId, passwordForm.newPassword)
|
await resetPassword(passwordForm.userId, passwordForm.newPassword)
|
||||||
ElMessage.success('密码重置成功')
|
ElMessage.success('密码重置成功')
|
||||||
passwordDialogVisible.value = false
|
passwordDialogVisible.value = false
|
||||||
|
await fetchData()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('密码重置失败:', error)
|
console.error('密码重置失败:', error)
|
||||||
|
ElMessage.error(error.message || '密码重置失败')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,9 +295,10 @@ const handleToggleStatus = (row) => {
|
|||||||
try {
|
try {
|
||||||
await updateUserStatus(row.userId, newStatus)
|
await updateUserStatus(row.userId, newStatus)
|
||||||
ElMessage.success(`${actionText}成功`)
|
ElMessage.success(`${actionText}成功`)
|
||||||
fetchData()
|
await fetchData()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('状态更新失败:', error)
|
console.error('状态更新失败:', error)
|
||||||
|
ElMessage.error(error.message || '操作失败')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -305,9 +312,14 @@ const handleDelete = (row) => {
|
|||||||
try {
|
try {
|
||||||
await deleteUser(row.userId)
|
await deleteUser(row.userId)
|
||||||
ElMessage.success('删除成功')
|
ElMessage.success('删除成功')
|
||||||
fetchData()
|
// 如果删除的是当前页最后一条且不是第一页,返回上一页
|
||||||
|
if (tableData.value.length === 1 && page.current > 1) {
|
||||||
|
page.current--
|
||||||
|
}
|
||||||
|
await fetchData()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('删除失败:', error)
|
console.error('删除失败:', error)
|
||||||
|
ElMessage.error(error.message || '删除失败')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 60e29de355ce8eaea6bac706fb17947b1294e6f4
|
Subproject commit fb2653fb5c2e5c0003168a35655c8fba1f2c32c2
|
||||||
Loading…
x
Reference in New Issue
Block a user