From c0ecd5e25b6b0afc905dc522a659a52abcb6f0f5 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sat, 21 Jan 2023 17:16:51 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E9=94=99=E8=AF=AF=E6=8A=9B=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/shared/api/request.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/client/shared/api/request.ts b/client/shared/api/request.ts index 4c0cf451..53135054 100644 --- a/client/shared/api/request.ts +++ b/client/shared/api/request.ts @@ -1,6 +1,7 @@ import axios, { AxiosRequestConfig } from 'axios'; import _get from 'lodash/get'; import _isFunction from 'lodash/isFunction'; +import { t } from '../i18n'; import { getErrorHook, tokenGetter } from '../manager/request'; import { getServiceUrl, onServiceUrlChange } from '../manager/service'; @@ -52,8 +53,23 @@ function createRequest() { }, (err) => { // 尝试获取错误信息 - const errorMsg: string = _get(err, 'response.data.message'); - const code: number = _get(err, 'response.data.code'); + const responseData = _get(err, 'response.data') ?? {}; + let errorMsg: string = responseData.message; + const code: number = responseData.code; + + if (responseData.type === 'VALIDATION_ERROR') { + // 校验失败 + errorMsg = t('请求参数校验失败'); + + if (Array.isArray(responseData.data)) { + try { + errorMsg += `: ${responseData.data + .map((item: any) => item.field) + .join(', ')}`; + } catch (e) {} + } + } + if (_isFunction(getErrorHook)) { const isContinue = getErrorHook(err); if (isContinue === false) {