12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import { useUserStore } from '@/stores/user'
- import config from './config'
- import utils from './utils'
- const request = (method, url, data, opt) => {
- const userStore = useUserStore()
- return new Promise((resolve, reject) => {
- opt.showLoading && uni.showLoading({
- title: opt.loadingTitle,
- mask: method === 'POST' ? true : false
- })
- uni.request({
- method,
- url: utils.isHttp(url) ? url : config.apiBaseUrl + url,
- header: {
- Authorization: userStore.token,
- ...opt.header
- },
- data
- }).then(res => {
- opt.showLoading && uni.hideLoading()
- const data = res.data
- if (data.code === 201) {
- userStore.setUserInfo({})
- userStore.setToken('')
- // opt.isAuth && uni.navigateTo({
- // url: '/pages/login/login'
- // })
- }
- if (data.code === 200 || data.success) {
- resolve(data)
- } else {
- opt.showErrorMsg && uni.showToast({
- title: data.msg,
- icon: 'none'
- })
- reject(data)
- }
- }).catch(err => {
- opt.showLoading && uni.hideLoading()
- reject(err)
- })
- })
- }
- const http = {}
- const methods = ['GET', 'POST', 'PUT', 'DELETE']
- methods.forEach(method => {
- http[method.toLowerCase()] = (url, data, options) => {
- const loadingTitle = method === 'GET' ? '加载中...' : '提交中...'
- const opt = Object.assign({
- loadingTitle
- },
- config.httpDefaultOption,
- options
- )
- if (opt.isAuth) {
- const userStore = useUserStore()
- if (!userStore.token) {
- // uni.navigateTo({
- // url: '/pages/login/login'
- // })
- // return Promise.reject({
- // msg: '无token'
- // })
- }
- }
- // 提交数据中值为undefined的改成空字符串
- if (typeof data === 'object') {
- for (let key in data) {
- if (data[key] === 'undefined') {
- data[key] = ''
- }
- }
- }
- return request(method, url, data, opt)
- }
- })
- export default http
|