| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | import { extend } from 'umi-request'import { Toast } from 'vant'import cleanDeep from 'clean-deep'import { getRequestHostname, browser } from '/src/helpers/utils'// import ApiRouter from '/src/api-router'import { postMessage } from './native-message'export interface SearchInitParams {  rows?: string | number  page?: string | number}export interface InitSearchRespones {  data: {    rows: any[]    [key: string]: any  }  [key: string]: any}let isOpenLogin = falseconst request = extend({  requestType: 'json',  timeout: 10000,  prefix: getRequestHostname(),})request.use(async (ctx, next) => {  const { url, options } = ctx.req  await next()})request.interceptors.request.use(  (url, options: any) => {    const Authorization = sessionStorage.getItem('Authorization') || ''    return {      url,      options: {        ...options,        params: cleanDeep(options.params),        headers: {          ...options.headers,          Authorization,        },      },    }  },  { global: false })request.interceptors.response.use(  async (res, options) => {    const url = new URL(res.url)    if (res.status > 299 || res.status < 200) {      const msg = '服务器错误,状态码' + res.status      Toast(msg)      throw new Error(msg)    }    const data = await res.clone().json()    if (data.code !== 200 && data.errCode !== 0) {      const msg = data.msg || data.message || '处理失败,请重试'      if (!(data.code === 403 || data.code === 401)) {        Toast(msg)      }      const browserInfo = browser()      if (data.code === 403 && browserInfo.isApp && !isOpenLogin) {        if (browserInfo.android) {          postMessage({            api: 'login',          })          ;(window as any).DAYA.postMessage(JSON.stringify({ api: 'login' }))        } else if (browserInfo.iPhone) {          ;(window as any).webkit.messageHandlers.DAYA.postMessage(JSON.stringify({ api: 'login' }))        }      }      throw new Error(msg)    }    return res  },  { global: false })export default request
 |