利用Ant design组件实现票据金额动态显示

        这个功能的需求是这样的,财务要求在打开页面的时候显示总票据金额,然后选择复选框的时候这个票据金额就显示的是被选择的数据的票据金额,如果没有选择任何数据显示的也是总票据的金额。

显示效果如图

 其中数值的显示用到了Ant的这个组件。

 其中的suffix是作为后缀的,显示“元”,precision表示保留几位小数。

<div>
  <Form.Item name="receivableAmount" label="收款金额:">
  <Statistic suffix="元" precision={2}/>
  </Form.Item>
</div>

复选框的代码如下。点击小框框的时候会触发displayAmount()函数。

        rowSelection={{
          onChange: (selectedRowKeys, selectedRows) => {
            settableselectedvalue(selectedRows);
            // console.log('selectedRows',selectedRows);
            displayAmount(selectedRows);
          },
        }}

 displayAmount()函数如下。记得要把参数传进这个函数。

  let displayAmount = (selectedData) => {
    let payAmount = 0;
    let receiveAmount = 0;
    selectedData.forEach(element => {
      payAmount = element?.payAmount + payAmount;
      receiveAmount = element?.receiveAmount + receiveAmount
    });
    // 保留两位小数
    form.setFieldsValue({'paymentAmount':Number(payAmount.toString().match(/^\d+(?:\.\d{0,2})?/)),
                        'receivableAmount':Number(receiveAmount.toString().match(/^\d+(?:\.\d{0,2})?/))})
    // 当没有复选数据时候,就重新显示总金额
    if (selectedData.length == 0) {
      form.setFieldsValue({'paymentAmount':props.Bank_Statement_data.apAmounts,'receivableAmount':props.Bank_Statement_data.arAmounts})
    }
  }

页面初始化的时候,用useEffect()来执行函数。

  useEffect(() => {
    form.setFieldsValue({'paymentAmount':props.Bank_Statement_data.apAmounts,'receivableAmount':props.Bank_Statement_data.arAmounts})
  },[props.Bank_Statement_data])

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值