feat(axiosSuccess): 操作成功后根据传入提示模式进行相应 (#2326)

This commit is contained in:
mfish 2022-11-06 06:55:07 +08:00 committed by GitHub
parent 9ae67bf9ca
commit 17d16ae545
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 1 deletions

View File

@ -2,6 +2,7 @@ export default {
api: {
operationFailed: 'Operation failed',
errorTip: 'Error Tip',
successTip: 'Success Tip',
errorMessage: 'The operation failed, the system is abnormal!',
timeoutMessage: 'Login timed out, please log in again!',
apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!',

View File

@ -2,6 +2,7 @@ export default {
api: {
operationFailed: '操作失败',
errorTip: '错误提示',
successTip: '成功提示',
errorMessage: '操作失败,系统异常!',
timeoutMessage: '登录超时,请重新登录!',
apiTimeoutMessage: '接口请求超时,请刷新页面重试!',

View File

@ -22,7 +22,7 @@ import axios from 'axios';
const globSetting = useGlobSetting();
const urlPrefix = globSetting.urlPrefix;
const { createMessage, createErrorModal } = useMessage();
const { createMessage, createErrorModal, createSuccessModal } = useMessage();
/**
* @description: 便
@ -56,6 +56,15 @@ const transform: AxiosTransform = {
// 这里逻辑可以根据项目进行修改
const hasSuccess = data && Reflect.has(data, 'code') && code === ResultEnum.SUCCESS;
if (hasSuccess) {
let successMsg = message;
if (successMsg === null || successMsg === undefined || successMsg === '') {
successMsg = '操作成功';
}
if (options.successMessageMode === 'modal') {
createSuccessModal({ title: t('sys.api.successTip'), content: successMsg });
} else if (options.successMessageMode === 'message') {
createMessage.success(successMsg);
}
return result;
}

3
types/axios.d.ts vendored
View File

@ -1,4 +1,5 @@
export type ErrorMessageMode = 'none' | 'modal' | 'message' | undefined;
export type SuccessMessageMode = ErrorMessageMode;
export interface RequestOptions {
// Splicing request parameters to url
@ -18,6 +19,8 @@ export interface RequestOptions {
urlPrefix?: string;
// Error message prompt type
errorMessageMode?: ErrorMessageMode;
// Success message prompt type
successMessageMode?: SuccessMessageMode;
// Whether to add a timestamp
joinTime?: boolean;
ignoreCancelToken?: boolean;