mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-08-27 14:31:41 +08:00
feat: multi-language support
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { userStore } from '/@/store/modules/user';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
const { createMessage } = useMessage();
|
||||
|
||||
const { t } = useI18n('sys.api');
|
||||
|
||||
const error = createMessage.error!;
|
||||
export function checkStatus(status: number, msg: string): void {
|
||||
switch (status) {
|
||||
@@ -12,39 +15,39 @@ export function checkStatus(status: number, msg: string): void {
|
||||
// 未登录则跳转登录页面,并携带当前页面的路径
|
||||
// 在登录成功后返回当前页面,这一步需要在登录页操作。
|
||||
case 401:
|
||||
error('用户没有权限(令牌、用户名、密码错误)!');
|
||||
error(t('errMsg401'));
|
||||
userStore.loginOut(true);
|
||||
break;
|
||||
case 403:
|
||||
error('用户得到授权,但是访问是被禁止的。!');
|
||||
error(t('errMsg403'));
|
||||
break;
|
||||
// 404请求不存在
|
||||
case 404:
|
||||
error('网络请求错误,未找到该资源!');
|
||||
error(t('errMsg404'));
|
||||
break;
|
||||
case 405:
|
||||
error('网络请求错误,请求方法未允许!');
|
||||
error(t('errMsg405'));
|
||||
break;
|
||||
case 408:
|
||||
error('网络请求超时!');
|
||||
error(t('errMsg408'));
|
||||
break;
|
||||
case 500:
|
||||
error('服务器错误,请联系管理员!');
|
||||
error(t('errMsg500'));
|
||||
break;
|
||||
case 501:
|
||||
error('网络未实现!');
|
||||
error(t('errMsg501'));
|
||||
break;
|
||||
case 502:
|
||||
error('网络错误!');
|
||||
error(t('errMsg502'));
|
||||
break;
|
||||
case 503:
|
||||
error('服务不可用,服务器暂时过载或维护!');
|
||||
error(t('errMsg503'));
|
||||
break;
|
||||
case 504:
|
||||
error('网络超时!');
|
||||
error(t('errMsg504'));
|
||||
break;
|
||||
case 505:
|
||||
error('http版本不支持该请求!');
|
||||
error(t('errMsg505'));
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
@@ -20,7 +20,9 @@ import { formatRequestDate } from '/@/utils/dateUtil';
|
||||
import { setObjToUrlParams, deepMerge } from '/@/utils';
|
||||
import { errorStore } from '/@/store/modules/error';
|
||||
import { errorResult } from './const';
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
|
||||
const { t } = useI18n('sys.api');
|
||||
const globSetting = useGlobSetting();
|
||||
const prefix = globSetting.urlPrefix;
|
||||
const { createMessage, createErrorModal } = useMessage();
|
||||
@@ -55,7 +57,7 @@ const transform: AxiosTransform = {
|
||||
if (message) {
|
||||
// errorMessageMode=‘modal’的时候会显示modal错误弹窗,而不是消息提示,用于一些比较重要的错误
|
||||
if (options.errorMessageMode === 'modal') {
|
||||
createErrorModal({ title: '错误提示', content: message });
|
||||
createErrorModal({ title: t('errorTip'), content: message });
|
||||
} else {
|
||||
createMessage.error(message);
|
||||
}
|
||||
@@ -74,7 +76,7 @@ const transform: AxiosTransform = {
|
||||
createMessage.error(data.message);
|
||||
Promise.reject(new Error(message));
|
||||
} else {
|
||||
const msg = '操作失败,系统异常!';
|
||||
const msg = t('errorMessage');
|
||||
createMessage.error(msg);
|
||||
Promise.reject(new Error(msg));
|
||||
}
|
||||
@@ -82,9 +84,9 @@ const transform: AxiosTransform = {
|
||||
}
|
||||
// 登录超时
|
||||
if (code === ResultEnum.TIMEOUT) {
|
||||
const timeoutMsg = '登录超时,请重新登录!';
|
||||
const timeoutMsg = t('timeoutMessage');
|
||||
createErrorModal({
|
||||
title: '操作失败',
|
||||
title: t('operationFailed'),
|
||||
content: timeoutMsg,
|
||||
});
|
||||
Promise.reject(new Error(timeoutMsg));
|
||||
@@ -159,12 +161,12 @@ const transform: AxiosTransform = {
|
||||
const err: string = error.toString();
|
||||
try {
|
||||
if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) {
|
||||
createMessage.error('接口请求超时,请刷新页面重试!');
|
||||
createMessage.error(t('apiTimeoutMessage'));
|
||||
}
|
||||
if (err && err.includes('Network Error')) {
|
||||
createErrorModal({
|
||||
title: '网络异常',
|
||||
content: '请检查您的网络连接是否正常!',
|
||||
title: t('networkException'),
|
||||
content: t('networkExceptionMsg'),
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
|
Reference in New Issue
Block a user