jy-safe-app/utils/request.js
wyw 18c8f39d57 总部待办传值处理
审批组件添加传参
风险辨识审批表适配
2025-10-25 09:15:04 +08:00

290 lines
8.2 KiB
JavaScript
Raw Permalink 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.

import config from '../config/common' // 配置文件
import handle401 from './handle401'
// import MD5 from 'md5'
export default {
domain() {
// return config.uni_app_web_api_url.replace('api', '')
return config.uni_app_web_local_api_url.replace('api', '')
},
getRequestHeaders(url, type = 'post', data, isIgnoreTenant) {
const auth = 'Bearer ' + uni.getStorageSync('accessToken')
// const user = uni.getStorageSync('loginUserVerify')
// const RootOrgId = uni.getStorageSync('RootOrgId')
const appInfoData = uni.getStorageSync('appInfo')
const tenant = uni.getStorageSync('Tenant') || ''
const userId = uni.getStorageSync('Userid') || ''
// const userId = appInfoData?.User?.ID || ''
const userName = appInfoData?.User?.NAME || ''
const orgId = uni.getStorageSync('orgId') || ''
// const orgId = appInfoData?.User?.ORG_ID || ''
const dataRule = appInfoData?.DataRule ? appInfoData?.DataRule.join(',') : ''
const departmentId = appInfoData?.User?.DEPARTMENT_ID || ''
const mineType = appInfoData?.User?.MineType || ''
const headers = {
'Content-Type': type === 'post' ? 'application/json' : 'application/x-www-form-urlencoded',
Authorization: auth,
// Tenant: tenant,
userid: userId,
// username: userName, // username不能使用中文放在header
departmentId,
MineType: mineType,
orgId,
DataRule: dataRule,
RequestType: '2'
}
// 非 OP 路径接口header 需要添加 Tenant
// const Tenant = uni.getStorageSync('Tenant')
// url.indexOf('OP') != 0 && !isIgnoreTenant && (headers.Tenant = Tenant)
const Tenant = uni.getStorageSync('Tenant') || ''
if (url.indexOf('PF/Login/Login') !== -1) {
// Login接口使用最新的Tenant、Orgid、userid、Username值
const latestTenant = uni.getStorageSync('Tenant') || ''
const latestOrgid = uni.getStorageSync('orgId')
const latestUserid = uni.getStorageSync('Userid')
const latestUsername = uni.getStorageSync('Username')
if (latestTenant) {
headers.Tenant = latestTenant
}
if (latestOrgid) {
// 覆盖原有的orgId字段使用最新值
headers.orgId = latestOrgid
}
if (latestUserid) {
// 覆盖原有的userid字段使用最新值
headers.userid = latestUserid
}
// if (latestUsername) {
// // 覆盖原有的username字段使用最新值
// headers.username = latestUsername
// }
} else if (url.indexOf('OP') != 0 && !isIgnoreTenant) {
headers.Tenant = Tenant
}
//wyw
if (Tenant && Tenant == '003' && data && data.Parameter22 && data.Parameter22.length > 20) {
//总公司 Parameter22 存入子公司的ORG_ID 自动切换数据库链接
headers.Tenant = data.Parameter22.substring(0, 3)
}
return headers
},
send(options = {}, onlyData, isShowLoading) {
const u = config.serviceHost(options.url)
// loading加载
if (isShowLoading) {
uni.showLoading({
title: '加载中',
mask: true
})
}
// options.url = config.uni_app_web_api_url + '' + options.url
options.url = u
// 请求方式
options.method = options.method || 'GET'
// TODO:
// let users = uni.getStorage("users");
// if(users != null){
// options.header = { "Auth-Token" : users.token };
// }
// options.header = options.header
// 发起Promise请求
return new Promise((resolve, reject) => {
uni.request(options).then(async (res, err) => {
uni.hideLoading()
let {
errMsg,
data,
statusCode
} = res
// 登陆过期
if (statusCode === 401) {
const refreshData = await handle401(options)
errMsg = refreshData.errMsg
data = refreshData.data
statusCode = refreshData.statusCode
}
if (statusCode !== 200) {
if (statusCode === 400) {
uni.removeStorageSync('accessToken')
uni.removeStorageSync('refreshToken')
let pages = getCurrentPages()
if (pages.length > 0) {
let prevPage = pages[pages.length - 1]
if (prevPage.route !== 'pages/login/index') {
uni.navigateTo({
url: '/pages/login/index'
})
} else {
uni.showModal({
title: "400没有访问权限",
showCancel: false,
content: data.error_description
})
}
}
} else {
uni.showToast({
title: '请求错误: ' + statusCode,
icon: 'error'
})
}
return
}
if (errMsg !== 'request:ok') {
reject(errMsg)
} else {
uni.hideLoading()
// 相应拦截、根据后端的状态码来写,可以自行判断和封装
if (!data.IsSuccessful && onlyData) {
// wyw api 调用错误提示 需要用户确认 再消失
uni.showModal({
title: '错误提示',
content: data.ErrorMessage,
showCancel: false,
})
reject(data.ErrorMessage)
} else {
resolve(data)
}
}
})
})
},
upload(url = '', filePath) {
// return this.send({
// url: url,
// data: data,
// header: this.getRequestHeaders(url, 'post')
// }, onlyData)
const appInfoData = uni.getStorageSync('appInfo')
const tenant = uni.getStorageSync('Tenant') || ''
const userId = appInfoData?.User?.ID || ''
const orgId = appInfoData?.User?.ORG_ID || ''
return new Promise((resolve, reject) => {
uni.showLoading()
uni.uploadFile({
url: url,
filePath: filePath[0],
name: 'file',
formData: {
OrgId: orgId,
userID: userId
},
header: {
Tenant: tenant,
userid: userId
},
success: (res) => {
if (res.statusCode === 200) {
uni.hideLoading()
const uploadResult = JSON.parse(res.data)
uploadResult.isOnline = true
resolve(uploadResult)
if (uploadResult.IsSuccessful) {
uploadResult.Data.isOnline = true
resolve(uploadResult.Data)
} else {
reject(uploadResult.ErrorMessage)
}
}
},
fail: (err) => {
console.log(err)
}
})
})
},
get(url = '', data = {}, onlyData = true) {
return this.send({
url: url,
data: data,
header: this.getRequestHeaders(url, 'get', data)
}, onlyData)
},
post(url = '', data = {}, onlyData = true, isShowLoading = true) {
const DataRule = uni.getStorageSync('DataRule')
const dataStr = JSON.stringify(Object.assign({}, data, {
DataRule
}))
// const requestKey = url + '_' + MD5(dataStr) + '_requestKey'
// TODO: 节流
// const loaded = uni.getStorageSync(requestKey)
// if (loaded) return null
// uni.setStorageSync(requestKey, true)
return this.send({
url: url,
data: data,
header: this.getRequestHeaders(url, 'post', data),
method: 'POST'
}, onlyData, isShowLoading)
},
// 处理缓存数据
processCachedData(url) {
try {
//数据处理
var riskUpInfo = uni.getStorageSync('riskUpInfo') || [];
if (riskUpInfo.length === 0) return;
var thisRiskUp = riskUpInfo.filter(e => e.RISK_AREA_ID && e.RISK_AREA_ID.length > 0)
var maxLength = thisRiskUp.length
if (maxLength === 0) return;
// 3个一组 往服务端传
var listOperate = []
const appInfoData = uni.getStorageSync('appInfo')
const tenant = uni.getStorageSync('Tenant') || ''
const userId = appInfoData?.User?.ID || ''
const orgId = appInfoData?.User?.ORG_ID || ''
const auth = 'Bearer ' + uni.getStorageSync('accessToken')
thisRiskUp.forEach((e, index) => {
e.USER_ID = userId
e.ORG_ID = orgId
e.OrgId = orgId
e.RiskContentState = 15
uni.uploadFile({
url: url,
filePath: e.filePath,
name: 'file',
data: e,
formData: e,
header: {
Tenant: tenant,
userid: userId,
Authorization: auth,
RequestType: '2'
},
success: (res) => {
if (res.statusCode == 200) {
var data = JSON.parse(res.data)
if (data.Data.imgFileID && data.Data.imgFileID.length > 0) {
//缓存删除
var riskUpInfo = uni.getStorageSync('riskUpInfo')
var riskUpInfoResult = riskUpInfo.filter(e => e.imgFileID != data.Data.imgFileID)
if (riskUpInfoResult == null || riskUpInfoResult.length == 0) {
uni.removeStorageSync('riskUpInfo');
} else
uni.setStorageSync('riskUpInfo', riskUpInfoResult);
}
}
},
fail: (err) => {
console.log(err)
}
})
})
} catch (e) {
//TODO handle the exception
}
},
}