interface.d.ts 4.92 KB
import Enum from '@/utils/enum';

declare namespace CompensateConfig {

  interface DeleteKpiGroup {
    id: number
  }
  interface BasePageParams {
    current: number;
    pageSize: number;
  }
  /**
   * 薪酬组列表请求参数
   */

  interface GroupListParams {
    current?: number;
    pageSize?: number;
    shopId?: number; //门店id
    postId?: number; //岗位id
    groupId?: number; //集团id
  }

  /**
 * 薪酬组列表项
 */
  interface GroupListItems {
    draftId: number;
    beginTimeType?: number; //生效月度
    postId: number; //岗位id
    postName: string; //岗位名称
    shopIds: number[]; //适用门店ids
    shopNames: string[]; //适用门店名称
    beginTime: number; //生效时间
    overTime: number; //失效时间
    reason: string; //调整原因
    attachment: string[]; //  附件; fid逗号隔开
    status: number; //    状态; 1:审批中 2:待生效 3:生效中 4: 已失效
    projectNum: number; //薪酬项数量; 只统计可配置的的项目数
    groupId: number; //集团id
    projects: Projects[];//	薪酬组薪酬项目
    id: number; //主键id    
  }

  // 薪酬组薪酬项目
  interface Projects {
    salaryGroupId: number; //薪酬组id
    salaryProjectId: number; //薪酬项目id
    salaryProjectCode: string;//薪酬项目编码
    salaryProjectName: string; //薪酬项目名称
    calMethod: number; //   计算方式; 1: 星级 2:固定金额 3: 阶梯提成(单) 4:按量 5: 固定提成 6: 阶梯提成(总)
    single: boolean; //  唯一值; 是否允许有多个相同项目 
    settings: Settings[];
    id: number; //主键id    
  }

  // 薪酬项目配置
  interface Settings {
    salaryGroupProjectId: number; // 薪酬项目配置id
    stairKey: number; //阶梯key;新车销售按车系计算是 对应车系id其他则为绩效项id
    stairKeyDesc: string;//阶梯key对应描述
    stairValue: number;//计算相关值
    stairMin?: number;//阶梯值下限
    stairMax?: number;//阶梯值上限;阶梯值上限
    id: number;
  }

  /**人员查看 */
  interface Person {
    visible: boolean;
    postId?: number; //岗位id
    shopIds: number[]; //门店id
  }

  /**
   * 实时查询绩效组人员 参数
   */
  // interface RealTimeParams extends BasePageParams {
  interface RealTimeParams {
    shopIds: string; //   门店id
    postId: number; //岗位id
  }

  /**
   * 实时查询绩效组人员 列表项
   */
  interface RealTimePersonItems {
    salaryGroupId: number; //薪酬组id
    userId: number; //人员id
    userName: string; //人员名称
    postId: number; //岗位id
    postName: string; //岗位名称
    shopId: number; //门店id
    shopName: string; //在职门店
    probationer: boolean;//是否是试用人员
    dataDate: string; //数据日期
    groupId: number; //集团id
    id: number; //主键id
  }
  /**
   * 查询绩效组人员(列表) 参数
   */
  interface GroupConfigParams {
    id: number; // 绩效组id
    staffName?: number; //员工名称
  }

  /**
   * 获取岗位下的绩效组指标
   */
  interface SelectIndicator {
    id: number;
    salaryCode: string;
    salaryName: string
  }
  // 配置薪酬项目
  interface Item {
    laddersType: number;
    index: number
    targets: any[];
    ladderParamAlias: string;
    commissionParamAlias: string;
    preconditionAlias: string;
    calMethod: number;
    settings: Settings[];
    id?: number;
    name: string;
    ladderParams: CommissionParams[];
    commissionParams: CommissionParams[];
    conds: Conds[];
  }
  interface Conds {
    indicatorCode: string;
    indicatorId?: number;
    indicatorName: string;
    targetType: number;
    targetValue?: number;
    targetCalcType?: number;
    sort: number; // 排序
    condValue:number;// 条件值
  }
  interface CommissionParams {
    indicatorCode: string;
    indicatorId?: number;
    indicatorName: string;
    targetType: number;
    cap: boolean; //是否封顶
    proportion: number; //占比
    targetValue?: number;
    targetCalcType?: number;
    sort: number;
  }
  // 薪酬项配置
interface Settings{
  stairKey: number;// 阶梯key;
  stairKeyDesc: string; //	阶梯key对应描述 
  stairValue: number;//计算基础值
  stairMin?: number;//阶梯值下限
  stairMax?: number; //阶梯值上限
}
  // 得分阶梯
  interface IndicatorLadders {
    lower: number;
    key: string;
    standardScore: number;
  }
  interface StartData {
    level: string;
    lower?: number;
    upper?: number;
  }

  /**
 * 薪酬组保存 参数
 */
  interface SalaryGroupSaveParams {
    id?:number;
    postId: number; //岗位id
    postName: string; //岗位名称
    shopIds: number[]; //适用门店ids
    shopNames: string[]; //适用门店名称
    beginTime: number; //生效时间
    reason?: string; //调整原因
    attachment?: string[];//附件ids
    groupId?: number;//集团id
    userName?: string;//用户名
    projects: Projects[];//薪酬项目
  }
  /**薪酬项目 */
}