React Ant Design 使用trigger方式弹框

调用弹框

<TransferOfDebtForm
                  onCancel={() => {}}
                  onSubmit={() => {
                    ref.current?.reload()
                  }}
                  id={record.id}
                  notRepaidAmount={record.notRepaidAmount}
                />

ModalFom 

import React, { useEffect, useRef, useState } from 'react'
import useStores from '../../store'
import { Button, message, Tooltip } from 'antd'
import type { ProFormInstance } from '@ant-design/pro-form'
import { ModalForm } from '@ant-design/pro-form'
import { useIntl } from 'umi'
import ProCard from '@ant-design/pro-card'
import { observer } from 'mobx-react'
import {
  dateToADDate,
  MliFormDatePicker,
  MliFormDigit,
  MliFormRow,
  MliFormSelect,
  useLookups
} from '@mli/app-common'

export type UpdateFormProps = {
  onCancel: () => void
  onSubmit: () => void
  id: string
  notRepaidAmount: number
}
const TransferOfDebtForm: React.FC<UpdateFormProps> = (props) => {
  const { formatMessage } = useIntl()
  const momentTW = require('moment-taiwan')
  const moduleName = 'agentDebtRecordEntity'
  const stores = useStores()
  const formRef = useRef<ProFormInstance>()
  const [visible, setVisible] = useState<boolean>(false)
  const { formatLookups } = useLookups(['CMS_TypeofCreditorright'])

  useEffect(() => {
    if (props.notRepaidAmount && visible) {
      formRef.current?.setFieldsValue({ debtTotBadAmt: Math.abs(props.notRepaidAmount) })
    }
  }, [visible])
  //債權移轉確認
  return (
    <ModalForm
      grid
      labelWrap
      title={formatMessage({ id: 'agentDebtRecordEntity.TransferOfDebtForm.title' })}
      width="840px"
      formRef={formRef}
      visible={visible}
      trigger={
        <Tooltip
          key="transferOfDebt"
          title={formatMessage({
            id: 'agentDebtRecordEntity.button.transferOfDebt'
          })}
        >
          <Button type="link">
            <i className="iconfont icon-confirmation-claims" />
          </Button>
        </Tooltip>
      }
      onVisibleChange={async (open: boolean) => {
        if (open !== visible) {
          setVisible(open)
          formRef.current?.resetFields()
        }
      }}
      modalProps={{
        onCancel: () => {
          setVisible(false)
        }
      }}
      onFinish={async () => {
        const formData = formRef.current?.getFieldsValue()
        const body = {
          data: [props.id],
          debtCategoryDate: dateToADDate(formData.debtCategoryDate, formatMessage),
          debtCategoryCode: formData.debtCategoryCode
        }
        const result = await stores.batchTransferOfDebt(body)

        if (result) {
          message.success(formatMessage({ id: 'common.message.success' }))
          props.onSubmit()
          setVisible(false)
        }
      }}
    >
      <ProCard>
        <MliFormRow style={{ position: 'relative', marginRight: 0 }}>
          {/* 債權轉移日期  */}
          <MliFormDatePicker
            moduleName="agentDebtRecordEntity.TransferOfDebtForm"
            columnName="debtCategoryDate"
            required
            initialValue={momentTW().startOf('month').subtract(1, 'days')}
          />
          {/* 債權分類 */}
          <MliFormSelect
            moduleName={moduleName}
            columnName="debtCategoryCode"
            required
            options={formatLookups.CMS_TypeofCreditorright?.filter((s) =>
              ['4', '5'].includes(s.value)
            )}
          />
          {/*轉銷呆賬金額*/}
          <MliFormDigit
            moduleName="agentDebtRecordEntity"
            columnName="debtTotBadAmt"
            required
            disabled={true}
            fieldProps={{
              formatter: (value) => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ','),
              parser: (value) => value!.replace(/\$\s?|(,*)/g, '')
            }}
          />
        </MliFormRow>
      </ProCard>
    </ModalForm>
  )
}
export default observer(TransferOfDebtForm)

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值