替换 url 参数

 4 export const replaceURLParam = (params: object = {}, location?: any, hasReset?: boolean, pathname?: string) => {
 5   const loca = !isEmpty(location) ? location : window.location;
 6   const urlSearchParams = new URLSearchParams(loca.search);
 7   let newParams: any = {};
 8 
 9   urlSearchParams.forEach((value, key) => {
10     newParams[key] = value;
11   });
12 
13   /** 是否重置路由参数 */
14   if (hasReset) {
15     newParams = {
16       ...params,
17     };
18   } else {
19     newParams = {
20       ...newParams,
21       ...params,
22     };
23   }
24   let queryStr = chain(JSON.parse(JSON.stringify(newParams)))
25     .toPairs()
26     .map(([key, val]) => {
27       return `${key}=${val}`;
28     })
29     .join('&')
30     .valueOf();
31   queryStr = queryStr && `?${queryStr}`;
32   return `${pathname || loca.pathname}${queryStr}`;
33 };

 

posted @ 2022-10-12 17:21  lrt-web  阅读(34)  评论(0)    收藏  举报