uni-app封装的request请求

javascript 复制代码
import {
	baseUrl,
	token
} from '../common/config.js'

const request = (url = '', data = {}, type = 'GET', header = {}, costomUrl = '') => {
	return new Promise((resolve, reject) => {
		uni.request({
			method: type,
			url: costomUrl ? `${costomUrl}` : `${baseUrl + url}`,
			data: data,
			header: {
				...header,
				Authorization: token()
			},
			dataType: 'json',
		}).then((response) => {
			let [error, res] = response;

			if (res.statusCode == 400) {
				uni.$u.toast("请求参数有误,检查后再次请求");
			}
			if (res.statusCode == 401 && uni.getStorageSync('saas_access_token')) {
				uni.navigateTo({
					url: '/pages/specialpage/401'
				})
			}
			if (res.statusCode == 403) {
				uni.navigateTo({
					url: '/pages/specialpage/403'
				})
			}
			if (res.statusCode == 404) {
				uni.$u.toast("未找到数据")
			}
			if (res.statusCode == 500) {
				const str = res.data.Error.Message;
				var pattern = new RegExp("[\u4E00-\u9FA5]+");
				if (pattern.test(str)) {
					uni.$u.toast(str);
				} else {
					uni.$u.toast("系统异常,请联系管理员");
					// uni.navigateTo({
					// 	url: '/pages/specialpage/500'
					// })
				}
			}
			resolve(res);
		}).catch(error => {

			let [err, res] = error;
			reject(err, res)
		})
	});
}
export default request

config.js

javascript 复制代码
// 正式
// const baseUrl = 'https://esm.api.si-iip.com' //https://esmapi.dev.si-iip.com
// const uacUrl = 'https://uac.api.si-iip.com' //https://newuacapi.dev.si-iip.com
// const userUrl = 'https://uac.api.si-iip.com'  //https://newuacapi.dev.si-iip.com
// const imgUrl = 'https://linkfile.api.si-iip.com' //https://linkfileapi.dev.si-iip.com
// 测试
const baseUrl = 'https://esmapi.dev.si-iip.com' //https://esmapi.dev.si-iip.com
const uacUrl = 'https://newuacapi.dev.si-iip.com' //https://newuacapi.dev.si-iip.com
const userUrl = 'https://newuacapi.dev.si-iip.com'  //https://newuacapi.dev.si-iip.com
const imgUrl = 'https://linkfileapi.dev.si-iip.com' //https://linkfileapi.dev.si-iip.com
function token(){
	// #ifdef APP-PLUS
		return 'Bearer '+uni.getStorageSync('saas_access_token')
	// #endif
	// #ifdef H5
	return "Bearer "+"eyJhbGciOiJSUzI1NiIsImtpZCI6IjM2OENEQTFDOUVDNzZGOTgwQUM2RTIxMjJENTE0QTBEMDY3MTYwQjBSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6Ik5vemFISjdIYjVnS3h1SVNMVkZLRFFaeFlMQSJ9.eyJuYmYiOjE2ODk4MTc0MDEsImV4cCI6MTcyNTgxNzQwMSwiaXNzIjoiaHR0cHM6Ly9uZXdpZDQuZGV2LnNpLWlpcC5jb20iLCJhdWQiOlsiUGFhU19BY2NvdW50IiwiU2FhU19FU00iXSwiY2xpZW50X2lkIjoiMzIxNTg1NTUxMDQxODkyMzYyIiwic3ViIjoiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIiwiYXV0aF90aW1lIjoxNjg5NzQ1MzEzLCJpZHAiOiJsb2NhbCIsIm5hbWUiOiJhZG1pbiIsInBpY3R1cmUiOiIvRmlsZXMvaW1hZ2UvZWM2OTRmZmMtZWQ1OC00NjhkLWEwMDUtMmFhNGU1ZjhjZGM2LmpwZyIsInJvbGUiOlsic3VwZXJBZG1pbiIsIlBsYXRGb3JtQWRtaW4iLCJFbnRlcnByaXNlQWRtaW4iXSwidGVuYW50aWQiOiIzYTA1YTJmOS02YmY5LTExNjUtMGZkZS0xOTgxMzA3YWVmOGMiLCJ0ZW5hbnRuYW1lIjoi6bqm5pav5YWL55S15a2Q5p2Q5paZ6IKh5Lu95pyJ6ZmQ5YWs5Y-4Iiwibmlja25hbWUiOiJBRE1JTiIsImp0aSI6IkU3RTlBMUQ0NUEyRTZCQ0IyNzAxODJENEUzNzgyNDVBIiwic2lkIjoiMDEyM0E0RTUyMzYxNTc2QkQ3MTE3RDA1MzA3QzdCMDQiLCJpYXQiOjE2ODk4MTc0MDEsInNjb3BlIjpbIm9wZW5pZCIsInByb2ZpbGUiLCJTYWFTX0VTTVNjb3BlIiwiUGFhU19BY2NvdW50Il0sImFtciI6WyJ0ZW5hbnQiXX0.ooJg6R5-DipN63dozo3odHALH3C6kslwjWHovoXoF5HRwmh3u2wSzAHyIAkhyDTQczqUrIaZePesZYhe9iIyJBuKkfkiR9ToV9zYfAW81-M0JokriKK4zwXfgtnCtzM_0CzPCNkXBzkUYbAWhl4VuWAKwCoJN_iP19yhK4w37ZfZbhUKykL6VEt12x0Xhp31HcoXadlMuKmILwjQV_OO6X_WPtAgmmSxNLcTAMA4ZpuQhcGmiY17e3uHBfkPKP4IeNyIN6qQyMRzHk1UbG-_VhUabRg3AEk96HLhqX8nQl2TTkTQZGqpo-4eAlxDgh2suGpZh2vzwgyquesR2s-mdw"
	//#endif
}
export {
	uacUrl,
	baseUrl,
	token,
	userUrl,
	imgUrl
}

main.js

javascript 复制代码
// request 封装
import request from 'common/request.js'
Vue.prototype.$request = request

页面使用:

javascript 复制代码
			async getData() {
				this.status = "loading"
				let res;
				res= await this.$request('',{
						PageNumber: this.PageNumber,
						MaxResultCount: this.MaxResultCount,
						SearchText: this.SearchText,
					},'GET',{},`${uacUrl}/api/app/tenant-user/tenant-users-by-tenant-id`)
					.then((res)=>{
						this.TotalCount = +res.data.totalCount
						this.indexList = this.indexList.concat(res.data.items ? res.data.items : res.data)
						if (this.indexList.length == 0 || this.indexList.length == this.TotalCount || this.TotalCount <
							this.PageNumber * this.MaxResultCount) {
							this.status = 'nomore'
						}
					}).catch(err=>{
						this.status = 'nomore'
						console.log(err)
				})
					
			},
相关推荐
星星在线18 小时前
MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单
前端·后端
IT_陈寒18 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
demo007x19 小时前
Docling 文档转换以及技术架构分析
前端·后端·程序员
京东云开发者19 小时前
京东市民服务又“上新”!这次是黑龙江“龙易办”
前端
NE_STOP20 小时前
Vide Coding--AI编程工具的选择
java
袋鱼不重20 小时前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
用户69903048487520 小时前
try catch使用场景 处理同步代码错误兼容用的
javascript·uni-app
码云数智-园园21 小时前
C++20 Modules 模块详解
java·开发语言·spring
Fireworks21 小时前
深入vue3源码解读 -- 1、响应式的基础概念
前端
程序员黑豆21 小时前
JDK 下载安装与配置详细教程
java·前端·ai编程