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 };