| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- import request from "@/utils/request";
- const API_PATH = "/payment/department";
- // 部门状态标签类型
- export const DEPARTMENT_STATUS_TAG_TYPE: Record<string, string> = {
- NORMAL: "success",
- DISABLED: "warning"
- };
- // 部门状态标签
- export const DEPARTMENT_STATUS_LABEL: Record<string, string> = {
- 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<ApiResponse<DepartmentOperation>>({
- url: API_PATH,
- method: "post",
- data,
- });
- },
- // 删除部门
- deleteDepartment(department_id: string, enterprise_id: string) {
- return request<ApiResponse<DepartmentOperation>>({
- 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<ApiResponse<DepartmentOperation>>({
- url: `${API_PATH}/${department_id}`,
- method: "put",
- params: {
- enterprise_id,
- },
- data,
- });
- },
- // 查询部门详情
- getDepartmentDetail(department_id: string, enterprise_id: string) {
- return request<ApiResponse<DepartmentDetail>>({
- url: `${API_PATH}/${department_id}`,
- method: "get",
- params: {
- enterprise_id,
- },
- });
- },
- // 获取部门选项
- getDepartmentOptions(params: {
- enterprise_id: string;
- }) {
- return request<ApiResponse<any[]>>({
- 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<ApiResponse<string[]>>({
- url: `${API_PATH}/${department_id}/sub`,
- method: "get",
- params: {
- enterprise_id,
- },
- });
- },
- // 分页查询部门列表
- listDepartment(query: DepartmentPageQuery) {
- return request<ApiResponse<{
- items: DepartmentTable[];
- total: number;
- page_no: number;
- page_size: number;
- }>> ({
- url: API_PATH,
- method: "get",
- params: query,
- });
- },
- // 获取部门树形结构
- getDepartmentTree(enterprise_id: string) {
- return request<ApiResponse<DepartmentTreeNode[]>>({
- url: `${API_PATH}/tree/list`,
- method: "get",
- params: {
- enterprise_id,
- },
- });
- },
- };
|