This commit is contained in:
aihe 2024-05-11 18:46:26 +08:00
parent 6f58c5ca0d
commit 38b475eb66
6 changed files with 1784 additions and 82 deletions

View File

@ -56,7 +56,7 @@ export const getLatestNotices = (data = {})=> {
// 接口返回-文件流
export const getStaffQRCodePng = (data = {})=> {
return coreRequest(url.getStaffQRCodePng, data, {}, "GET", { _isFile: true })
return coreRequest(url.getStaffQRCodePng, data, {}, "GET")
}

View File

@ -93,5 +93,5 @@ export const getNextStationList = (data = {})=> {
// 获取运单详细信息-图片 接口返回-文件流
export const getRealGetWaybillPrintData = (data = {})=> {
return coreRequest(url.getRealGetWaybillPrintData, data, {}, "GET", { _isFile: true })
return coreRequest(url.getRealGetWaybillPrintData, data, {}, "GET")
}

1739
common/libs/qs.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ const getCommonReqData = ()=> {
}
// 请求接口
function dealRequest(def, url, param, coreParams) {
function dealRequest({ def, url, param, coreParams, reqHeader }) {
if(param && param._loading) {
showLoading()
}
@ -33,14 +33,15 @@ function dealRequest(def, url, param, coreParams) {
})
}
handleResponse({
response,
data,
url,
param,
coreParams,
reqHeader,
resolve,
reject,
url,
response,
data,
header,
param,
coreParams
});
}, function(response) {
console.log('request url==========1', url)
@ -65,19 +66,12 @@ function dealRequest(def, url, param, coreParams) {
}
// 处理响应
async function handleResponse({
data,
header,
resolve,
reject,
url,
param,
coreParams
}) {
async function handleResponse(options) {
let { data, header, resolve, reject, url, param, coreParams } = options
// 图片类型数据特殊处理
if((header['content-type'] || header['Content-Type'])?.indexOf?.("image/") > -1) {
const base64 = "data:image/png;base64," + uni.arrayBufferToBase64(data)
let fileUrl = await getImageTempFilePath(base64)
// 重新获取下载后的临时路径
let fileUrl = await getImageTempFilePath(options)
resolve({ data: { fileUrl } })
return
}

View File

@ -4,20 +4,11 @@ import { host } from "./api"
import { getSessionXToken } from "@/session"
const coreRequestBase = (url, reqParams, options = {}, methodType = "POST", coreParams = {}) => {
let comReqData = getCommonReqData()
if(coreParams._isFile) {
coreParams.responseType = "arraybuffer"
}
return new Promise((resolve, reject) => {
uni.request({
url: `${host}${url}`,
url,
data: reqParams,
header: {
...comReqData.header,
...options
},
header: options,
method: methodType,
...coreParams,
success: (res) => {
@ -30,21 +21,30 @@ const coreRequestBase = (url, reqParams, options = {}, methodType = "POST", core
})
}
const BaseParam = {}
const baseParam = {}
// 请求处理
let coreRequest = function(url, params = {}, options = {}, methodType, coreParams) {
let coreRequest = function(url, params = {}, options = {}, methodType, coreParams = {}) {
let comReqData = getCommonReqData()
// 统一把emo转unicode
// emoUnicode(params)
const reqParams = {
...BaseParam,
...baseParam,
...params,
}
return dealRequest(
coreRequestBase(url, reqParams, options, methodType, coreParams),
url,
reqParams,
coreParams
).then(res => {
url = `${host}${url}`
options = {
...options,
...comReqData.header,
}
return dealRequest({
def: coreRequestBase(url, reqParams, options, methodType, coreParams),
url,
param: reqParams,
coreParams,
reqHeader: options
}).then(res => {
// 解析unicode
// emoUnicode(res, 2)
return res

View File

@ -1,3 +1,5 @@
import qs from "@/common/libs/qs"
const tabBarUrls = [
'/pages/tabBar/deal/deal',
'/pages/tabBar/home/home',
@ -85,10 +87,11 @@ const makePhoneCall = (phoneNumber)=> {
});
}
const downloadFile = (url)=> {
const downloadFile = (url, ext = {})=> {
return new Promise((resolve, reject)=> {
uni.downloadFile({
url: url,
...ext,
success: (res) => {
console.log("downloadFile:success:res======", res)
if (res.statusCode === 200 || res.statusCode === 400) {
@ -158,49 +161,15 @@ const getImageInfo = (src)=> {
})
}
// 微信小程序 有该api
const writeFile = (params = {}, fileEndFix = '.png')=> {
return new Promise((resolve, reject)=> {
//声明文件系统
const fs = wx.getFileSystemManager();
var times = new Date().getTime();
var filePath = wx.env.USER_DATA_PATH + '/' + times + fileEndFix;
//将base64图片写入
var that = this;
fs.writeFile({
filePath: filePath,
...params,
success: (res) => {
resolve({ filePath })
},
fail: (err)=> {
console.log("writeFile:错误==", err)
reject(err)
}
});
})
}
const getImageTempFilePath = (base64File) => {
const getImageTempFilePath = (options) => {
return new Promise(async (resolve, reject) => {
let tempFile = base64File
// // #ifdef MP-WEIXIN
// let wxRes = await writeFile({ data: base64File, encoding: 'base64' })
// tempFile = wxRes.filePath
// // #endif
// // #ifdef H5
// let webRes = await downloadFile(base64File)
// tempFile = webRes.tempFilePath
// // #endif
// // #ifdef APP-PLUS
// let appRes = await downloadFile(tempFile)
// console.log("===appRes===", appRes)
// // #endif
resolve(tempFile)
let { url, reqHeader, param } = options
if(param) {
let qsStr =qs.stringify(param)
url += `${url.indexOf("?")>-1?'&':'?'}${qsStr}`
}
let res = await downloadFile(url, { header: reqHeader })
resolve(res.tempFilePath)
})
}