vue3中get请求参数数组格式序列化

方法一:

//对lineNames :[A,B] 进行序列化:lineNames=A&lineNames=B 
state.lineNames=[A,B]
function convertArrayToUrlParameters(paramName, arr){
    let str = ''
    for (let i = 0; i < arr.length; i++) {
        str += `${paramName}=${encodeURIComponent(arr[i])}&`
    }
    return str
}
  const lineNames = convertArrayToUrlParameters('lineNames',state.lineNames);
  //打印结果:lineNames=A&lineNames=B 

方法二:

安装qs插件。qs,是axios中自带的,也是npm仓库所管理的包。
npm install qs
import { stringify,parse } from 'qs';//vue3get传参数组序列化
function paramsSerializer(params){
	return stringify(params, { indices: false, allowDots: true });
}
 const lineNames =paramsSerializer({lineNames:state.lineNames})
   //打印结果:lineNames=A&lineNames=B 
   
不想封装方法可直接引用如下:
  let lineNames =stringify({lineNames:state.lineNames}, { indices: false, allowDots: true })
    //打印结果:lineNames=A&lineNames=B 
此外:
Vue2项目中的导入方式:
import qs from 'qs'
Vue.prototype.$qs = qs   //Vue2项目中的main.js中设置全局属性的方式:

项目引用:

查询应用:
http://10.115.120.111:5173/api/j03//DeviceAnalysis/StatusRecord-Query?startDate=2023-08-02&endDate=2023-09-01&lineNames=A&lineNames=B&pageIndex=1&pageSize=10&Status=-1
导出应用:其中${lineNames}已经安装上面方法序列化过的数据
接口:
window.open(`/api/j03/DeviceAnalysis/StatusRecord-Export?Status=${state.Status}&${lineNames}${deviceNames}startDate=${startDate}&endDate=${endDate}`, '_blank');
URL地址:
http://10.115.120.111:5173/api/j03/DeviceAnalysis/StatusRecord-Export?Status=0&lineNames=A&lineNames=B&deviceNames=SM-P2-MA-164_%E5%90%8D%E7%A7%B0&deviceNames=SM-P7-MA-039-1_%E5%90%8D%E7%A7%B0&startDate=2023-08-02&endDate=2023-09-01&type=5

接口应用

export function AlarmRecordExport(params : object) {
	return createAxios({
		url: baseurl + '/DeviceAnalysis/AlarmRecord-Export',
		method: 'get',
		params: params,
		paramsSerializer: params => {
			return stringify(params, { indices: false, allowDots: true });
		}
	})
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值