import React, { useEffect, useState } from "react"; import { Modal, Form, Select, InputNumber, message, Spin, Radio, Input, Button } from "antd"; import { saveRewardsListApi } from "../RewardsList/api"; import { useStore } from "../index"; import { queryPostIndicatorApi, queryShopIndicatorApi } from "@/pages/performance/EvaGroupSetting/EditComfirm/api"; import _ from "lodash"; import useInitail from "@/hooks/useInitail"; import { EvaGroupSetteing } from "@/pages/performance/EvaGroupSetting/interface"; import { TargetType, TargetTypeEnum } from "@/pages/performance/entity"; const Option = Select.Option; interface Props { // visible: boolean; // onCancel: Function; // postId?: number; // shopIds?: string; // onOk: (vales: any) => void; // currentItem: KpiGroupSetteing.Item; // comItem: KpiGroupSetteing.CommissionParams; addComVisible: boolean; onCancel: Function; postId?: number; shopIds?: string; onOk: (vales: any) => void; comItem: Commission; setItemId: Function; scopeType: number; isOne: number; } type Commission = EvaGroupSetteing.CommissionParams; export default function AddCommissionParamsModal(props: Props) { const percent = /^\d\.([1-9]{1,2}|[0-9][1-9])$|^[1-9]\d{0,1}(\.\d{1,2}){0,1}$|^100(\.0{1,2}){0,1}$/; const Momney = /^([1-9]\d*(\.\d{1,2})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/; const [form] = Form.useForm(); const { selectedIndicators, setParamAlias, setSelectedIndicators, stagesLength, multiStage } = useStore(); const [isTarget, setIsTarget] = useState(false); // console.log(form); const { addComVisible, onCancel, postId, shopIds, onOk, comItem, setItemId, scopeType, isOne } = props; // 保存选中绩效指标需要配置的绩效考核目标值类型 const [targetType, setTargetType] = useState(); // 保存选中指标是否考评类型 const [codeType, setCodeType] = useState(); const [dataType, setDataType] = useState(); // 保存过滤后指标列表 const [newIndicators, setNewIndicators] = useState([]); const [indicatorName, setIndicatorName] = useState(""); const [id, setId] = useState(0); const [delay, setDelay] = useState(true); const { data: indicatorsList, setParams, loading } = useInitail(queryPostIndicatorApi, [], {}, delay); useEffect(() => { setParams({ reward: false, withCombination: true }, true); setDelay(false); setTargetType(1); }, [addComVisible]); // 修改 useEffect(() => { if (indicatorsList && indicatorsList.length > 0 && !comItem.code) { const res = indicatorsList.filter((item) => !selectedIndicators.find((y) => y === item.code)); setNewIndicators([...res]); } if (addComVisible && comItem.code) { const indTar = indicatorsList.find((item: any) => item.code == comItem.code)?.targetType; setTargetType(indTar); setIndicatorName(comItem.name); setDataType(comItem.dataType); setCodeType(comItem.codeType); form.setFieldsValue({ ...comItem, commissionParams: { value: comItem.code, label: comItem.name, }, proportion: comItem.proportion !== undefined ? comItem.proportion : isOne == 1 ? 100 : null, }); } if (comItem.targetValue && comItem.targetCalcType) { setIsTarget(true); } if (comItem.extraTargetValue && comItem.extraTargetCalcType) { setIsTarget(true); } }, [indicatorsList]); useEffect(() => { if (targetType === TargetTypeEnum["无"]) { setIsTarget(false); } }, [targetType]); useEffect(() => { setIsTarget(false); }, [id]); // 校验表单数据 function transformDTO(formData: any) { let detail = {}; _.each(formData, (value: any, key: string) => { switch (key) { case "commissionParams": const _options = value || {}; console.log(_options); detail.code = _options.key; detail.name = _options.label[0]; detail.code = _options.value; break; default: detail[key] = value; break; } }); return detail; } function handSubmit(fieldsValue: any) { const pa: any = transformDTO(fieldsValue); pa.targetType = targetType; pa.codeType = codeType; pa.dataType = dataType; console.log("100pa", pa); const newItemId = pa.code; // 编辑时,不需要push id if (!comItem.code) { const tmpIds = [...selectedIndicators]; tmpIds.push(newItemId); } else { pa.code = comItem.code; pa.name = comItem.name; } pa.extraTargetType = pa.targetType; if (comItem.codeType == 1 && multiStage) { if (pa.targetValue) { pa.targetType = targetType; pa.targetCalcType = 3; } else { pa.targetType = 1; } if (pa.extraTargetValue) { pa.extraTargetType = targetType; pa.extraTargetCalcType = 4; } else { pa.extraTargetType = 1; } } onOk(pa); onCancel && onCancel(); } return ( { form.resetFields(); onCancel(); }} onCancel={() => onCancel()} onOk={form.submit} width={1000} >
{(targetType === TargetTypeEnum["百分比"] || targetType === TargetTypeEnum["金额"] || targetType === TargetTypeEnum["数量"]) && (
{isTarget && ( )}
)} {isTarget && ( <>