| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- import $C from './config.js'
- import $U from './util.js'
- import { jsonFilterEmpty } from './tools.js'
- export default {
- // 全局配置 application/json;
- common: {
- baseUrl: $C.baseUrl,
- header: {
- // 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
- 'Content-Type': 'application/json;charset=utf-8'
- },
- data: {},
- method: 'GET',
- dataType: 'json',
- token: true
- },
- // 请求 返回promise
- request(options = {}) {
- let _that = this
- // 组织参数
- if (options.commonBaseUrl) {
- options.url = options.commonBaseUrl + options.url
- } else {
- options.url = this.common.baseUrl + options.url
- }
- options.header = options.header || this.common.header
- options.data = options.data || this.common.data
- options.method = options.method || this.common.method
- options.dataType = options.dataType || this.common.dataType
- options.header['api-type'] = 'wxapp'
- if (uni.getStorageSync('token')) {
- options.header.Authorization = uni.getStorageSync('token')
- options.header['api-token'] = uni.getStorageSync('token')
- }
- options.timeout = 10000
- uni.showLoading()
- // 请求
- return new Promise((res, rej) => {
- // 请求之前检测有没有网络
- uni.request({
- ...options,
- success: result => {
- uni.hideLoading()
- let {
- statusCode,
- data
- } = result
- // 返回原始数据
- if (options.native) {
- return res(result)
- }
- // 成功
- if (statusCode == 200) {
- if (data.code === 200) {
- res(data)
- } else if (data.code === 401) {
- uni.removeStorageSync('userInfo')
- uni.removeStorage({
- key: 'token',
- success: () => {
- setTimeout(function() {
- uni.reLaunch({ url: '/pages/home/dashboard/index', })
- }, 500)
- }
- })
- return rej(data)
- } else if (data.code === 403) {
- uni.removeStorageSync('userInfo')
- uni.removeStorage({
- key: 'token',
- success: () => {
- setTimeout(function() {
- uni.reLaunch({ url: '/pages/home/dashboard/index', })
- }, 500)
- }
- })
- return rej(data)
- } else if (data.code === 500) {
- uni.showToast({
- title: data.msg || '',
- icon: 'none',
- duration: 2000
- })
- return rej(data)
- } else {
- uni.hideLoading()
- uni.showToast({
- title: data.msg || '返回失败',
- icon: 'none',
- duration: 3000
- })
- return rej(data)
- }
- } else if (statusCode == 401 || statusCode == 403 || statusCode == 204) {
- // uni.removeStorageSync(`userInfo`)
- // uni.removeStorage({
- // key: `token`,
- // success: () => {
- // setTimeout(function() {
- // uni.reLaunch({
- // url: `/pages/home/dashboard/index`,
- // });
- // }, 500);
- // }
- // })
- return rej(data)
- } else {
- if (!options.msgFlag) {
- uni.showToast({
- title: data.msg || '返回失败',
- icon: 'none',
- duration: 3000
- })
- }
- return rej(data)
- }
- },
- fail: error => {
- uni.hideLoading()
- if (error.errMsg && error.errMsg.indexOf('fail timeout') != -1 || error
- .errMsg && error.errMsg.indexOf('请求超时') != -1) {
- uni.showToast({
- title: error.errMsg,
- icon: 'none',
- duration: 2500
- })
- } else {
- // uni.showToast({
- // title: '服务维护中,请稍后尝试',
- // icon: 'none',
- // duration: 2500
- // });
- }
- return rej(error)
- }
- })
- })
- },
- // get请求
- get(url, data = {}, options = {}, needtoken = true) {
- options.url = url
- // 参数是否去空
- if (data.notFliter) {
- delete data.notFliter
- options.data = data
- } else {
- options.data = jsonFilterEmpty(data)
- }
- options.method = 'GET'
- options.token = needtoken
- return this.request(options)
- },
- // post请求
- post(url, data = {}, options = {}, needtoken = true) {
- options.url = url
- // 参数是否去空
- if (data.notFliter) {
- delete data.notFliter
- options.data = data
- } else {
- options.data = jsonFilterEmpty(data)
- }
- options.method = 'POST'
- options.token = needtoken
- return this.request(options)
- },
- // put请求
- put(url, data = {}, options = {}, needtoken = true) {
- options.url = url
- options.data = data
- options.method = 'PUT'
- options.token = needtoken
- return this.request(options)
- },
- // delete请求
- del(url, data = {}, options = {}, needtoken = true) {
- options.url = url
- options.data = data
- options.method = 'DELETE'
- options.token = needtoken
- return this.request(options)
- },
- // 上传文件
- upload(url, data, onProgress = false) {
- return new Promise((result, reject) => {
- // 上传
- let token = uni.getStorageSync('token')
- if (!token) {
- uni.showToast({
- title: '请先登录',
- icon: 'none'
- })
- // token不存在时跳转
- return uni.reLaunch({ url: '/pages/home/dashboard/index', })
- }
- // uni.showLoading({
- // title: '上传中...',
- // mask: true
- // });
- const uploadTask = uni.uploadFile({
- url: $C.baseUrl + url,
- filePath: data.filePath,
- name: data.name || 'files',
- header: {
- 'api-token': token,
- 'api-name': 'wxapp',
- },
- success: res => {
- uni.hideLoading()
- let message = JSON.parse(res.data)
- if (res.statusCode === 200) {
- result(message.data)
- } else if (res.statusCode === 401) {
- uni.showToast({
- title: message.msg,
- icon: 'none'
- })
- uni.reLaunch({ url: '/pages/home/dashboard/index', })
- reject(message)
- } else {
- uni.showToast({
- title: message.msg,
- icon: 'none'
- })
- result(false)
- }
- },
- fail: err => {
- uni.hideLoading()
- reject(err)
- }
- })
- uploadTask.onProgressUpdate(res => {
- if (typeof onProgress === 'function') {
- onProgress(res.progress)
- }
- })
- })
- }
- }
|