/**
 * @description 生成随机数
 * @param {Number} min 最小值
 * @param {Number} max 最大值
 * @returns {Number}
 */
export function randomNum(min: number, max: number): number {
  const num = Math.floor(Math.random() * (min - max) + max)
  return num
}

/**
 * rgba转#
 * @param color 颜色
 */
export function getHexColor(color: string) {
  const values = color
    .replace(/rgba?\(/, '')
    .replace(/\)/, '')
    .replace(/[\s+]/g, '')
    .split(',')
  const a = parseFloat(values[3]),
    r = Math.floor(a * parseInt(values[0]) + (1 - a) * 255),
    g = Math.floor(a * parseInt(values[1]) + (1 - a) * 255),
    b = Math.floor(a * parseInt(values[2]) + (1 - a) * 255)
  return '#' +
    ('0' + r.toString(16)).slice(-2) +
    ('0' + g.toString(16)).slice(-2) +
    ('0' + b.toString(16)).slice(-2)
}

/**
 * 获取Component的方法
 * @param view 路径
 * @param type 路由层数 目前只兼容二级路由
 */
export function _getViews(view: any, type: any) {
  let res;
  let modules: any;
  if (type == "one") {
    modules = import.meta.glob("/src/view/*.vue");
  } else {
    modules = import.meta.glob("/src/view/**/*.vue");
  }
  for (const path in modules) {
    const dir =
      type == "one"
        ? path.split("view/")[1].split(".vue")[0]
        : path.split("view/")[1].split(".vue")[0];
    if (dir === view) {
      res = () => modules[path]();
    }
  }
  return res;
};