import type { RouteRecordName } from "vue-router";

export type cacheType = {
  mode: string;
  name?: RouteRecordName;
};

export type positionType = {
  startIndex?: number;
  length?: number;
};

export type appType = {
  sidebar: {
    opened: boolean;
    withoutAnimation: boolean;
    // 判断是否手动点击Collapse
    isClickCollapse: boolean;
  };
  layout: string;
  device: string;
  viewportSize: { width: number; height: number };
};

export type multiType = {
  path: string;
  name: string;
  meta: any;
  query?: object;
  params?: object;
};

export type setType = {
  title: string;
  fixedHeader: boolean;
  hiddenSideBar: boolean;
};

export type userType = {
  /**
   * 验证码
   */
  verifyCode?: string;
  /**
   * 判断登录页面显示哪个组件（0：登录（默认）、1：手机登录、2：二维码登录、3：注册、4：忘记密码,1,2预留暂不开发）
   */
  currentPage?: number;
  /**
   * 是否记住密码
   */
  isRemembered?: boolean;
  /**
   * 登录天数
   */
  loginDay?: number;
  /** 用户名 */
  username: string;
  /** 用户性别 */
  gender: number;
  /** 用户昵称 */
  nickname?: string;
  /**用户邮箱 */
  email?: string;
  /**用户手机号 */
  phone?: string;
  /**用户角色 */
  roles?: Array<string>;
  /**用户权限 */
  permissions?: Array<string>;
  /**用户部门ID */
  department_id?: string;
  /**用户头像 */
  avatar?: string;
  /**用户数据库ID */
  id?: string;
  /**
   * 用户Token
   */
  accessToken: string;
  /**
   * 过期时间（时间戳）
   */
  expires: number;
  /**
   *  用于调用刷新accessToken的接口时所需的token
   */
  refreshToken: string;
};
