123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- import {
- baseUrl
- } from "@/config"
- import platform from "@/utils/platform"
- import getEnv from "@/utils/env" // 获取环境变量
- import store from "@/store"
- import {
- wipeNulish
- } from '@/utils/utils.js'
- function requestHandle(obj) {
- let header = obj.header || {}
- const reqData = wipeNulish(obj.data) || {}
- const accessToken = uni.getStorageSync('accessToken') || ''
- const tokenType = uni.getStorageSync('tokenType') || ''
- const Authorization = uni.getStorageSync('Authorization') || ''
- const customRes = obj.customRes
- const plat = platform()
- const env = getEnv()
- let base = (plat === 'H5' && env === 'dev') ? '/api' : baseUrl
- const BASE_URL = obj.url.indexOf("http") > -1 || obj.url.indexOf("https://") > -1 ? obj.url : base + obj.url;
- Object.assign(header, {
- Authorization: Authorization,
- accessToken:accessToken,
- platform: plat
- })
- if (plat === 'APP-PLUS') {
- Object.assign(header, store.state.info.versionInfo)
- }
- header.channel = 2 // 渠道-提货卡
- if (obj.loading) {
- uni.showLoading({
- mask: true
- })
- }
- return new Promise((resolve, reject) => {
- uni.request({
- method: obj.method,
- url: BASE_URL,
- data: reqData,
- header: header,
- dataType: "json"
- }).then(response => {
- uni.hideLoading()
- let [error, {
- data: {
- data,
- code,
- msg
- }
- }] = response
- if (error) {
- uni.showToast({
- title: "服务器炸了",
- icon: 'none'
- })
- }
- if (customRes) {
- resolve(response[1].data)
- } else if (code === 5001) { // 登录过期
- uni.removeStorageSync('accessToken')
- uni.removeStorageSync('tokenType')
- uni.removeStorageSync('userInfo')
- uni.removeStorageSync('currentBuyerAddr')
- // uni.removeStorageSync('payOpenId')
- const pages = getCurrentPages()
- if (pages[pages.length - 1].$page.fullPath.includes('login')) {
- return
- }
- uni.showToast({
- title: msg || '登录已过期',
- icon: 'none',
- mask: true
- })
- setTimeout(() => {
- uni.reLaunch({
- url: '/pages/login/index'
- })
- }, 1000)
- } else if (code !== 200) {
- uni.showToast({
- title: msg || '服务器开小差',
- icon: 'none'
- })
- } else {
- resolve(data)
- }
- }).catch(error => {
- uni.hideLoading()
- /**获取网络状态 */
- uni.getNetworkType({
- success: function(res) {
- if (res.networkType === 'none') {
- console.log('网络未连接,请检查网络状态')
- uni.showToast({
- title: '网络未连接,请检查网络状态',
- mask: false,
- icon: 'none'
- })
- } else {
- uni.showToast({
- title: '网络连接超时',
- icon: 'none'
- })
- }
- }
- })
- reject(error)
- })
- })
- }
- // customRes 用于自定义反参状态处理,凡是未加此参数 都当作反参code是0处理
- const request = {
- get: (obj) => {
- return new Promise((resolve, reject) => {
- requestHandle({
- method: 'GET',
- url: obj.url,
- data: obj.data,
- header: obj.header,
- customRes: obj.customRes,
- loading: obj.loading
- })
- .then((res) => {
- resolve(res)
- })
- .catch((err) => {
- reject(err)
- })
- });
- },
- post: (obj) => {
- return new Promise((resolve, reject) => {
- requestHandle({
- method: 'POST',
- url: obj.url,
- data: obj.data,
- header: obj.header,
- customRes: obj.customRes,
- loading: obj.loading
- })
- .then((res) => {
- resolve(res)
- })
- .catch((err) => {
- reject(err)
- })
- })
- },
- put: (obj) => {
- return new Promise((resolve, reject) => {
- requestHandle({
- method: 'PUT',
- url: obj.url,
- data: obj.data,
- header: obj.header,
- customRes: obj.customRes,
- loading: obj.loading
- })
- .then((res) => {
- resolve(res)
- })
- .catch((err) => {
- reject(err)
- })
- })
- },
- del: (obj) => {
- return new Promise((resolve, reject) => {
- requestHandle({
- method: 'DELETE',
- url: obj.url,
- data: obj.data,
- header: obj.header,
- customRes: obj.customRes,
- loading: obj.loading
- })
- .then((res) => {
- resolve(res)
- })
- .catch((err) => {
- reject(err)
- })
- })
- }
- }
- export default request
|