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

简介: 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函数作为对象返回,以便在模板中访问。

相关文章
|
2天前
|
JavaScript 前端开发
【vue】iview如何把input输入框和点击输入框之后的边框去掉
【vue】iview如何把input输入框和点击输入框之后的边框去掉
8 0
|
1天前
|
监控 JavaScript
Vue中的数据变化监控与响应——深入理解Watchers
Vue中的数据变化监控与响应——深入理解Watchers
|
1天前
|
JavaScript 安全 前端开发
Vue 项目中的权限管理:让页面也学会说“你无权访问!
Vue 项目中的权限管理:让页面也学会说“你无权访问!
10 3
|
1天前
|
JavaScript 前端开发 开发者
Vue的神奇解锁:冒险的开始
Vue的神奇解锁:冒险的开始
5 1
|
4天前
|
资源调度 JavaScript 前端开发
Vue的路由管理:VueRouter的配置和使用
【4月更文挑战第24天】VueRouter是Vue.js的官方路由管理器,用于在单页面应用中管理URL路径与组件的映射。通过安装并引入VueRouter,设置路由规则和创建router实例,可以实现不同路径下显示不同组件。主要组件包括:`&lt;router-link&gt;`用于创建导航链接,`&lt;router-view&gt;`负责渲染当前路由对应的组件。此外,VueRouter还支持编程式导航和各种高级特性,如嵌套路由、路由参数和守卫,以应对复杂路由场景。
|
2天前
|
JavaScript
【vue实战】父子组件互相传值
【vue实战】父子组件互相传值
9 1
|
2天前
|
JavaScript
vue2_引入Ant design vue
vue2_引入Ant design vue
8 0
|
3天前
|
JavaScript
vue知识点
vue知识点
13 4
|
3天前
|
存储 JavaScript 前端开发
【Vue】绝了!这生命周期流程真...
【Vue】绝了!这生命周期流程真...
|
3天前
|
JavaScript 索引
【vue】框架搭建
【vue】框架搭建
7 1