import { http } from "@/utils/http"; import { ref } from "vue"; // 部门 type addDept = { code: number; msg: string; data: boolean; }; type addDeptList = { code: number; msg: string; data: Array; }; export const postAddDept = data => { return http.request("post", "/sysDept/addDept", { data }); }; export const postDelDept = data => { return http.request("post", "/sysDept/delDept", { data }); }; export const postListTree = () => { return http.request("post", "/sysDept/listTree"); }; export const postUpdateDept = data => { return http.request("post", "/sysDept/updateDept", { data }); }; // 部门下新建人员 export const postDeptUserAdd = data => { return http.request("post", "/sysDept/deptUserAdd", { data }); }; // 部门下树(包含用户信息) export const postListTreeWithUser = () => { return http.request("post", "/sysDept/listTreeWithUser"); }; export const treeDept = ref([]); export const postListTreeWithUserApi = async () => { const res = await postListTreeWithUser(); treeDept.value = transformData(res.data); }; const transformData = data => { // 基本的转换逻辑 return data.map(item => { // 初始化一个转换后的项目 const transformedItem = { userName: item.deptName || item.userName, // 使用 deptName 或 userName userCode: item.deptCode || item.userCode, // 使用 deptCode 或 userCode children: [] // 用于存储子部门和用户数据 }; // 递归处理子部门数据(childrenRes) if (item.childrenRes && Array.isArray(item.childrenRes)) { transformedItem.children.push(...transformData(item.childrenRes)); // 合并所有子部门 } // 处理当前部门的用户数据(childrenUserRes) if (item.childrenUserRes && Array.isArray(item.childrenUserRes)) { item.childrenUserRes.forEach(user => { // 将每个用户添加到 children 数组 transformedItem.children.push({ userName: user.userName, userCode: user.userCode }); }); } return transformedItem; }); };