Commit 17d16ae545b18601b109cc67372928bf48f41cd8

Authored by mfish
Committed by GitHub
1 parent 9ae67bf9

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

src/locales/lang/en/sys.ts
... ... @@ -2,6 +2,7 @@ export default {
2 2 api: {
3 3 operationFailed: 'Operation failed',
4 4 errorTip: 'Error Tip',
  5 + successTip: 'Success Tip',
5 6 errorMessage: 'The operation failed, the system is abnormal!',
6 7 timeoutMessage: 'Login timed out, please log in again!',
7 8 apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!',
... ...
src/locales/lang/zh-CN/sys.ts
... ... @@ -2,6 +2,7 @@ export default {
2 2 api: {
3 3 operationFailed: '操作失败',
4 4 errorTip: '错误提示',
  5 + successTip: '成功提示',
5 6 errorMessage: '操作失败,系统异常!',
6 7 timeoutMessage: '登录超时,请重新登录!',
7 8 apiTimeoutMessage: '接口请求超时,请刷新页面重试!',
... ...
src/utils/http/axios/index.ts
... ... @@ -22,7 +22,7 @@ import axios from 'axios';
22 22  
23 23 const globSetting = useGlobSetting();
24 24 const urlPrefix = globSetting.urlPrefix;
25   -const { createMessage, createErrorModal } = useMessage();
  25 +const { createMessage, createErrorModal, createSuccessModal } = useMessage();
26 26  
27 27 /**
28 28 * @description: 数据处理,方便区分多种处理方式
... ... @@ -56,6 +56,15 @@ const transform: AxiosTransform = {
56 56 // 这里逻辑可以根据项目进行修改
57 57 const hasSuccess = data && Reflect.has(data, 'code') && code === ResultEnum.SUCCESS;
58 58 if (hasSuccess) {
  59 + let successMsg = message;
  60 + if (successMsg === null || successMsg === undefined || successMsg === '') {
  61 + successMsg = '操作成功';
  62 + }
  63 + if (options.successMessageMode === 'modal') {
  64 + createSuccessModal({ title: t('sys.api.successTip'), content: successMsg });
  65 + } else if (options.successMessageMode === 'message') {
  66 + createMessage.success(successMsg);
  67 + }
59 68 return result;
60 69 }
61 70  
... ...
types/axios.d.ts
1 1 export type ErrorMessageMode = 'none' | 'modal' | 'message' | undefined;
  2 +export type SuccessMessageMode = ErrorMessageMode;
2 3  
3 4 export interface RequestOptions {
4 5 // Splicing request parameters to url
... ... @@ -18,6 +19,8 @@ export interface RequestOptions {
18 19 urlPrefix?: string;
19 20 // Error message prompt type
20 21 errorMessageMode?: ErrorMessageMode;
  22 + // Success message prompt type
  23 + successMessageMode?: SuccessMessageMode;
21 24 // Whether to add a timestamp
22 25 joinTime?: boolean;
23 26 ignoreCancelToken?: boolean;
... ...