user.js 3.14 KB
import request from '@/utils/request'

// 用户列表
export function getUserData(data) {
  return request({
    url: '/api/User/GetUserByPage',
    method: 'post',
    data
  })
}

// 用户删除
export function deleteUser(data) {
  return request({
    url: '/api/User/DeleteUser',
    method: 'post',
    data
  })
}


// 用户新增
export function addUser(data) {
  return request({
    url: '/api/User/AddUser',
    method: 'post',
    data
  })
}

// 用户编辑
export function editUser(data) {
  return request({
    url: '/api/User/EditUser',
    method: 'post',
    data
  })
}

// 用户编辑  获取用户对应的角色数据
export function getUserWithRoles(data) {
  return request({
    url: '/api/User/GetUserWithRoles',
    method: 'post',
    data
  })
}


// 获取角色信息列表
export function getUserRole() {
  return request({
    url: '/api/User/GetRole',
    method: 'post',
  })
}

// 所有的权限信息
export function getAllPermission() {
  return request({
    url: '/api/User/GetAllPermission',
    method: 'get',
  })
}

// 获取角色对应的权限
export function getPermissionByRoleId(id) {
  return request({
    url: '/api/User/GetPermissionByRoleId?id=' + id,
    method: 'get',
  })
}

// 新增角色,以及角色绑定权限
export function addRoleAndPermissions(data) {
  return request({
    url: '/api/User/AddRoleAndPermissions',
    method: 'post',
    data
  })
}

// 编辑角色,以及角色绑定权限
export function editRoleAndPermissions(data) {
  return request({
    url: '/api/User/EditRoleAndPermissions',
    method: 'post',
    data
  })
}


// 删除角色信息
export function deleteRoleByIds(data) {
  return request({
    url: '/api/User/DeleteRoleByIds',
    method: 'post',
    data: data
  })
}

const mapPermissionType = function (type) {
  const typeMap = {
    10: 'module',
    1: 'folder',
    5: 'menu'
  }
  return typeMap[type] || 'default'
}


// 用户选项数据转换给组件格式数据
export function transformToTreeData(originalData) {
  // 创建映射表
  const nodeMap = new Map();
  // 第一次遍历:创建所有节点并存入映射表
  originalData.forEach(item => {
    nodeMap.set(item.id, {
      id: item.id,
      label: item.permissionName,
      parentId: item.parentId,
      orderNum: item.orderNum,
      permissionCode: item.permissionCode,
      permissionType: item.permissionType,
      perms: item.perms,
      icon: item.icon,
      children: [], // 使用 el-tree 默认的 children 字段

      // 添加类型标识字段(保持与图片中的层级对应)
      nodeType: mapPermissionType(item.permissionType),
      label: `${item.permissionCode} - ${item.permissionName}`,
    });
  });

  // 第二次遍历:构建树结构
  const tree = [];
  nodeMap.forEach(node => {
    if (node.parentId === null) {
      tree.push(node);
    } else {
      const parent = nodeMap.get(node.parentId);
      if (parent) {
        parent.children.push(node);
        // 根据 orderNum 排序子节点
        parent.children.sort((a, b) => a.orderNum - b.orderNum);
      }
    }
  });

  // 对根节点排序
  tree.sort((a, b) => a.orderNum - b.orderNum);
  return tree;
}