refactor(web): 前端错误处理统一化 — 9 个文件 13 处替换 handleApiError
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled

统一使用 api/client.ts 的 handleApiError() 替代内联错误提取:
- Login/Users/Roles/Organizations/Settings 操作失败提示
- ArticleEditor/ArticleTagManage/ArticleCategoryManage 表单错误
- FamilyMembersTab 家庭成员操作

零 response?.data?.message 内联模式残留
This commit is contained in:
iven
2026-05-03 19:59:12 +08:00
parent 443bfbae61
commit 0d3e45300f
9 changed files with 23 additions and 47 deletions

View File

@@ -21,6 +21,7 @@ import {
} from '@ant-design/icons';
import type { DataNode } from 'antd/es/tree';
import { useThemeMode } from '../hooks/useThemeMode';
import { handleApiError } from '../api/client';
import {
listOrgTree,
createOrg,
@@ -158,9 +159,7 @@ export default function Organizations() {
orgForm.resetFields();
fetchOrgTree();
} catch (err: unknown) {
const errorMsg =
(err as { response?: { data?: { message?: string } } })?.response?.data?.message || '操作失败';
message.error(errorMsg);
handleApiError(err, '操作失败');
}
};
@@ -173,9 +172,7 @@ export default function Organizations() {
setPositions([]);
fetchOrgTree();
} catch (err: unknown) {
const errorMsg =
(err as { response?: { data?: { message?: string } } })?.response?.data?.message || '删除失败';
message.error(errorMsg);
handleApiError(err, '删除失败');
}
};
@@ -198,9 +195,7 @@ export default function Organizations() {
deptForm.resetFields();
fetchDeptTree();
} catch (err: unknown) {
const errorMsg =
(err as { response?: { data?: { message?: string } } })?.response?.data?.message || '操作失败';
message.error(errorMsg);
handleApiError(err, '操作失败');
}
};
@@ -212,9 +207,7 @@ export default function Organizations() {
setPositions([]);
fetchDeptTree();
} catch (err: unknown) {
const errorMsg =
(err as { response?: { data?: { message?: string } } })?.response?.data?.message || '删除失败';
message.error(errorMsg);
handleApiError(err, '删除失败');
}
};
@@ -238,9 +231,7 @@ export default function Organizations() {
positionForm.resetFields();
fetchPositions();
} catch (err: unknown) {
const errorMsg =
(err as { response?: { data?: { message?: string } } })?.response?.data?.message || '操作失败';
message.error(errorMsg);
handleApiError(err, '操作失败');
}
};