import React, { useEffect, useState } from "react"; import { Modal, Form, Select, InputNumber, message, Input, Button, Radio } from "antd"; import { useStore } from "../index"; import _ from "lodash"; import Rule1 from "@/pages/performance/CompensateGroupConfig/components/Rule1"; import { EvaGroupSetteing } from "@/pages/performance/EvaGroupSetting/interface"; import SingleAmount from "@/pages/performance/CompensateGroupConfig/EditComfirm/components/SingleAmount"; import TotalAmountSal from "./TotalAmountSal"; import FixedCommission from "@/pages/performance/CompensateGroupConfig/EditComfirm/components/FixedCommission"; import CommissionParamsSal from "./CommissionParamsSal"; import LadderParamsSal from "./LadderParamsSal"; import RankModal from "./RankModal"; import { Any } from "currency.js"; import CondsSal from "./CondsSal"; const Option = Select.Option; interface Props { visible: boolean; onCancel: Function; onOk: (vales: any) => void; currentItem: EvaGroupSetteing.Rewards; indicatorsList?: any[]; postId?: number; shopIds?: string; scopeType: number; } export default function CreateModal(props: Props) { const [form] = Form.useForm(); const { ladderParamAlias, setLadderParamAlias, commissionParamAlias, setCommissionParamAlias, preconditionAliasSal, setPreconditionAliasSal, calType, setCalType, } = useStore(); const { visible, onCancel, onOk, currentItem, indicatorsList = [], postId, shopIds, scopeType } = props; // 是否为百分比 const [isPercent, setIsPercent] = useState(0); // 判断占比相加是否为100 const [isHundred, setIsHundred] = useState(false); const [isHundredLadder, setIsHundredLadder] = useState(false); // 显示前置条件 const [condsVisible, setCondsVisible] = useState(false); const [id, setItemId] = useState(); useEffect(() => { if (visible && currentItem.name) { setLadderParamAlias(currentItem.ladderParamAlias); setCommissionParamAlias(currentItem.commissionParamAlias); setPreconditionAliasSal(currentItem.preconditionAlias); //编辑时存储当前薪酬项目的计算方式 setCalType(currentItem.calMethod); // if (currentItem.settings[0].stairKeyDesc !== undefined && currentItem.calMethod === 4) { // setFixData(currentItem.settings); // } if (currentItem.conds && currentItem.conds.length > 0) { setCondsVisible(true); } else { setCondsVisible(false); } form.setFieldsValue({ ...currentItem, }); } if (!currentItem.name) { setCondsVisible(false); } }, [visible]); // 保存Modal function handSubmit(fieldsValue: any) { const pa: any = fieldsValue; // 校验标准分不能大于绩效分值 // if (id) { // pa.id = id; // } else { // pa.id = pa.name; // } if (pa?.ladderParams && pa?.ladderParams.length > 0) { pa.ladderParamAlias = ladderParamAlias; } if (pa?.commissionParams && pa?.commissionParams.length > 0) { pa.commissionParamAlias = commissionParamAlias; } if (pa?.conds && pa?.conds.length > 0) { pa.preconditionAlias = preconditionAliasSal; } let hundred = 0; let ladderHundred = 0; //设置sort if (pa?.commissionParams && pa?.commissionParams.length > 0) { pa?.commissionParams.forEach((item: any, index: number) => { Object.assign(item, { sort: index + 1 }); }); hundred = pa?.commissionParams.reduce((data: number, item: any) => { return data + item.proportion; }, 0); } if (pa?.ladderParams && pa?.ladderParams.length > 0) { pa?.ladderParams.forEach((item: any, index: number) => { Object.assign(item, { sort: index + 1 }); }); ladderHundred = pa?.ladderParams.reduce((data: number, item: any) => { return data + item.proportion; }, 0); if (isPercent == 0) { pa.laddersType = currentItem.laddersType; } else { pa.laddersType = isPercent; } } if (!pa?.ladderParams || pa?.ladderParams.length === 0) { pa.laddersType = 2; } if (pa?.conds) { pa?.conds.forEach((item: any, index: number) => { Object.assign(item, { sort: index + 1 }); }); } if (pa?.ladderParams && pa?.ladderParams.length > 0 && pa?.commissionParams && pa?.commissionParams.length > 0) { if (hundred === 100 && ladderHundred === 100) { setIsHundred(false); setIsHundredLadder(false); onOk(pa); console.log("100pa", pa); onCancel && onCancel(); } else if (hundred === 100 && ladderHundred !== 100) { setIsHundred(false); setIsHundredLadder(true); } else if (hundred !== 100 && ladderHundred === 100) { setIsHundred(true); setIsHundredLadder(false); } else { setIsHundred(true); setIsHundredLadder(true); } } else if (!pa?.ladderParams && pa?.commissionParams && pa?.commissionParams.length > 0) { if (hundred === 100) { setIsHundred(false); onOk(pa); console.log("100pa", pa); onCancel && onCancel(); } else { setIsHundred(true); } } else if (pa?.ladderParams && pa?.commissionParams && pa?.commissionParams.length === 0) { if (ladderHundred === 100) { setIsHundredLadder(false); onOk(pa); console.log("100pa", pa); onCancel && onCancel(); } else { setIsHundredLadder(true); } } else if (pa?.ladderParams && pa?.commissionParams == undefined) { if (ladderHundred === 100) { setIsHundredLadder(false); onOk(pa); console.log("100pa", pa); onCancel && onCancel(); } else { setIsHundredLadder(true); } } else if (pa?.commissionParams == undefined) { setIsHundred(false); onOk(pa); console.log("100pa", pa); onCancel && onCancel(); } else if (pa?.commissionParams && pa?.commissionParams.length == 0) { setIsHundred(false); onOk(pa); console.log("100pa", pa); onCancel && onCancel(); } } return ( { form.resetFields(); onCancel(); }} onCancel={() => onCancel()} onOk={form.submit} width={1200} >
prevValues.calMethod !== currentValues.calMethod} > {({ getFieldValue }) => { return ( ); }}
是否添加前置条件设置: { setCondsVisible(e.target.value); }} value={condsVisible} >
{condsVisible && ( )} prevValues.calMethod !== currentValues.calMethod} > {({ getFieldValue }) => { const caculateType = getFieldValue("calMethod"); if (caculateType !== 1) { return ( <> ); } else { return null; } }} prevValues.calMethod !== currentValues.calMethod} > {({ getFieldValue }) => { const caculateType = getFieldValue("calMethod"); if (caculateType == 1) { return ( <> 按固定值 按比例 {/* 正数 倒数 */} prevValues.rankType !== currentValues.rankType} > {({ getFieldValue }) => { const rankType = getFieldValue("rankType"); if (rankType == 1) { setIsPercent(1); } else { setIsPercent(2); } return null; }} prevValues.rankType !== currentValues.rankType} > {({ getFieldValue }) => { const rankType = getFieldValue("rankType"); if (rankType == 1 && (!currentItem.ladders || currentItem.ladders.length == 0)) { form.setFieldValue("ladders", [{ lower: 1, money: 0, key: 0, rankOrderType: 1 }]); } else if (rankType == 2 && (!currentItem.ladders || currentItem.ladders.length == 0)) { form.setFieldValue("ladders", [{ lower: 0, money: 0, key: 0, rankOrderType: 1 }]); } else if (!rankType && (!currentItem.ladders || currentItem.ladders.length == 0)) { form.setFieldValue("ladders", [{ lower: 0, money: 0, key: 0, rankOrderType: 1 }]); } return ( ); }} ); } else if (caculateType == 2 || caculateType == 4) { return ( <> ); } else if (caculateType == 3 || caculateType == 5) { return ( <> ); } return null; }} prevValues.ladderParams !== currentValues.ladderParams} > {({ getFieldValue }) => { const ladderParams = getFieldValue("ladderParams"); const calMethod = getFieldValue("calMethod"); if (ladderParams && ladderParams.length > 0 && (calMethod == 3 || calMethod == 5)) { console.log("ladderParams", ladderParams); if (ladderParams.length > 1) { setIsPercent(2); } else if (ladderParams[0].targetValue) { setIsPercent(2); } else if (ladderParams[0].dataType === 2) { setIsPercent(2); } else if (ladderParams[0].dataType === 1 || ladderParams[0].dataType === 3) { console.log("hasvdhjasvhdj"); setIsPercent(1); } } return null; }} prevValues.calMethod !== currentValues.calMethod} > {({ getFieldValue }) => { const caculateType = getFieldValue("calMethod"); // console.log(caculateType, currentItem); //阶梯(总) if (caculateType == 3 || caculateType == 5) { if (caculateType == 3 && (!currentItem.ladders || currentItem.ladders.length == 0)) { form.setFieldValue("ladders", [{ lower: 0, money: 0, key: 0 }]); } else if (caculateType == 5 && (!currentItem.ladders || currentItem.ladders.length == 0)) { form.setFieldValue("ladders", [{ lower: 0, money: 0, capMoney: 0, key: 0 }]); } return ( <> ); } return null; }}
); }