salary.ts 3.18 KB
import { defHttp } from '/@/utils/http/axios';
import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';

enum Api {
  WAGES_LIST_BY_PAGE = '/order/erp/users/oldWages/list_by_page',
  SAVE_WAGES = '/order/erp/users/oldWages/save',
  DELETE_WAGES = '/order/erp/users/oldWages/delete',
  APPROVE_WAGES = '/order/erp/users/oldWages/approve',
  REJECT_WAGES = '/order/erp/users/oldWages/reject',
  DISTRIBUTE_WAGES = '/order/erp/users/oldWages/distribute',
}

export interface WagesParams extends BasicPageParams {
  chineseName?: string;
  nickName?: string;
  companyName?: string;
  dateTime: string; // 必须参数,工资月份
  wagesStatus?: string;
  distributionStatus?: string;
}

export interface WagesItem {
  userId: number;
  nickName: string;
  chineseName: string;
  roleId: number;
  roleName: string;
  deptName: string;
  companyName: string;
  wagesId: number;
  wagesName: string;
  tax: number;
  basicWages: number;
  postAllowance: number;
  managementAllowance: number;
  phoneAllowance: number;
  mealAllowance: number;
  transportationAllowance: number;
  attendanceAllowance: number;
  performanceAllowance: number;
  commissionPrice: number;
  bonusPrice: number;
  deductibleSalaryPrice: number;
  otherDeductionsPrice: number;
  salaryPrice: number;
  ActualSalaryPrice: number;
  totalCost: number;
  individualTotal: number;
  companyTotal: number;
  personalPensionInsurance: number;
  personalPensionMedicalInsurance: number;
  personalPensionUnemploymentInsurance: number;
  personalPensionLargeScaleMedicalInsurance: number;
  personalPensionProvidentFundInsurance: number;
  companyInsurance: number;
  companyMedicalInsurance: number;
  companyUnemploymentInsurance: number;
  companyEmploymentInjuryInsurance: number;
  companyMaternityInsurance: number;
  companyLargeScaleMedicalInsurance: number;
  companyProvidentFundInsurance: number;
  dateTime: string;
  wagesStatus: string; // 审核状态:0:待审核,10:已审核,20:已驳回
  distributionStatus: string; // 发放状态:0:待审核,10:已发放
}

// 定义可能的响应格式
export interface WagesResponse {
  records?: WagesItem[];
  total?: number;
  page?: number;
  pageSize?: number;
  current?: number;
  pages?: number;
}

/**
 * 分页获取工资列表数据
 */
export function getWagesListByPage(params: WagesParams) {
  return defHttp.post<WagesResponse>({
    url: Api.WAGES_LIST_BY_PAGE,
    params,
  });
}

/**
 * 保存工资数据
 */
export function saveWages(params: WagesItem) {
  return defHttp.post<WagesItem>({
    url: Api.SAVE_WAGES,
    params,
  });
}

/**
 * 删除工资数据
 */
export function deleteWages(wagesId: string) {
  return defHttp.post({
    url: Api.DELETE_WAGES,
    params: { wagesId },
  });
}

/**
 * 审核工资数据
 */
export function approveWages(wagesId: string) {
  return defHttp.post({
    url: Api.APPROVE_WAGES,
    params: { wagesId },
  });
}

/**
 * 驳回工资数据
 */
export function rejectWages(wagesId: string) {
  return defHttp.post({
    url: Api.REJECT_WAGES,
    params: { wagesId },
  });
}

/**
 * 发放工资
 */
export function distributeWages(wagesId: string) {
  return defHttp.post({
    url: Api.DISTRIBUTE_WAGES,
    params: { wagesId },
  });
}