|  |  | 
 |  |  | import qs from 'qs'; | 
 |  |  | import Taro from '@tarojs/taro'; | 
 |  |  | import { getToken } from '@/utils'; | 
 |  |  | import { tokenIsExpired, Message, SensitiveManage } from '@12333/utils'; | 
 |  |  | import { tokenIsExpired, Message, SensitiveManage, httpLoggerRecord } from '@12333/utils'; | 
 |  |  | import { useUserStoreWithOut } from '@/stores/modules/user'; | 
 |  |  |  | 
 |  |  | const RefreshTokenUrl = '/gettokenbyrefreshtoken'; | 
 |  |  | 
 |  |  |    */ | 
 |  |  |   msg?: string; | 
 |  |  |   showType?: ErrorShowType; | 
 |  |  |   traceId?: string; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | interface ErrorResponse { | 
 |  |  | 
 |  |  |     // 错误接收及处理 | 
 |  |  |     errorHandler: (error, opts) => { | 
 |  |  |       console.log('error: ', error); | 
 |  |  |  | 
 |  |  |       const url = opts.url ?? ''; | 
 |  |  |       httpLoggerRecord.error({ | 
 |  |  |         message: `[${url}] 请求错误`, | 
 |  |  |         httpParams: { | 
 |  |  |           url: url, | 
 |  |  |           //@ts-ignore | 
 |  |  |           traceId: error?.info?.traceId, | 
 |  |  |           stackTrace: error.stack, | 
 |  |  |         }, | 
 |  |  |         args: [{ data: opts.data, params: opts.params, headers: opts.headers }], | 
 |  |  |       }); | 
 |  |  |  | 
 |  |  |       if (opts?.skipErrorHandler) throw error; | 
 |  |  |  | 
 |  |  |       if (opts?.customErrorHandler) { | 
 |  |  | 
 |  |  |       (config) => { | 
 |  |  |         const $config = config; | 
 |  |  |  | 
 |  |  |         httpLoggerRecord.info({ | 
 |  |  |           message: `[${$config.url}] 请求开始`, | 
 |  |  |           httpParams: { | 
 |  |  |             url: $config.url, | 
 |  |  |           }, | 
 |  |  |           args: [{ data: $config.data, params: $config.params, headers: $config.headers }], | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |         const token = getToken(); | 
 |  |  |  | 
 |  |  |         const userStore = useUserStoreWithOut(); | 
 |  |  | 
 |  |  |       (response) => { | 
 |  |  |         const $config = response.config as IRequestOptions; | 
 |  |  |  | 
 |  |  |         httpLoggerRecord.info({ | 
 |  |  |           message: `[${$config.url}] 请求结束`, | 
 |  |  |           httpParams: { | 
 |  |  |             url: $config.url, | 
 |  |  |             traceId: response.data?.traceId, | 
 |  |  |           }, | 
 |  |  |           args: [{ data: $config.data, params: $config.params, headers: $config.headers }], | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |         const { needNProcess, getResponse = false } = $config; | 
 |  |  |  | 
 |  |  |         const userStore = useUserStoreWithOut(); |