// @ts-ignore
/* eslint-disable */

declare namespace API {
  // common
  type Result = {
    data: any;
    status?: string;
    msg?: string;
    [key?: string]: any;
  };
  // Login

  type userLoginReq = {
    verifyCode: string;
    password: string;
    username: string;
    verifyCodeKey: string;
    companyId?: string;
  };

  type LoginResult = {
    data: any;
    status?: string;
    type?: string;
    currentAuthority?: string;
  };

  type CaptchaResult = {
    captcha?: string | undefined;
    status?: string;
    type?: string;
    captchaKey?: string;
    currentAuthority?: string;
  };
  // 列表页面
  type listReq = {
    pageNum: number;
    pageSize: number;
    [key?: string]: any;
  };
  type listResult = {
    data: {
      total: any;
      count: number;
      items: any[];
      pageNum: number;
      pageSize: number;
      totalPage: number;
    };
    status?: string;
    msg?: string;
    [key?: string]: any;
  };

  type CurrentUser = {
    [key: string]: any;
  };
  type MenuItem = {
    id: number;
    parentId: number;
    privilegeName: string;
    children?: MenuTree;
    isDeleted?: boolean;
    isDisabled?: boolean;
    permission?: any;
    privilegeIcon?: string;
    privilegeUrl?: string;
    remark?: string;
    type?: number;
  };
  type MenuTree = [
    {
      id: number;
      parentId: number;
      privilegeName: string;
      children?: MenuTree;
      isDeleted?: boolean;
      isDisabled?: boolean;
      permission?: any;
      privilegeIcon?: string;
      privilegeUrl?: string;
      remark?: string;
      type?: number;
    },
  ];
  type userSettingReq = {
    oldPassword: string;
    newPassword: string;
    confirmPassword: string;
  };
  // 团队管理-列表
  type companyMangeReq = {
    pageNum: number;
    pageSize: number;
    deptAreaId?: number;
    deptCityId?: number;
    deptFullName?: string;
    deptName?: string;
    deptProvinceId?: number;
    personLiableId?: number;
  };
  // 团队管理-禁用启用
  type disableOrOpenReq = {
    id: number;
    status: number; //1禁用2启用
  };
  // 团队管理-添加部门
  type addCompany = {
    deptAddress: string;
    deptFullName: string;
    deptLocation: number[];
    deptName?: string;
    parentId: number;
    personLiableId: number;
    remark: string;
    type?: number;
  };
  // 根据字典顶级父项Id获取子项
  type getDictChildItemMessage = {
    dictId: string | number;
  };
  type companyTree = {
    companyId: number;
    deptName?: string;
    deptTitle?: string;
    endTime?: string;
    pageNum: number;
    pageSize: number;
    startTime?: string;
  };
}
