mirror of
https://github.com/1Panel-dev/CordysCRM.git
synced 2026-05-18 23:08:19 +08:00
30 lines
910 B
TypeScript
30 lines
910 B
TypeScript
import { isObject } from "./is";
|
|
|
|
/**
|
|
* 递归深度合并
|
|
* @param src 源对象
|
|
* @param target 待合并的目标对象
|
|
* @returns 合并后的对象
|
|
*/
|
|
export const deepMerge = <T = any>(src: any = {}, target: any = {}): T => {
|
|
Object.keys(target).forEach((key) => {
|
|
src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key]);
|
|
});
|
|
return src;
|
|
};
|
|
|
|
|
|
/**
|
|
* 遍历对象属性并一一添加到 url 地址参数上
|
|
* @param baseUrl 需要添加参数的 url
|
|
* @param obj 参数对象
|
|
* @returns 拼接后的 url
|
|
*/
|
|
export function setObjToUrlParams(baseUrl: string, obj: any): string {
|
|
let parameters = '';
|
|
Object.keys(obj).forEach((key) => {
|
|
parameters += `${key}=${encodeURIComponent(obj[key])}&`;
|
|
});
|
|
parameters = parameters.replace(/&$/, '');
|
|
return /\?$/.test(baseUrl) ? baseUrl + parameters : baseUrl.replace(/\/?$/, '?') + parameters;
|
|
} |