常用工具函数
export const transformNumCn = (num: number) => {
const numMap = {
1: "一",
2: "二",
3: "三",
4: "四",
5: "五",
6: "六",
7: "七",
8: "八",
9: "九",
10: "十",
};
return numMap[num];
};
export const transformTimeToCn = (time: number) => {
const h = parseInt(`${Number(time / 60)}`);
const m = Number((time % 60).toFixed(0));
return `${h ? `${h}小时` : ""}${m ? `${m}分` : ""}`;
};
export const transFormTime = (params: {
time: string | number;
splitStr?: string;
isHiddenYear?: boolean;
}) => {
const { time, splitStr, isHiddenYear } = params;
const currentYear = dayjs().format("YYYY");
const dataYear = dayjs(Number(time)).format("YYYY");
return dayjs(Number(time)).format(
currentYear === dataYear && isHiddenYear
? `MM${splitStr || "."}DD HH:mm`
: `YYYY${splitStr || "."}MM${splitStr || "."}DD HH:mm`
);
};
const transformDay = (data) => {
const currentYear = dayjs().format("YYYY");
const dataYear = dayjs(Number(data)).format("YYYY");
const currentDate = dayjs(Number(data));
const month = currentDate.month();
const date = currentDate.date();
const week = currentDate.day();
const addNum = 24 * 60 * 60 * 1000;
const curDay = getStartTimestamp(dayjs());
const len = (data - curDay) / addNum;
const lenMap = {
0: "今天",
1: "明天",
2: "后天",
};
const weekStr = {
1: "周一",
2: "周二",
3: "周三",
4: "周四",
5: "周五",
6: "周六",
0: "周日",
};
const monthStr = month < 9 ? `0${month + 1}` : month + 1;
const dateStr = date < 10 ? `0${date}` : date;
return `${
currentYear !== dataYear ? `${dataYear}年` : ""
}${monthStr}月${dateStr}日 ${
currentYear !== dataYear ? "" : lenMap[len] || weekStr[week]
}`;
};
export function getUrlQuery() {
const searchStr = location.search.substring(1);
const searchList = searchStr.split("&");
const kvObj: any = {};
searchList.forEach((item: string) => {
const kv = item.split("=");
kvObj[kv[0]] = kv[1];
});
return kvObj;
}
export const queryParams = (
url: string,
params: Record<string, string>,
hash?: string
) => {
let queryStr = url + "?";
const paramsKey = Object.keys(params);
paramsKey.map((o: string, i: number) => {
queryStr += `${o}=${params[o]}${i !== paramsKey.length - 1 ? "&" : ""}`;
});
return queryStr + (hash || "");
};
export const transformEmptyNum = (num: string | number, prev?: string) =>
!num && num !== 0 ? `${prev || ""}-` : `${prev || ""}${num}`;
export const getEncrypt = (str: any) => {
const key = CryptoJS.enc.Utf8.parse("16位加密key,前后端约定");
const strUtf8 = CryptoJS.enc.Utf8.parse(str);
const encrypted = CryptoJS.AES.encrypt(strUtf8, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return encodeURIComponent(encrypted.toString());
};
const decrypt = (str: any) => {
const key = CryptoJS.enc.Utf8.parse('deepinnet_travel');
const encrypted = CryptoJS.AES.decrypt(str, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return JSON.parse(encrypted.toString(CryptoJS.enc.Utf8) || '{}');
};
const encryptUserData = decodeURIComponent(
getEncrypt(
JSON.stringify({
userNo: 'xxx'
phoneNumber: 'xxx'
})
)
)
const deEncryptUserData = decrypt(encryptUserData)