import request from "@/utils/request"; const API_PATH = "/payment/department"; // 部门状态标签类型 export const DEPARTMENT_STATUS_TAG_TYPE: Record = { NORMAL: "success", DISABLED: "warning" }; // 部门状态标签 export const DEPARTMENT_STATUS_LABEL: Record = { NORMAL: "正常", DISABLED: "禁用" }; // 部门状态枚举 export enum DepartmentStatus { ACTIVE = "NORMAL", DISABLED = "DISABLED" }; // 部门列表查询参数 export interface DepartmentPageQuery { page_no?: number; page_size?: number; enterprise_id?: string; department_name?: string; department_code?: string; parent_department_id?: string; status?: string; } // 部门信息 export interface DepartmentInfo { id: number; department_id: string; department_name: string; department_code?: string; parent_department_id?: string; enterprise_id: string; status: string; sort_order?: number; leader_employee_id?: string; leader_employee_name?: string; created_time: string; updated_time: string; tenant_id: number; } // 部门列表项 export interface DepartmentTable { id: number; department_id: string; department_name: string; department_code?: string; parent_department_id?: string; enterprise_id: string; status: string; sort_order?: number; leader_employee_name?: string; created_time: string; } // 部门树形节点 export interface DepartmentTreeNode { id: string; label: string; code?: string; sort_order?: number; leader_employee_name?: string; children?: DepartmentTreeNode[]; } // 部门操作响应 export interface DepartmentOperation { department_id: string; department_name: string; } // 部门详情响应 export interface DepartmentDetail { department: DepartmentInfo; sub_departments: DepartmentInfo[]; } // 部门API export default { // 创建部门 createDepartment(data: { enterprise_id: string; department_name: string; department_code?: string; parent_department_id?: string; sort_order?: number; leader_employee_id?: string; leader_employee_name?: string; }) { return request>({ url: API_PATH, method: "post", data, }); }, // 删除部门 deleteDepartment(department_id: string, enterprise_id: string) { return request>({ url: `${API_PATH}/${department_id}`, method: "delete", params: { enterprise_id, }, }); }, // 更新部门 updateDepartment(department_id: string, enterprise_id: string, data: { department_name?: string; department_code?: string; parent_department_id?: string; sort_order?: number; leader_employee_id?: string; leader_employee_name?: string; }) { return request>({ url: `${API_PATH}/${department_id}`, method: "put", params: { enterprise_id, }, data, }); }, // 查询部门详情 getDepartmentDetail(department_id: string, enterprise_id: string) { return request>({ url: `${API_PATH}/${department_id}`, method: "get", params: { enterprise_id, }, }); }, // 获取部门选项 getDepartmentOptions(params: { enterprise_id: string; }) { return request>({ url: `${API_PATH}/tree/list`, method: "get", params, }).then(response => { // 转换数据结构以匹配前端选择框 if (response.data.code === 0 && response.data.data) { const convertTreeStructure = (tree: any[]): any[] => { return tree.map(node => ({ value: node.department_id, label: node.department_name, disabled: false, children: node.children && node.children.length > 0 ? convertTreeStructure(node.children) : [] })); }; response.data.data = convertTreeStructure(response.data.data); } return response; }); }, // 查询子部门列表 getSubDepartments(department_id: string, enterprise_id: string) { return request>({ url: `${API_PATH}/${department_id}/sub`, method: "get", params: { enterprise_id, }, }); }, // 分页查询部门列表 listDepartment(query: DepartmentPageQuery) { return request> ({ url: API_PATH, method: "get", params: query, }); }, // 获取部门树形结构 getDepartmentTree(enterprise_id: string) { return request>({ url: `${API_PATH}/tree/list`, method: "get", params: { enterprise_id, }, }); }, };