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 = {})=> { 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 = {})=> { 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) { if(param && param._loading) {
showLoading() showLoading()
} }
@ -33,14 +33,15 @@ function dealRequest(def, url, param, coreParams) {
}) })
} }
handleResponse({ handleResponse({
response, url,
data, param,
coreParams,
reqHeader,
resolve, resolve,
reject, reject,
url, response,
data,
header, header,
param,
coreParams
}); });
}, function(response) { }, function(response) {
console.log('request url==========1', url) console.log('request url==========1', url)
@ -65,19 +66,12 @@ function dealRequest(def, url, param, coreParams) {
} }
// 处理响应 // 处理响应
async function handleResponse({ async function handleResponse(options) {
data, let { data, header, resolve, reject, url, param, coreParams } = options
header,
resolve,
reject,
url,
param,
coreParams
}) {
// 图片类型数据特殊处理 // 图片类型数据特殊处理
if((header['content-type'] || header['Content-Type'])?.indexOf?.("image/") > -1) { 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 } }) resolve({ data: { fileUrl } })
return return
} }

View File

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

View File

@ -1,3 +1,5 @@
import qs from "@/common/libs/qs"
const tabBarUrls = [ const tabBarUrls = [
'/pages/tabBar/deal/deal', '/pages/tabBar/deal/deal',
'/pages/tabBar/home/home', '/pages/tabBar/home/home',
@ -85,10 +87,11 @@ const makePhoneCall = (phoneNumber)=> {
}); });
} }
const downloadFile = (url)=> { const downloadFile = (url, ext = {})=> {
return new Promise((resolve, reject)=> { return new Promise((resolve, reject)=> {
uni.downloadFile({ uni.downloadFile({
url: url, url: url,
...ext,
success: (res) => { success: (res) => {
console.log("downloadFile:success:res======", res) console.log("downloadFile:success:res======", res)
if (res.statusCode === 200 || res.statusCode === 400) { if (res.statusCode === 200 || res.statusCode === 400) {
@ -158,49 +161,15 @@ const getImageInfo = (src)=> {
}) })
} }
// 微信小程序 有该api const getImageTempFilePath = (options) => {
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) => {
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
let tempFile = base64File let { url, reqHeader, param } = options
if(param) {
// // #ifdef MP-WEIXIN let qsStr =qs.stringify(param)
// let wxRes = await writeFile({ data: base64File, encoding: 'base64' }) url += `${url.indexOf("?")>-1?'&':'?'}${qsStr}`
// tempFile = wxRes.filePath }
// // #endif let res = await downloadFile(url, { header: reqHeader })
resolve(res.tempFilePath)
// // #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)
}) })
} }