12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // uni-app请求封装
- export default class Request {
- // 添加一个计数器,确保多个请求不会互相干扰
- static loadingCount = 0;
- http(router, data = {}, method, contentType) {
- let that = this;
- // let path = 'http://nd383294.natappfree.cc'//余红奇
- // let path = 'https://live.test.ylrztop.com/prod-api'//余红奇
- // let path = 'http://v56c9b8e.natappfree.cc'//余红奇
- // let path = 'http://192.168.10.170:7114'//陈果
- let path = 'http://192.168.10.166:7114' //余红奇
- // let path = 'http://h5api.wxcourse.cdwjyyh.com'
- uni.setStorageSync('requestPath', path)
- // 只在第一个请求时显示loading
- if (Request.loadingCount === 0) {
- uni.showLoading({
- title: '加载中',
- mask: true
- });
- }
- Request.loadingCount++;
- return new Promise((resolve, reject) => {
- let token = uni.getStorageSync('AppToken');
- var httpContentType = 'application/x-www-form-urlencoded';
- if (contentType != undefined) {
- //application/json;charset=UTF-8
- httpContentType = contentType;
- }
- var routers = router;
- // 请求
- uni.request({
- header: {
- // 'Content-Type': 'application/x-www-form-urlencoded',
- 'Content-Type': httpContentType,
- 'AppToken': token
- },
- url: `${path}${router}`,
- data: data,
- method: method,
- success: (res) => {
- //收到开发者服务器成功返回的回调函数
- if (res.code == 401) { //没有权限直接退出到登录界面
- let pages = getCurrentPages();
- let url = pages[pages.length - 1]; //当前页页面实例
- //如果登录界面已打开,自动关闭
- if (url != undefined && url.route == "/pages/home/index") {
- resolve(res.data)
- return;
- }
- uni.reLaunch({
- url: '/pages/home/index'
- });
- return;
- }
- if (res.token) {
- uni.setStorageSync('AppToken', res.token)
- }
- resolve(res.data)
- },
- fail: (res) => {
- //接口调用失败的回调函数
- },
- complete: (res) => {
- // 确保每次请求完成都减少计数器
- Request.loadingCount--;
- // 当所有请求都完成时才隐藏loading
- if (Request.loadingCount <= 0) {
- uni.hideLoading();
- Request.loadingCount = 0; // 重置计数器
- }
- }
- })
- })
- }
- }
|