捕获异常

This commit is contained in:
2026-05-25 15:09:58 +08:00
parent 3662306e8d
commit 453dde2eaa
4 changed files with 31 additions and 4 deletions

View File

@ -21,6 +21,9 @@ interface UserItem {
id: number;
username: string;
par_uid: number;
wallet_capital:{
amount:string
},
created_at: string; // 时间字符串类型
status: number;
parent: ParentUser; // 嵌套的父级用户对象

View File

@ -31,7 +31,7 @@ const hasError = ref(false)
const errorMessage = ref('')
let unwatchRoute: (() => void) | null = null
// API
// API
const isApiError = (err: any): boolean => {
console.log('err:', err);
// axios config
@ -41,9 +41,32 @@ console.log('err:', err);
//
if (err.message?.includes('timeout') || err.message?.includes('Timeout')) return true
//
if (err.message?.includes('cancel') || err.message?.includes('cancel') || err.name === 'CanceledError') return true
if (err.message?.includes('cancel') || err.name === 'CanceledError') return true
//
if (err.message?.includes('request') || err.message?.includes('Request') || err.data || err.msg) return true
// ========== ==========
// Element Plus { fieldName: [errorMessage], ... }
// Error
if (err && typeof err === 'object' && !err.message && !err.stack) {
const keys = Object.keys(err)
if (keys.length > 0 && keys.every(key => Array.isArray(err[key]))) {
// {varietyName: [], ...}
return true
}
}
// Element Plus
const errorMessage = err.message || err.msg || ''
//
const formValidationKeywords = ['validate', 'validation', '校验', '验证', '必填', 'required', 'pattern', '格式']
if (formValidationKeywords.some(keyword => errorMessage.toLowerCase().includes(keyword.toLowerCase()))) return true
// fieldtrigger
if (err.field || err.fieldName || err.prop || err.validator) return true
//
if (Array.isArray(err.errors) && err.errors.length > 0) return true
//
if (err.name === 'ValidationError' || err.name === 'FormValidateError') return true
return true
}

View File

@ -264,6 +264,7 @@ const getClientList = async () => {
//
clientTree.value = data.data.map((item) => ({
...item,
amount: item.wallet_capital.amount,
//
createdTime: item.created_at,
//

View File

@ -54,7 +54,7 @@ export const clientTableColumns = [
{ prop: 'username', label: '用户名', align: 'center' as const },
{ prop: 'createdTime', label: '注册时间', align: 'center' as const },
{ prop: 'agentUsername', label: '所属代理', align: 'center' as const },
{ prop: 'wallet_capital.amount', label: '资金', align: 'center' as const, isNumber: true },
{ prop: 'amount', label: '资金', align: 'center' as const, isNumber: true },
{ label: '状态', slotName: 'status', align: 'center' as const },
{ label: '操作', slotName: 'action', align: 'center' as const },
]