货无忧
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

178 lines
3.9 KiB

import store from "@/store/index.js";
import utils from '@/utils/utils.js'
import functions from '@/utils/functions.js'
import {
host,
APPKEY
} from "@/config/host";
import base64 from '@/utils/base64.js';
import {
hexMD5
} from '@/utils/md5.js'
// import {
// useUserStore
// } from "@/store/uaeUserStore";
// import {
// storeToRefs
// } from 'pinia';
// const userStore = useUserStore()
// const {
// HANDLE_ACCTOKEN,
// HANDLE_ISLOGIN,
// HANDLE_REFTOKEN,
// HANDLE_USERINFO
// } = userStore
const service = (params) => {
return new Promise(async (relove, reject) => {
let refresh_token = uni.getStorageSync('refresh_token')
let token = uni.getStorageSync('access_token')
let user = uni.getStorageSync('userinfo')
let header = {};
if (user && token && refresh_token) {
store.commit('updateislog', true)
store.commit('updaterftk', refresh_token)
store.commit('updatetk', token)
store.commit('updatauser', user)
header['Blade-Auth'] = `bearer ${store.state.access_token}`
} else {
if (!token && params.url.indexOf('oauth/token') == -1) {
}
}
header.Authorization = `Basic ${base64.encode(APPKEY)}`
// return
if (params.url.indexOf('blade-auth/oauth/token') != -1) {
header['Content-Type'] = 'application/x-www-form-urlencoded'
header['Tenant-Id'] = params.data.tenantId
// 登录请求时, 加密密码
if (params.data.password) params.data.password = hexMD5(params.data.password)
}
// uni.showLoading({
// title:'请求中',
// mask:true
// })
let urlhd = ''
if (uni.getStorageSync('setip')) {
urlhd = uni.getStorageSync('setip')
} else {
urlhd = host
}
let version = ''
if (!version) {
// #ifdef APP
version = await utils.getversion()
version = version.version
// #endif
}
function req() {
let submitData = {
url: urlhd + params.url,
data: params.data,
method: params.method,
header
}
// 当程序在app上运行时, 带上版本号
// #ifdef APP
submitData = {
url: urlhd + params.url,
data: {
...params.data,
version
},
method: params.method,
// dataType: "json",
header
}
// #endif
const request = uni.request(submitData)
console.log('request :>> ', request);
request.then(res => {
// console.log(res);
console.log('登录res :>> ', res);
uni.hideLoading()
if (res.statusCode == 200) {
let data = res.data;
// #ifdef APP
utils.ttsspke(data.audio || '')
// #endif
if (data.code != 200 && data?.msg) {
uni.showToast({
title: data?.msg || '',
icon: 'none'
})
} else if (data.audio) {
uni.showToast({
title: data.msg,
icon: 'none'
})
}
switch (data.code) {
case 200:
relove(data);
break;
case 203:
relove(data);
break;
default:
relove(data);
break;
}
} else {
if (res.statusCode == 400) {
relove({});
return
} else if (res.statusCode == 500) {
functions.error('接口出错,请联系后端开发人员')
// #ifdef APP
utils.ttsspke('接口出错,请联系后端开发人员')
// #endif
return
} else if (res.statusCode == 401) {
// 没有权限, 返回login页面
uni.reLaunch({
url: '/pages/login/login'
})
uni.removeStorage({
key: 'access_token'
})
functions.error('请登录')
return
}
functions.error('连接服务器失败')
// #ifdef APP
utils.ttsspke('连接服务器失败')
// #endif
}
}).catch(err => {
console.log(err);
// uni.reLaunch({
// url: '/pages/index/index'
// })
functions.error('请检查是否连接到无线网络')
// #ifdef APP
utils.ttsspke('请检查是否连接到无线网络')
// #endif
uni.hideLoading()
})
}
req()
})
}
export default service;