FEMessage / el-data-table

🥘Base on element-ui, makes crud easily
https://femessage.github.io/el-data-table/
MIT License
486 stars 112 forks source link

fix: 查询值为数组时的分隔符问题 #301

Closed gd4Ark closed 4 years ago

gd4Ark commented 4 years ago

Why

因未知原因(可能是 vue-router?)会将 地址栏 url 自动 decode,此时如果存在数组值,则会在 parse 时先被按 , 分割,导致无法正常解析:

let url = `q=area~east%2Csouth,size~20,page~1,`

// 刷新时会被自动转换为:

url = `q=area~east,south,size~20,page~1,`

// queryUtil.parse() 方法会先按 ',' 进行分割,导致原本属于同一个字段的值丢失了,就无法正常解析了

url.split(',') // ["q=area~east", "south", "size~20", "page~1", ""]

How

encode 数组值时,先使用别的分隔符; 同时由于之前发送请求和构造地址栏的 url 用的是同一个方法,但现在由于两者 stringify 的方式不一样,所以增加一个 URLStringify 用于构造发送 axios 请求的参数

Test

netlify[bot] commented 4 years ago

Deploy preview for el-data-table ready!

Built with commit ef158b7608c99cc8014a922a7f1920a1d5b23fa8

https://deploy-preview-301--el-data-table.netlify.app