import { useEffect, useState } from "react"; import { Text, View } from "@tarojs/components"; import { Button, Input, Popup, SafeArea } from "@nutui/nutui-react-taro"; import { validatePrice } from "@/utils/format"; import { PurchaseOrderCalculator } from "@/utils/PurchaseOrderCalculator"; export default function TaxSubsidySection(props: { dealerVO: BusinessAPI.DealerVO; purchaseOrderVO: BusinessAPI.PurchaseOrderVO; onChange?: (purchaseOrderVO: BusinessAPI.PurchaseOrderVO) => void; readOnly?: boolean; }) { const { purchaseOrderVO, onChange, readOnly, dealerVO } = props; const calculator = new PurchaseOrderCalculator(purchaseOrderVO); const [visible, setVisible] = useState(false); const [taxSubsidy, setTaxSubsidy] = useState( purchaseOrderVO.orderDealer.taxSubsidy || 0, ); // 当dealerVO变化时,自动计算税费补贴 useEffect(() => { if (!purchaseOrderVO.orderDealer.taxSubsidy) { const defaultValue = calculator.getDefaultTaxSubsidy(); setTaxSubsidy(defaultValue); // 更新父组件的状态 onChange?.({ ...purchaseOrderVO, orderDealer: { ...purchaseOrderVO.orderDealer, taxSubsidy: defaultValue, }, }); } }, []); // 设置税费补贴默认值 const setDefaultTaxSubsidy = () => { const defaultValue = calculator.getDefaultTaxSubsidy(); setTaxSubsidy(defaultValue); }; // 保存税费补贴 const saveTaxSubsidy = () => { onChange?.({ ...purchaseOrderVO, orderDealer: { ...purchaseOrderVO.orderDealer, taxSubsidy, }, }); setVisible(false); }; return ( {/* 卡片形式展示返点信息 */} 返点信息 {!readOnly ? ( setVisible(true)}> 返点金额 {taxSubsidy || "0.00"} ) : ( 返点金额 {taxSubsidy || "0.00"} )} 返点百分比 {dealerVO.companyRebateRatio ? dealerVO.companyRebateRatio + "%" : "未设置"} {/* 税费补贴弹窗 */} setVisible(false)} onOverlayClick={() => { setVisible(false); }} lockScroll > 税费补贴金额 { const numValue = validatePrice(value); if (numValue !== undefined) { setTaxSubsidy(numValue as any); } }} /> 默认值: 市场报价 × {dealerVO.companyRebateRatio || "未设置"}% ); }