| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import store from '../store'
- import CryptoJS from 'crypto-js'
- import qs from 'qs'
- import common from '../utils/common'
- import {
- baseURL
- } from '@/api/config'
- let requestNum = 0 // 当前请求数量
- // console.log(baseURL)
- export function request({
- url,
- method,
- data,
- ...config
- }, isLoading = false, isErrorToast = true) {
- data = {
- ...store.state.sysInfo,
- ...data
- }
- showLoading(isLoading)
- return new Promise((resolve, reject) => {
- uni.request({
- url: baseURL + url,
- method: method || 'POST',
- data: {
- ...data,
- sign: getSign(data)
- },
- header: {
- 'content-type': 'application/x-www-form-urlencoded',
- token: store.state.token
- },
- timeout: 30000,
- ...config,
- success: ({
- statusCode,
- data = {}
- }) => {
- if (statusCode === 200) {
- if (data.code === 205 || data.code === 206) {
- resolve(data)
- } else if (data.code >= 200 && data.code < 300) {
- resolve(data.data)
- } else {
- reject(errHandle(data.code, data, isErrorToast))
- }
- } else {
- reject(errHandle(statusCode, data, isErrorToast))
- }
- },
- fail: xhr => {
- console.log('failXhr => ', xhr)
- reject(errHandle(null, null, isErrorToast))
- },
- complete: () => {
- hideLoading(isLoading)
- }
- })
- })
- }
- function errHandle(code, data, isErrorToast) {
- if (code === 401 || code === 402 || code === 403) {
- // 401 未登录或者 token 过期,402 账号在其他地方登录
- store.commit('exit')
- }
- if (isErrorToast) {
- common.toast(data.msg || '请求失败,请稍后再试')
- }
- return {
- code,
- data
- }
- }
- function getSign(obj) {
- // 按 ASCII 码排序
- let str = qs.stringify(obj, {
- sort: (a, b) => a.localeCompare(b)
- })
- // 拼接密钥
- str += '&key=fec905e4e7568e8f70529e1dc1f51c59'
- str = decodeURIComponent(str)
- // MD5 运算
- // str = CryptoJS.MD5(str)
- // AES 加密
- str = common.Encryption(str)
- // 转大写
- str = str.toUpperCase()
- return str
- }
- function showLoading(isLoading) {
- if (!isLoading) return
- requestNum++
- if (requestNum === 1) {
- uni.showLoading({
- title: '加载中...'
- })
- }
- }
- function hideLoading(isLoading) {
- if (!isLoading) return
- requestNum--
- if (requestNum <= 0) {
- uni.hideLoading()
- }
- }
|