From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 21 十二月 2024 18:40:43 +0800 Subject: [PATCH] 新建德森项目分支 --- zy-asrs-flow/src/requestErrorConfig.ts | 218 +++++++++++++++++++++++++++--------------------------- 1 files changed, 109 insertions(+), 109 deletions(-) diff --git a/zy-asrs-flow/src/requestErrorConfig.ts b/zy-asrs-flow/src/requestErrorConfig.ts index c0c4a6a..4ad28e2 100644 --- a/zy-asrs-flow/src/requestErrorConfig.ts +++ b/zy-asrs-flow/src/requestErrorConfig.ts @@ -1,109 +1,109 @@ -锘縤mport type { RequestOptions } from '@@/plugin-request/request'; -import type { RequestConfig } from '@umijs/max'; -import { message, notification } from 'antd'; - -// 閿欒澶勭悊鏂规锛� 閿欒绫诲瀷 -enum ErrorShowType { - SILENT = 0, - WARN_MESSAGE = 1, - ERROR_MESSAGE = 2, - NOTIFICATION = 3, - REDIRECT = 9, -} -// 涓庡悗绔害瀹氱殑鍝嶅簲鏁版嵁鏍煎紡 -interface ResponseStructure { - success: boolean; - data: any; - errorCode?: number; - errorMessage?: string; - showType?: ErrorShowType; -} - -/** - * @name 閿欒澶勭悊 - * pro 鑷甫鐨勯敊璇鐞嗭紝 鍙互鍦ㄨ繖閲屽仛鑷繁鐨勬敼鍔� - * @doc https://umijs.org/docs/max/request#閰嶇疆 - */ -export const errorConfig: RequestConfig = { - // 閿欒澶勭悊锛� umi@3 鐨勯敊璇鐞嗘柟妗堛�� - errorConfig: { - // 閿欒鎶涘嚭 - errorThrower: (res) => { - const { success, data, errorCode, errorMessage, showType } = - res as unknown as ResponseStructure; - if (!success) { - const error: any = new Error(errorMessage); - error.name = 'BizError'; - error.info = { errorCode, errorMessage, showType, data }; - throw error; // 鎶涘嚭鑷埗鐨勯敊璇� - } - }, - // 閿欒鎺ユ敹鍙婂鐞� - errorHandler: (error: any, opts: any) => { - if (opts?.skipErrorHandler) throw error; - // 鎴戜滑鐨� errorThrower 鎶涘嚭鐨勯敊璇�� - if (error.name === 'BizError') { - const errorInfo: ResponseStructure | undefined = error.info; - if (errorInfo) { - const { errorMessage, errorCode } = errorInfo; - switch (errorInfo.showType) { - case ErrorShowType.SILENT: - // do nothing - break; - case ErrorShowType.WARN_MESSAGE: - message.warning(errorMessage); - break; - case ErrorShowType.ERROR_MESSAGE: - message.error(errorMessage); - break; - case ErrorShowType.NOTIFICATION: - notification.open({ - description: errorMessage, - message: errorCode, - }); - break; - case ErrorShowType.REDIRECT: - // TODO: redirect - break; - default: - message.error(errorMessage); - } - } - } else if (error.response) { - // Axios 鐨勯敊璇� - // 璇锋眰鎴愬姛鍙戝嚭涓旀湇鍔″櫒涔熷搷搴斾簡鐘舵�佺爜锛屼絾鐘舵�佷唬鐮佽秴鍑轰簡 2xx 鐨勮寖鍥� - message.error(`Response status:${error.response.status}`); - } else if (error.request) { - // 璇锋眰宸茬粡鎴愬姛鍙戣捣锛屼絾娌℃湁鏀跺埌鍝嶅簲 - // \`error.request\` 鍦ㄦ祻瑙堝櫒涓槸 XMLHttpRequest 鐨勫疄渚嬶紝 - // 鑰屽湪node.js涓槸 http.ClientRequest 鐨勫疄渚� - message.error('None response! Please retry.'); - } else { - // 鍙戦�佽姹傛椂鍑轰簡鐐归棶棰� - message.error('Request error, please retry.'); - } - }, - }, - - // 璇锋眰鎷︽埅鍣� - requestInterceptors: [ - (config: RequestOptions) => { - // 鎷︽埅璇锋眰閰嶇疆锛岃繘琛屼釜鎬у寲澶勭悊銆� - const url = config?.url?.concat('?token = 123'); - return { ...config, url }; - }, - ], - - // 鍝嶅簲鎷︽埅鍣� - responseInterceptors: [ - (response) => { - // 鎷︽埅鍝嶅簲鏁版嵁锛岃繘琛屼釜鎬у寲澶勭悊 - const { data } = response as unknown as ResponseStructure; - - if (data?.success === false) { - message.error('璇锋眰澶辫触锛�'); - } - return response; - }, - ], -}; +锘縤mport type { RequestOptions } from '@@/plugin-request/request'; +import type { RequestConfig } from '@umijs/max'; +import { message, notification } from 'antd'; + +// 閿欒澶勭悊鏂规锛� 閿欒绫诲瀷 +enum ErrorShowType { + SILENT = 0, + WARN_MESSAGE = 1, + ERROR_MESSAGE = 2, + NOTIFICATION = 3, + REDIRECT = 9, +} +// 涓庡悗绔害瀹氱殑鍝嶅簲鏁版嵁鏍煎紡 +interface ResponseStructure { + success: boolean; + data: any; + errorCode?: number; + errorMessage?: string; + showType?: ErrorShowType; +} + +/** + * @name 閿欒澶勭悊 + * pro 鑷甫鐨勯敊璇鐞嗭紝 鍙互鍦ㄨ繖閲屽仛鑷繁鐨勬敼鍔� + * @doc https://umijs.org/docs/max/request#閰嶇疆 + */ +export const errorConfig: RequestConfig = { + // 閿欒澶勭悊锛� umi@3 鐨勯敊璇鐞嗘柟妗堛�� + errorConfig: { + // 閿欒鎶涘嚭 + errorThrower: (res) => { + const { success, data, errorCode, errorMessage, showType } = + res as unknown as ResponseStructure; + if (!success) { + const error: any = new Error(errorMessage); + error.name = 'BizError'; + error.info = { errorCode, errorMessage, showType, data }; + throw error; // 鎶涘嚭鑷埗鐨勯敊璇� + } + }, + // 閿欒鎺ユ敹鍙婂鐞� + errorHandler: (error: any, opts: any) => { + if (opts?.skipErrorHandler) throw error; + // 鎴戜滑鐨� errorThrower 鎶涘嚭鐨勯敊璇�� + if (error.name === 'BizError') { + const errorInfo: ResponseStructure | undefined = error.info; + if (errorInfo) { + const { errorMessage, errorCode } = errorInfo; + switch (errorInfo.showType) { + case ErrorShowType.SILENT: + // do nothing + break; + case ErrorShowType.WARN_MESSAGE: + message.warning(errorMessage); + break; + case ErrorShowType.ERROR_MESSAGE: + message.error(errorMessage); + break; + case ErrorShowType.NOTIFICATION: + notification.open({ + description: errorMessage, + message: errorCode, + }); + break; + case ErrorShowType.REDIRECT: + // TODO: redirect + break; + default: + message.error(errorMessage); + } + } + } else if (error.response) { + // Axios 鐨勯敊璇� + // 璇锋眰鎴愬姛鍙戝嚭涓旀湇鍔″櫒涔熷搷搴斾簡鐘舵�佺爜锛屼絾鐘舵�佷唬鐮佽秴鍑轰簡 2xx 鐨勮寖鍥� + message.error(`Response status:${error.response.status}`); + } else if (error.request) { + // 璇锋眰宸茬粡鎴愬姛鍙戣捣锛屼絾娌℃湁鏀跺埌鍝嶅簲 + // \`error.request\` 鍦ㄦ祻瑙堝櫒涓槸 XMLHttpRequest 鐨勫疄渚嬶紝 + // 鑰屽湪node.js涓槸 http.ClientRequest 鐨勫疄渚� + message.error('None response! Please retry.'); + } else { + // 鍙戦�佽姹傛椂鍑轰簡鐐归棶棰� + message.error('Request error, please retry.'); + } + }, + }, + + // 璇锋眰鎷︽埅鍣� + requestInterceptors: [ + (config: RequestOptions) => { + // 鎷︽埅璇锋眰閰嶇疆锛岃繘琛屼釜鎬у寲澶勭悊銆� + const url = config?.url?.concat('?token = 123'); + return { ...config, url }; + }, + ], + + // 鍝嶅簲鎷︽埅鍣� + responseInterceptors: [ + (response) => { + // 鎷︽埅鍝嶅簲鏁版嵁锛岃繘琛屼釜鎬у寲澶勭悊 + const { data } = response as unknown as ResponseStructure; + + if (data?.success === false) { + message.error('璇锋眰澶辫触锛�'); + } + return response; + }, + ], +}; -- Gitblit v1.9.1