account.ts 8.25 KB
import { defHttp } from '/@/utils/http/axios';

enum Api {
  ROLE_LIST = '/order/erp/roles/all',
  ROLE_ADD = '/order/erp/roles/add',
  ROLE_EDIT = '/order/erp/roles/edit',
  ROLE_DELETE = '/order/erp/roles/delete',

  USER_LIST = '/order/erp/users/list_by_page',
  USER_ADD = '/order/erp/users/add',
  USER_EDIT = '/order/erp/users/edit',
  USER_DELETE = '/order/erp/users/delete',
  USER_OPT = '/order/erp/users/opt',
  USER_RESET_PASSWORD = '/order/erp/users/reset', // 管理员重置密码

  
  DEPT_LIST = '/order/erp/depts/all',
  DEPT_ADD = '/order/erp/depts/add',
  DEPT_EDIT = '/order/erp/depts/edit',
  DEPT_DELETE = '/order/erp/depts/delete',
  
  COMPANY_LIST = '/order/erp/jobs/all',
  COMPANY_ADD = '/order/erp/jobs/add',
  COMPANY_EDIT = '/order/erp/jobs/edit',
  COMPANY_DELETE = '/order/erp/jobs/delete',
  
  // 人事配置相关API
  PERSONNEL_CONFIG_LIST = '/order/erp/system_setting/query_list',
  PERSONNEL_CONFIG_ADD = '/order/erp/system_setting/add',
  PERSONNEL_CONFIG_EDIT = '/order/erp/system_setting/edit',
  PERSONNEL_CONFIG_DELETE = '/order/erp/system_setting/delete_by_id',
}

export const getRoleList = async (params: any) => {
  const res = await defHttp.post<any>({
    url: Api.ROLE_LIST,
    params,
  });
console.log('==== 角色列表API原始返回数据 ====', res);
  
  // 在API层直接过滤掉生产科角色
  if (Array.isArray(res)) {
    const filtered = res.filter(item => item.id !== 6);
    console.log('==== API层过滤后的角色列表 ====', filtered);
    return filtered;
  }
  
  return res;
};
// 添加角色
export const addRole = async (params: any) => {
  return defHttp.post<any>({
    url: Api.ROLE_ADD,
    params,
  }, { 
    successMsg: '添加角色成功',
  });
};
// 编辑角色
export const editRole = async (params: any) => {
  return defHttp.post<any>({
    url: Api.ROLE_EDIT,
    params,
  }, { 
    successMsg: '编辑角色成功',
  });
};
// 删除角色
export const deleteRole = async (params: any) => {
  return defHttp.post<any>({
    url: Api.ROLE_DELETE,
    params,
  }, { 
    successMsg: '删除角色成功',
  });
};

export const getUserList = async (params: any) => {
  const res = await defHttp.post<any>({
    url: Api.USER_LIST,
    params,
  });
  return new Promise((resolve) => {
    resolve({
      items: res.records,
      total: res.total,
    });
  });
};

// export const getAccountList = async (params: AccountParams) => {
//   const res = await defHttp.post<AccountListGetResultModel>({ url: Api.AccountList, params });
//   return new Promise((resolve) => {
//     resolve(res.records);
//   });
// };

export const userAdd = async (params: any) => {
   return defHttp.post<any>({
      url: Api.USER_ADD,
      params,
   }, { 
    successMsg: '保存成功',
  });
};

export const userEdit = async (params: any) => {
    return defHttp.post<any>({
      url: Api.USER_EDIT,
      params,
     }, { 
    successMsg: '保存成功',
  }); 
};

export const userDelete = async (params: any) => {
  return defHttp.post<any>({
    url: Api.USER_DELETE,
    params,
  });
};

export const userOpt = async (params: any) => {
  return defHttp.post<any>({
      url: Api.USER_OPT,
      params,
  }, { 
    successMsg: '操作成功',
  }); 
};

export const userResetPassword = async (params: any) => {
      return defHttp.post<any>({
      url: Api.USER_RESET_PASSWORD,
      params,
 }, { 
    successMsg: '重置密码成功',
  });
};
export const getDeptList = async (params: any) => {
  return defHttp.post<any>({
    url: Api.DEPT_LIST,
    params,
  });
};
// 添加部门
export const addDept = async (params: any) => {
  return defHttp.post<any>({
    url: Api.DEPT_ADD,
    params,
  }, { 
    successMsg: '添加部门成功',
  });
};
// 编辑部门
export const editDept = async (params: any) => {
  return defHttp.post<any>({
    url: Api.DEPT_EDIT,
    params,
  }, { 
    successMsg: '编辑部门成功',
  });
};
// 删除部门
export const deleteDept = async (params: any) => {
  return defHttp.post<any>({
    url: Api.DEPT_DELETE,
    params,
  }, { 
    successMsg: '删除部门成功',
  });
};
// 获取公司列表
export const getCompanyList = async (params: any) => {
  return defHttp.post<any>({
    url: Api.COMPANY_LIST,
    params,
  });
};
// 添加公司
export const addCompany = async (params: any) => {
  return defHttp.post<any>({
    url: Api.COMPANY_ADD,
    params,
  }, { 
    successMsg: '添加公司成功',
  });
};
// 编辑公司
export const editCompany = async (params: any) => {
  return defHttp.post<any>({
    url: Api.COMPANY_EDIT,
    params,
  }, { 
    successMsg: '编辑公司成功',
  });
};
// 删除公司
export const deleteCompany = async (params: any) => {
  return defHttp.post<any>({
    url: Api.COMPANY_DELETE,
    params,
  }, { 
    successMsg: '删除公司成功',
  });
};
// 人事配置相关API
export const getPersonnelConfigList = async (params: any) => {
  // 合并请求参数,确保必要的参数存在
  const requestParams = {
    settingType: 60,
    ...params, // 保留其他可能的过滤参数
  };
  
  const res = await defHttp.post<any>({
    url: Api.PERSONNEL_CONFIG_LIST,
    params: requestParams,
  });
  
  // 处理后端返回的数据,转换为表格所需格式
  let items: any[] = [];
  
  if (res && Array.isArray(res)) {
    items = res.map((item: any) => {
      // 解析relationValue JSON字符串
      let relationData = { allDay: 0, weekDay: 0, payDay: 0, appointedDay: 0, monthlyWorkingDay: 0, settingType: 0 };
      try {
        if (item.relationValue) {
          
          // 检查relationValue是否已经是对象
          if (typeof item.relationValue === 'string') {
            const parsedData = JSON.parse(item.relationValue);
            if (typeof parsedData === 'object' && parsedData !== null) {
              relationData = { ...relationData, ...parsedData };
              console.log('解析后的relationValue数据:', relationData);
            }
          } else {
            // 尝试解析JSON字符串
            const parsedData = JSON.parse(item.relationValue);
            if (Array.isArray(parsedData) && parsedData.length > 0) {
              relationData = { ...relationData, ...parsedData[0] };
            }
          }
        }
      } catch (e) {
        console.error('解析relationValue失败:', e, 'relationValue:', item.relationValue);
      }
      
      // 处理考勤配置数据 (settingType 61-64)
      if(item.settingType == 61 || item.settingType == 62 || item.settingType == 63 || item.settingType == 64){
        // 修正:确保monthlyWorkingDay映射到workDays,payDay映射到salaryDays
        relationData.weekDay = relationData.monthlyWorkingDay;
        // 确保payDay也被正确记录
        relationData.payDay = relationData.payDay || 0;
        relationData.settingType = item.settingType;
        console.log('处理后的考勤数据:', relationData);
      }
      
      return {
        id: item.id,
        year: item.settingValue,       // 年份 - settingValue
        month: item.relationName,      // 月份 - relationName
        calendarDays: relationData.allDay,        // 日历天数 - relationValue中的allDay
        workDays: relationData.weekDay || relationData.monthlyWorkingDay,  // 工作日 - 优先使用weekDay,兼容monthlyWorkingDay
        salaryDays: relationData.payDay,         // 计薪日 - relationValue中的payDay
        legalHolidays: relationData.appointedDay,  // 法定日 - relationValue中的appointedDay
        settingType: item.settingType
      };
    });
  }
  
  // 添加最终处理后的数据日志
  console.log('最终处理后的数据:', items);
  
  return {
    items: items,
    total: items.length
  };
};
// 添加人事配置
export const addPersonnelConfig = async (params: any) => {
  return defHttp.post<any>({
    url: Api.PERSONNEL_CONFIG_ADD,
    params,
  }, { 
    successMsg: '添加人事配置成功',
  });
};
// 编辑人事配置
export const editPersonnelConfig = async (params: any) => {
  return defHttp.post<any>({
    url: Api.PERSONNEL_CONFIG_EDIT,
    params,
  }, { 
    successMsg: '编辑人事配置成功',
  });
};
// 删除人事配置
export const deletePersonnelConfig = async (params: any) => {
  return defHttp.post<any>({
    url: Api.PERSONNEL_CONFIG_DELETE,
    params,
  }, { 
    successMsg: '删除人事配置成功',
  });
};