| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- import {
- baseURL
- } from './env.js'
- import {
- api
- } from './api.js'
- // 请求拦截
- const fetch = (url, opt) => {
- uni.showLoading({
- mask: true
- })
- let urls = (api[opt.url]?.url || api[url]?.url);
- let params = opt.params ? ('?' + Object.keys(opt.params).map(key => key + '=' + opt.params[key]).join('&')) : ''
- opt.url = uni.$baseUrl + urls + params
- opt.method = opt.method || "GET";
- var header = {}
- // 是否禁用token
- if (!opt.hideToken) {
- if (uni.getStorageSync('token')) {
- header = {
- Authorization: 'Bearer ' + uni.getStorageSync('token')
- }
- }
- }
- // 带入租户编号
- if (url === "login") opt.header["tenant-id"] = 122;
- opt.header = {
- ...opt.header,
- ...header
- }
- // console.log(opt);
- opt.data = opt.data || {};
- return new Promise((resolve, reject) => {
- let options = {}
- Object.keys(opt).map(key => {
- if (key !== "params") {
- return options[key] = opt[key]
- }
- })
- // uni.request(options)
- // .then(res => {
- // // 响应拦截
- // const {
- // code
- // } = res.data
- // if (code == 200) {
- // resolve(res.data)
- // console.log("请求成功")
- // }
- // if (code == 401) {
- // uni.reLaunch({
- // url: "/pages/login/loginPage"
- // })
- // // console.log("未授权,跳转回登录页")
- // }
- // uni.hideLoading();
- // resolve(res.data);
- // // resolve(res.data)
- // })
- // .catch(err => {
- // uni.hideLoading();
- // // 异常处理
- // console.info("网络异常", err);
- // reject(err)
- // })
- uni.request(options)
- .then(res => {
- if (!res || !res.data) {
- resolve({ code: -1, msg: '接口返回数据异常' });
- return;
- }
-
- const { code } = res.data;
-
- if (code == 0 || code == 200) {
- resolve(res.data);
- console.log("请求成功");
- return;
- }
-
- if (code == 401) {
- uni.reLaunch({ url: "/pages/login/loginPage" });
- resolve(res.data);
- return;
- }
-
- // 关键:所有情况都 resolve,不改调用方写法
- resolve(res.data);
- })
- .catch(err => {
- console.info("网络异常", err);
-
- let msg = '网络异常';
- if (err?.errMsg?.includes('timeout')) {
- msg = '请求超时,请稍后重试';
- } else if (err?.errMsg === 'request:fail') {
- msg = '网络连接失败,请检查网络';
- } else if (err?.errMsg?.includes('request:fail abort')) {
- msg = '请正确配置地址';
- } else if (err?.errMsg) {
- msg = err.errMsg;
- }
-
- resolve({ code: -1, msg });
- })
- .finally(() => {
- uni.hideLoading();
- });
- })
- }
- export {
- fetch
- }
|