import i18n from "@/lang";
export const dateFormat = (fmt: string, x: Date | string) => {
  const date = typeof x === "string" ? new Date(x) : x;
  let ret;
  let opt: IAny = {
    "Y+": date.getFullYear().toString(), // 年
    "M+": (date.getMonth() + 1).toString(), // 月
    "d+": date.getDate().toString(), // 日
    "h+": date.getHours().toString(), // 时
    "m+": date.getMinutes().toString(), // 分
    "s+": date.getSeconds().toString() // 秒
  };
  for (let k in opt) {
    ret = new RegExp("(" + k + ")").exec(fmt);
    if (ret) {
      fmt = fmt.replace(
        ret[1],
        ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")
      );
    }
  }
  return fmt;
};

export const setPageTitle = (key: string) => {
  const title = i18n.t("title");
  document.title = `${
    i18n.te(`route.${key}`) ? i18n.t(`route.${key}`) + " - " : ""
  }${title}`;
};
export const getErrMsg = (errCode: number) => {
  return i18n.te(`errCode.${errCode}`)
    ? `${i18n.t(`errCode.${errCode}`)}`
    : "system error".toUpperCase();
};
export const RegAccount = /^[a-zA-Z0-9]{9,16}$/;

export const Dateformat = (t: string | Date, format: string) => {
  let fmt = format;
  let ret;
  const date = typeof t === "string" ? new Date(t) : t;
  const opt: IAny = {
    "Y+": date.getFullYear().toString(), // 年
    "m+": (date.getMonth() + 1).toString(), // 月
    "d+": date.getDate().toString(), // 日
    "H+": date.getHours().toString(), // 时
    "M+": date.getMinutes().toString(), // 分
    "S+": date.getSeconds().toString() // 秒
    // 有其他格式化字符需求可以继续添加，必须转化成字符串
  };
  for (let k in opt) {
    ret = new RegExp("(" + k + ")").exec(fmt);
    if (ret) {
      fmt = fmt.replace(
        ret[1],
        ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")
      );
    }
  }
  return fmt;
};
