From 17d16ae545b18601b109cc67372928bf48f41cd8 Mon Sep 17 00:00:00 2001 From: mfish Date: Sun, 6 Nov 2022 06:55:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(axiosSuccess):=20=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=90=8E=E6=A0=B9=E6=8D=AE=E4=BC=A0=E5=85=A5?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E6=A8=A1=E5=BC=8F=E8=BF=9B=E8=A1=8C=E7=9B=B8?= =?UTF-8?q?=E5=BA=94=20(#2326)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/lang/en/sys.ts | 1 + src/locales/lang/zh-CN/sys.ts | 1 + src/utils/http/axios/index.ts | 11 ++++++++++- types/axios.d.ts | 3 +++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/locales/lang/en/sys.ts b/src/locales/lang/en/sys.ts index 3b2960075..1e200f573 100644 --- a/src/locales/lang/en/sys.ts +++ b/src/locales/lang/en/sys.ts @@ -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!', diff --git a/src/locales/lang/zh-CN/sys.ts b/src/locales/lang/zh-CN/sys.ts index 8dad1cf42..24d38dc6c 100644 --- a/src/locales/lang/zh-CN/sys.ts +++ b/src/locales/lang/zh-CN/sys.ts @@ -2,6 +2,7 @@ export default { api: { operationFailed: '操作失败', errorTip: '错误提示', + successTip: '成功提示', errorMessage: '操作失败,系统异常!', timeoutMessage: '登录超时,请重新登录!', apiTimeoutMessage: '接口请求超时,请刷新页面重试!', diff --git a/src/utils/http/axios/index.ts b/src/utils/http/axios/index.ts index bddda7087..4053d44f7 100644 --- a/src/utils/http/axios/index.ts +++ b/src/utils/http/axios/index.ts @@ -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; } diff --git a/types/axios.d.ts b/types/axios.d.ts index b18af05af..0ff2f5858 100644 --- a/types/axios.d.ts +++ b/types/axios.d.ts @@ -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;