当前位置: 首页 > article >正文

vue表格合计 计算 保留两位小数

以下是一个基于Vue3的表格合计计算的实例代码,代码中保留了两位小数。

HTML:

<table>
  <thead>
    <tr>
      <th>名称</th>
      <th>数量</th>
      <th>单价</th>
      <th>小计</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="(item, index) in items" :key="index">
      <td>{{ item.name }}</td>
      <td>
        <input type="number" v-model="item.qty" @input="calculateTotal" />
      </td>
      <td>
        <input type="number" v-model="item.price" @input="calculateTotal" />
      </td>
      <td>{{ item.total.toFixed(2) }}</td>
    </tr>
  </tbody>
  <tfoot>
    <tr>
      <td colspan="3" style="text-align: right;">总计:</td>
      <td>{{ grandTotal.toFixed(2) }}</td>
    </tr>
  </tfoot>
</table>

JavaScript:

import { reactive, computed } from 'vue';

export default {
  setup() {
    const items = reactive([
      { name: '物品1', qty: 1, price: 100, total: 0 },
      { name: '物品2', qty: 2, price: 50, total: 0 },
      { name: '物品3', qty: 3, price: 33.33, total: 0 },
    ]);

    const grandTotal = computed(() => {
      let total = 0;
      items.forEach((item) => {
        total += item.total;
      });
      return total;
    });

    function calculateTotal() {
      items.forEach((item) => {
        item.total = item.qty * item.price;
      });
    }

    calculateTotal();

    return { items, grandTotal, calculateTotal };
  },
};

该代码中使用了Vue3的reactive和computed函数,通过对items数组进行响应式管理,在数量和单价发生变化时自动计算并更新小计,再通过computed对所有物品的小计求和得到总计。在计算小计和总计时使用了toFixed方法保留两位小数。最后,将items、grandTotal和calculateTotal函数作为对象返回,以便在模板中访问。


http://www.kler.cn/a/159174.html

相关文章:

  • Spring Boot 启动时修改上下文
  • 【操作系统不挂科】<Linux进程概念(4)>选择题(带答案与解析)
  • 从零开始学习 sg200x 多核开发之 TF 存储卡根文件系统扩容
  • c# Encoding.GetEncoding
  • 深入解析 CentOS 7 上 MySQL 8.0 的最佳实践20241112
  • Spring Boot框架:电商系统的技术革新
  • 大数据:sql,数据挖掘刷题
  • 0X04
  • CETN01 - How to Use Cloud Classroom
  • 网上选课系统源码(Java)
  • 算法--最短路
  • python实现模拟用户点击行为测试
  • 基本网络安全概述:保护您的数字生活
  • 海外服务器和国内服务器有什么样的区别呢
  • 用Python手把手教你WordCloud可视化
  • 二维码智慧门牌管理系统升级:智能化制牌申请管理
  • MQTT框架和使用
  • 面试题--函数指针的五大作用
  • 《Pandas1.x实例精解 》书籍分享
  • Linux多核飞控
  • 利用ElementUI配置商品的规格参数
  • ROS-ROS通信机制-服务通信
  • 前端面试提问(3)
  • nodejs微信小程序+python+PHP本科生优秀作业交流网站的设计与实现-计算机毕业设计推荐
  • HMM(Hidden Markov Model)详解——语音信号处理学习(三)(选修一)
  • OWASP安全练习靶场juice shop-更新中