shangfutong-ui/jeepay-ui-uapp-agent/http/http.js

104 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* HTTP的封装 基于uni.request
* 包括: 通用响应结果的处理 和 业务的增删改查函数
*
* @author terrfly
* @site https://www.jeequan.com
* @date 2021/12/16 18:35
*/
// 导入全局属性
import appConfig from "../config/appConfig.js"
import storageManage from "@/util/storageManage.js"
import { sm4DecryptByResData } from "@/util/encryptUtil.js"
function req(uri, data, method = "GET", extParams = {}) {
// 放置token
let headerObject = {}
headerObject[appConfig.tokenKey] = storageManage.token()
return uni
.request(
Object.assign(
{
url: appConfig.env.JEEPAY_BASE_URL + uri,
data: data,
method: method,
header: headerObject,
},
extParams
)
)
.then((httpData) => {
// 从http响应数据中解构响应数据 [ 响应码、 bodyData ]
let { statusCode, data } = httpData
// 避免混淆重新命名
let bodyData = data
if (statusCode == 401) {
uni.showToast({ title: "请登录1", icon: "none", mask: true, duration: 1500 })
setTimeout(function () {
uni.reLaunch({ url: "/pages/login/login" })
}, 1500)
}
// http响应码不正确
if (statusCode != 200) {
return Promise.reject(bodyData) // 跳转到catch函数
}
// 业务响应异常
if (bodyData.code != 0) {
uni.hideLoading()
uni.showToast({ icon: "none", title: bodyData.msg })
if (bodyData.code == 5005) {
// 密码已过期, 直接跳转到更改密码页面
uni.reLaunch({ url: "/pageWork/setUp/securitySetting/passwordSetting" })
}
return Promise.reject(bodyData.msg)
}
// 加密数据
if (!bodyData.data && bodyData.encryptData) {
return Promise.resolve({ bizData: sm4DecryptByResData(bodyData.encryptData), code: bodyData.code })
}
// 构造请求成功的响应数据
return Promise.resolve({ bizData: bodyData.data, code: bodyData.code })
})
.catch((res) => {
return Promise.reject(res)
})
}
// 通用list
function list(uri, params) {
return req(uri, params, "GET")
}
// 通用add
function add(uri, data) {
return req(uri, data, "POST")
}
// 通用 根据ID获取
function getById(uri, bizId) {
return req(`${uri}/${bizId}`, {}, "GET")
}
// 通用 更新
function updateById(uri, bizId, data) {
return req(`${uri}/${bizId}`, data, "PUT")
}
// 通用 删除
function delById(uri, bizId) {
return req(`${uri}/${bizId}`, {}, "DELETE")
}
export default {
req: req,
list: list,
add: add,
getById: getById,
updateById: updateById,
delById: delById,
}