uni.request 先进行封装
import baseUrl from './config.js'
const request = {}
const headers = {}
request.globalRequest = (url, method, data, power) => {
// 权限判断 因为有的接口请求头可能需要添加的参数不一样,所以这里做了区分
// 1 == 不通过access_token校验的接口
// 2 == 文件下载接口列表
const token = uni.getStorageSync('token')
switch (power) {
case 1:
// headers['Authorization'] = 'Basic a3N1ZGk6a3N1ZGk='
break;
default:
headers['Authorization'] = 'Bearer ' + token
break;
}
return uni.request({
timeout:60000,
url: baseUrl + url,
method,
data: data,
dataType: 'json',
header: headers
}).then(res => {
return res.data
}).catch(parmas => {
switch (parmas.code) {
case 401:
uni.clearStorageSync()
break
default:
uni.showToast({
title: parmas.message,
icon: 'none'
})
return Promise.reject()
break
}
})
}
export default request
config.js
let baseUrl = ""
if (process.env.NODE_ENV === 'development') {
baseUrl = '' // 开发环境
} else {
baseUrl = '' // 生产环境
}
export default baseUrl
路由用的
gowiny-uni-router
用的还行,挺方便的
roter/index.js
import { createRouter } from '@gowiny/uni-router'
import PAGE_DATA from '@/pages.json';
const router = createRouter({
pageData:PAGE_DATA
})
router.beforeEach((to,from)=>{
if(to.path !== '/pages/login/index' && !uni.getStorageSync('token')){
return {
to:{//需要跳转的新页面
path:'/pages/login/index',
},
navType:'push'//跳转方式
}
}
if(to.path == '/pages/login/index' && uni.getStorageSync('token')){
return {
to:{//需要跳转的新页面
path:'/pages/index/index',
},
navType:'pushTab'//跳转方式
}
}
})
export default router
gowiny-uni-router: uniapp 的 vue3版本的 路由守卫
这里是router 的链接地址
api.js
import request from '@/util/request.js'
const api = {}
// 登录
api.login = (data) => request.globalRequest(``, 'POST', data, 1)
// GET请求方式
api.close = (params) => request.globalRequest(``,'GET', {}, 1)
api.list = () => request.globalRequest('','post')