fix: 改进前端表单验证和错误处理

优化内容:
1. 角色管理和菜单管理的 handleSubmit 增加表单验证错误捕获
2. 修复角色分配菜单时的数据访问错误(menuRes.data -> menuRes)
3. 添加 console.error 日志便于调试
4. 统一错误提示信息

这样在表单验证失败或请求失败时,用户可以看到明确的错误提示
This commit is contained in:
zhangjf 2026-02-15 17:02:33 +08:00
parent db4d89144d
commit 64b8f42d5a
2 changed files with 19 additions and 4 deletions

View File

@ -231,7 +231,13 @@ const handleEdit = (row) => {
} }
const handleSubmit = async () => { const handleSubmit = async () => {
await formRef.value.validate() try {
await formRef.value.validate()
} catch (error) {
ElMessage.warning('请检查表单填写是否完整')
return
}
try { try {
if (form.menuId) { if (form.menuId) {
await updateMenu(form.menuId, form) await updateMenu(form.menuId, form)
@ -243,6 +249,7 @@ const handleSubmit = async () => {
dialogVisible.value = false dialogVisible.value = false
loadTableData() loadTableData()
} catch (error) { } catch (error) {
console.error('菜单操作失败:', error)
ElMessage.error(error.message || '操作失败') ElMessage.error(error.message || '操作失败')
} }
} }

View File

@ -232,7 +232,13 @@ const handleEdit = (row) => {
} }
const handleSubmit = async () => { const handleSubmit = async () => {
await formRef.value.validate() try {
await formRef.value.validate()
} catch (error) {
ElMessage.warning('请检查表单填写是否完整')
return
}
try { try {
if (form.roleId) { if (form.roleId) {
await updateRole(form.roleId, form) await updateRole(form.roleId, form)
@ -244,6 +250,7 @@ const handleSubmit = async () => {
dialogVisible.value = false dialogVisible.value = false
loadTableData() loadTableData()
} catch (error) { } catch (error) {
console.error('角色操作失败:', error)
ElMessage.error(error.message || '操作失败') ElMessage.error(error.message || '操作失败')
} }
} }
@ -269,7 +276,7 @@ const handleAssignMenu = async (row) => {
try { try {
// //
const menuRes = await getMenuTree() const menuRes = await getMenuTree()
menuTreeData.value = buildMenuTree(menuRes.data) menuTreeData.value = buildMenuTree(menuRes)
// //
const menuIdsRes = await getRoleMenuIds(row.roleId) const menuIdsRes = await getRoleMenuIds(row.roleId)
@ -277,9 +284,10 @@ const handleAssignMenu = async (row) => {
// //
setTimeout(() => { setTimeout(() => {
menuTreeRef.value.setCheckedKeys(menuIdsRes.data || []) menuTreeRef.value.setCheckedKeys(menuIdsRes || [])
}, 100) }, 100)
} catch (error) { } catch (error) {
console.error('加载菜单失败:', error)
ElMessage.error('加载菜单失败') ElMessage.error('加载菜单失败')
} }
} }