import request from "@/api";
import { IMenuForm, IRoleForm } from "@/const/interface_type";

// 获取系统菜单
export function getMenu(id: string) {
  return request({
    url: "/admin/menu",
    params: { parentId: id },
    method: "get"
  });
}

// 权限管理 —— 菜单管理 —— 获取列表
export function fetchMenuTree(params?: { menuName?: string }) {
  return request({
    url: "/admin/menu/tree",
    method: "get",
    params: params
  });
}

// 权限管理 —— 菜单管理 —— 获取菜单详情
export function getMenuObj(id: string) {
  return request({
    url: "/admin/menu/" + id,
    method: "get"
  });
}

// 权限管理 —— 菜单管理 —— 添加菜单
export function addMenuObj(obj: IMenuForm) {
  return request({
    url: "/admin/menu",
    method: "post",
    data: obj
  });
}

// 权限管理 —— 菜单管理 —— 删除菜单
export function delMenuObj(id: string) {
  return request({
    url: "/admin/menu/" + id,
    method: "delete"
  });
}

// 权限管理 —— 菜单管理 —— 修改菜单详情
export function putMenuObj(obj: IMenuForm) {
  return request({
    url: "/admin/menu",
    method: "put",
    data: obj
  });
}

// 权限管理 —— 角色管理 —— 获取列表
export function getRoleList(params?: any) {
  return request({
    url: "/admin/role/page",
    method: "get",
    params
  });
}

// 权限管理 —— 角色管理 —— 获取列表
export function getObjByCode(code: string) {
  return request({
    url: "/admin/role/code/" + code,
    method: "get"
  });
}

// 权限管理 —— 角色管理 —— 添加角色
export function addRoleObj(obj: IRoleForm) {
  return request({
    url: "/admin/role",
    method: "post",
    data: obj
  });
}

// 权限管理 —— 角色管理 —— 修改角色
export function putRoleObj(obj: IRoleForm) {
  return request({
    url: "/admin/role",
    method: "put",
    data: obj
  });
}

// 权限管理 —— 角色管理 —— 修改角色
export function delRoleObj(id: string) {
  return request({
    url: "/admin/role/" + id,
    method: "delete"
  });
}

// 权限管理 —— 角色管理 —— 获取权限列表
export function fetchRoleTree(roleId: string) {
  return request({
    url: "/admin/menu/tree/" + roleId,
    method: "get"
  });
}

// 权限管理 —— 角色管理 —— 修改权限
export function updatePermission(roleId: string, menuIds: string) {
  return request({
    url: "/admin/role/menu",
    method: "put",
    data: {
      roleId,
      menuIds
    }
  });
}

// 权限管理 —— 部门管理 —— 获取列表
export function getDeptList(query?: any) {
  return request({
    url: "/admin/dept/tree",
    method: "get",
    params: query
  });
}

// 权限管理 —— 部门管理 —— 获取部门顺序
export function getDeptObj(id: string) {
  return request({
    url: "/admin/dept/" + id,
    method: "get"
  });
}

// 权限管理 —— 部门管理 —— 新增部门
export function addDeptObj(data: any) {
  return request({
    url: "/admin/dept/",
    method: "post",
    data
  });
}

// 权限管理 —— 部门管理 —— 修改部门
export function putDeptObj(obj: any) {
  return request({
    url: "/admin/dept/",
    method: "put",
    data: obj
  });
}

// 权限管理 —— 部门管理 —— 删除部门
export function delDeptObj(id: string) {
  return request({
    url: "/admin/dept/" + id,
    method: "delete"
  });
}

// 权限管理 —— 用户管理 —— 获取列表
export function getUserList(query: any) {
  return request({
    url: "/admin/user/page",
    method: "get",
    params: query
  });
}

// 权限管理 —— 用户管理 —— 获取用户详情
export function getDetails(obj: string) {
  return request({
    url: "/admin/user/details/" + obj,
    method: "get"
  });
}

// 权限管理 —— 用户管理 —— 新增用户
export function addUserObj(obj: any) {
  return request({
    url: "/admin/user",
    method: "post",
    data: obj
  });
}

// 权限管理 —— 用户管理 —— 修改用户
export function putUserObj(obj: any) {
  return request({
    url: "/admin/user",
    method: "put",
    data: obj
  });
}

// 权限管理 —— 用户管理 —— 删除用户
export function delUserObj(id: string) {
  return request({
    url: "/admin/user/" + id,
    method: "delete"
  });
}

// 系统管理 —— 字典管理 —— 获取列表
export function getDictList(query: any) {
  return request({
    url: "/admin/dict/page",
    method: "get",
    params: query
  });
}

// 系统管理 —— 字典管理 —— 添加字典
export function addDictObj(obj: any) {
  return request({
    url: "/admin/dict/",
    method: "post",
    data: obj
  });
}

// 系统管理 —— 字典管理 —— 修改字典
export function putDictObj(obj: any) {
  return request({
    url: "/admin/dict/",
    method: "put",
    data: obj
  });
}

// 系统管理 —— 字典管理 —— 删除字典
export function delDictObj(id: string) {
  return request({
    url: "/admin/dict/" + id,
    method: "delete"
  });
}

// 系统管理 —— 字典管理 —— 获取字典项详情
export function getDictItemList(query: any) {
  return request({
    url: "/admin/dict/item/page",
    method: "get",
    params: query
  });
}

// 系统管理 —— 字典管理 —— 新增字典项详情
export function createDictItem(obj: any) {
  return request({
    url: "/admin/dict/item",
    method: "post",
    data: obj
  });
}

// 系统管理 —— 字典管理 —— 修改字典项详情
export function updateDictItem(obj: any) {
  return request({
    url: "/admin/dict/item",
    method: "put",
    data: obj
  });
}

// 系统管理 —— 字典管理 —— 删除字典项详情
export function deleteDictItem(id: string) {
  return request({
    url: "/admin/dict/item/" + id,
    method: "delete"
  });
}

// 系统管理 —— 日志管理 —— 获取日志列表
export function getLogList(query: any) {
  return request({
    url: "/admin/log/page",
    method: "get",
    params: query
  });
}

// 系统管理 —— 日志管理 —— 删除日志信息
export function delLogObj(id: string) {
  return request({
    url: "/admin/log/" + id,
    method: "delete"
  });
}

// 获取字典
export function getDirectory(id: string) {
  return request({
    url: `/admin/dict/type/${id}`,
    method: "get"
  });
}
