userPermission.js 4.92 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 getPermissions() {
  return request({
    url: '/api/User/GetPermissions',
    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 = {
    1: 'folder', //目录
    5: 'menu',   //菜单
    10: 'module',//模块
    15: 'btn'    //按钮
  }
  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;
}
/**********************角色管理结束 *********************/

// 权限信息删除 data =[1]
export function deletePermissionByIds(data) {
  return request({
    url: '/api/User/DeletePermissionByIds',
    method: 'post',
    data: data
  })
}

// 权限信息保存
export function savePermission(data) {
  return request({
    url: '/api/User/SavePermission ',
    method: 'post',
    data: data
  })
}

const typeMap = {
  1: '目录',
  5: '菜单',
  10: '模块',
  15: '按钮'
}
const getPermissionType = function (type) {
  return typeMap[type] || 'default'
}

const getIcon = function (type) {
  const typeMap = {
    '1': 'pack://application:,,,/HHECS.WinClient;component/Resource/Content/Icon/目录.png',
    '5': 'pack://application:,,,/HHECS.WinClient;component/Resource/Content/Icon/菜单.png',
    '10': 'pack://application:,,,/HHECS.WinClient;component/Resource/Content/Icon/模块.png',
    '15': 'pack://application:,,,/HHECS.WinClient;component/Resource/Content/Icon/按钮.png'
  }
  return typeMap[type] || 'pack://application:,,,/HHECS.WinClient;component/Resource/Content/Icon/目录.png'
}

export { getPermissionType, getIcon, typeMap }


export function ajaxSuccessBefore(res, callBack, thisInfo, isAlert = true) {
  if (res.code !== 'Success') return;
  if (isAlert && thisInfo != null) thisInfo.$message.success("业务数据操作成功!");
  if (callBack != null) callBack(res);
}