优化数组参数转化为不规范url,兼容后端接口

This commit is contained in:
WindowBird 2025-11-14 11:36:09 +08:00
parent 51e19b3266
commit 502cf3507f
2 changed files with 34 additions and 30 deletions

26
api/utils.js Normal file
View File

@ -0,0 +1,26 @@
/**
* 将参数对象中的数组转换为查询字符串
* @param {Object} params - 参数对象
* @returns {Object} { params: 处理后的参数对象, queryString: 查询字符串 }
*/
export const convertArrayParamsToQuery = (params = {}) => {
const processedParams = { ...params };
let queryString = '';
Object.keys(processedParams).forEach(key => {
if (Array.isArray(processedParams[key])) {
const arrayValue = processedParams[key];
// 为数组中的每个元素添加查询参数
arrayValue.forEach(item => {
queryString += `&${key}=${encodeURIComponent(item)}`;
});
// 从参数对象中删除数组
delete processedParams[key];
}
});
return {
params: processedParams,
queryString: queryString.slice(1)
};
};

View File

@ -1,37 +1,15 @@
import {convertArrayParamsToQuery} from "@/api/utils";
// 审批相关 API
export const getVerifyList = (params = {}) => {
// 处理 createTimeList 参数,如果是数组则转换为重复参数格式
const processedParams = { ...params };
// 使用通用函数处理数组参数
const { params: processedParams, queryString } = convertArrayParamsToQuery(params);
if (Array.isArray(processedParams.createTimeList)) {
const tempList = processedParams.createTimeList;
// 构建请求 URL去掉查询字符串开头的 &
const url = queryString
? `/bst/verify/list?${queryString}`
: '/bst/verify/list';
// 删除原来的 createTimeList因为我们要手动处理
delete processedParams.createTimeList;
// 构建查询字符串
let queryString = '';
tempList.forEach(date => {
queryString += `&createTimeList=${encodeURIComponent(date)}`;
});
return uni.$uv.http.get(`/bst/verify/list?${queryString}`, {
params: {
pageNum: 1,
pageSize: 20,
orderByColumn: 'createTime',
isAsc: 'descending',
bstType: 'UPDATE_TASK',
...processedParams
},
custom: {
auth: true
}
});
}
// 如果不是数组,正常处理
return uni.$uv.http.get('/bst/verify/list', {
return uni.$uv.http.get(url, {
params: {
pageNum: 1,
pageSize: 20,