import { useUserStore } from '@/stores/modules/userStore'

export function checkStatus(res: any) {
  console.log('err------', res)
  let errMessage = res.data.message
  const userStore = useUserStore()

  switch (res.statusCode) {
    case 400: {
      errMessage = `${errMessage}`
      break
    }
    case 401: {
      uni.showModal({
        title: '提示',
        content: '令牌过期，请重新登录',
        showCancel: false,
        confirmText: '确定',
        success(res) {
          if (res.confirm) {
            userStore.logoutAction()
          }
        },
      })
      break
    }
    case 403: {
      errMessage = '暂无权限查看'
      break
    }
    case 404: {
      errMessage = '服务不存在，请返回'
      break
    }
    case 422: {
      const errors_msg = []
      for (const key in res.data.errors) {
        errors_msg.push(res.data.errors[key][0])
      }
      errMessage = errors_msg.join('\n')
      break
    }
    case 429: {
      errMessage = '请求太频繁，请稍后再试'
      break
    }
    case 500: {
      errMessage = '服务器错误，请联系管理员'
      break
    }
    case 503: {
      errMessage = '服务不可用，请稍候再试'
      break
    }
    default: {
      errMessage = `${errMessage}`
    }
  }

  if (errMessage) {
    // 全局处理 z-paging 的异常，在底层的网络请求抛出异常时调用
    uni.$emit('z-paging-error-emit')
    uni.showToast({
      icon: 'none',
      title: errMessage,
      duration: 5000,
    })
    return false
  }
  return true
}
