feat: 新增一些工具函数:px2px、时间戳转时间、formData自动加参

This commit is contained in:
wf 2024-10-08 15:41:57 +08:00
parent 77aa6c7704
commit 7d5a105818
2 changed files with 73 additions and 0 deletions

View File

@ -103,3 +103,61 @@ export function webDefaultLanguage() {
return "enUS";
}
}
/**
*
* timestamp不传则取当前时间
* type不传则取
* @param { number } timestamp
* @return
*/
export const getTimestamp = (timestamp: string | number | null, type: string) => {
let date = null;
if (timestamp) {
date = new Date(timestamp);
} else {
date = new Date();
}
let Year = String(date.getFullYear());
let Moth = String(date.getMonth() + 1).padStart(2, "0");
let Day = String(date.getDate()).padStart(2, "0");
let Hour = String(date.getHours()).padStart(2, "0");
let Minute = String(date.getMinutes()).padStart(2, "0");
let Seconds = String(date.getSeconds()).padStart(2, "0");
if (type === "yyyy") {
return `${Year}`;
}
if (type === "yyyy-MM") {
return `${Year}-${Moth}`;
}
if (type === "yyyy-MM-dd") {
return `${Year}-${Moth}-${Day}`;
}
return `${Year}-${Moth}-${Day} ${Hour}:${Minute}:${Seconds}`;
};
/**
* formData循环添加参数nullundefinedNaN
* let data = appendFormData(your-object);
* @param { object } obj
* @return formData对象
*/
export const appendFormData = (obj: any) => {
let formData = new FormData();
function deepAppendFormData(formData: any, data: any, parentKey = "") {
if (Array.isArray(data) || (typeof data === "object" && data !== null)) {
// 如果数据是数组或对象,序列化为 JSON 字符串
formData.append(parentKey, JSON.stringify(data));
} else if (data !== null && data !== undefined && !Number.isNaN(data) && data !== "") {
// 如果数据是基本类型,直接添加
formData.append(parentKey, data);
}
}
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
deepAppendFormData(formData, obj[key], key);
}
}
deepAppendFormData(formData, obj);
return formData;
};

15
src/utils/px2px.ts Normal file
View File

@ -0,0 +1,15 @@
/**
* px转响应式px
* $px2px(20, 1920)1920px的设计稿上元素大小为20px
* @param {number} px 稿
* @param {number} viewport 稿
* @returns {number} px
*/
export const px2px = (px: number, viewport: number): number => {
const viewportWidth: number = (window.innerWidth || document.documentElement.clientWidth) as number;
let originalWidth = px;
let originalViewport = viewport;
// 计算新视口下的宽度
let newWidth = (originalWidth / originalViewport) * viewportWidth;
return parseInt(String(newWidth));
};