diff --git a/api/utils.js b/api/utils.js new file mode 100644 index 0000000..7537fef --- /dev/null +++ b/api/utils.js @@ -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) + }; +}; \ No newline at end of file diff --git a/api/verify.js b/api/verify.js index ac72e90..7dfb94b 100644 --- a/api/verify.js +++ b/api/verify.js @@ -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,