import { Button, message, Modal } from 'antd'; import { inject, observer } from 'mobx-react'; import React, { useEffect, useState } from 'react'; import { lwjTable } from 'src/utils/quote'; import { columns, CouponsTypeTitle } from './info'; interface IProps { value?: { id: string; row: any; detail: any }; onChange?: (value: { id: string; row: any; detail: any }) => void; coupons: any; } const ChooseCoupon: React.FC = inject('coupons')( observer((props) => { const [visible, setVisible] = useState(false); const [tp, setTp] = useState(false); const open = async () => { const [tp] = lwjTable({ entityName: 'coupon-list-in-use', defaultSelectedRowKeys: [props.value], rowSelectionType: 'radio', extraQueryParams: { flag: 2, }, }); setTp(tp); setVisible(true); }; const close = () => { tp.getQueryPresenter()?.reset() setVisible(false); }; useEffect(() => { tp?.setColumns?.(columns); }, [tp]); const submit = async () => { const { selectedRowKeys, selectedRows } = tp?.getSelection(); if (!selectedRowKeys || selectedRowKeys.length === 0) { message.warn('请选择优惠券') return } const detail = await props.coupons.getCouponsDetail(selectedRowKeys[0]); props.onChange?.({ id: selectedRowKeys[0], row: selectedRows[0], detail: detail, }); close(); }; const getUnit = () => { let unit = ''; switch (props.value?.detail?.discountType) { case 1: unit = '折'; default: unit = '元'; } return unit }; const Table = tp ? tp.getComponent() : () => <>; return ( <> {props.value?.row && ( <>

名称:{props.value?.detail?.name}

编码:{props.value?.detail?.couponCode}

类型:{CouponsTypeTitle[props.value?.detail?.discountType]}

优惠:{props.value?.detail?.faceValue}{getUnit()}

描述:{props.value?.detail?.discountMsg}

)} ); }), ); export default ChooseCoupon;