常用工具函数

// 数字转换
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]
  }`;
};
// 获取url参数
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)
powered by Gitbook该文件修订时间: 2024-04-12 14:22:33

results matching ""

    No results matching ""