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

elementui动态表单实现计算属性携带参数,并将计算出的值四舍五入保留两位小数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 方法1
  • 方法2
  • 结论


前言

写项目的时候,遇到需要在动态表单中,将同一级输入框输入的内容计算出来,并动态显示,发现computer计算属性好像不能带参数,最后查了好多文档才解决,看下面简单案例


方法1

vue中computed计算属性无法直接进行传参,如果有传参数的需求可以使用闭包函数(也叫匿名函数)实现。例如计算出每一组A输入框中的值+B输入框中的值并动态显示在C输入框中

<template><div id="app"><el-form ref="form" :model="form" label-width="80px"><div class="box" v-for="(item,index) in list" :key="index"><el-form-item label="A"><el-input v-model="item.A"></el-input></el-form-item><el-form-item label="B"><el-input v-model="item.B"></el-input></el-form-item><el-form-item label="C"><el-input :value="ab(index,item.A,item.B)"></el-input></el-form-item></div></el-form></div>
</template><script>
export default {computed: {ab() {return function (index, val1, val2) {// 除以1,是为了强制转换成number类型let val3 = val1 / 1 + val2 / 1this.list[index].C = this.js(val3)return this.list[index].C}}},data() {return {list: [{A: null,B: null,C: null},{A: null,B: null,C: null}]}},methods: {// 四舍五入保留两位小数js(val) {return (Math.round(val * 100) / 100).toFixed(2)}}
}
</script>

方法2

也可以直接写成methods里的方法,但是不推荐使用methods(没有缓存),具体为啥可以看看vue官网method和computed的区别

<template><div id="app"><el-form ref="form" :model="form" label-width="80px"><div class="box" v-for="(item,index) in list" :key="index"><el-form-item label="A"><el-input v-model="item.A" @change="ab(index)"></el-input></el-form-item><el-form-item label="B"><el-input v-model="item.B" @change="ab(index)"></el-input></el-form-item><el-form-item label="C"><el-input :value="item.C"></el-input></el-form-item></div></el-form></div>
</template><script>
export default {data() {return {list: [{A: null,B: null,C: null},{A: null,B: null,C: null}]}},methods: {// 四舍五入保留两位小数js(val) {return (Math.round(val * 100) / 100).toFixed(2)},ab(index){let val3 = this.list[index].A/1 + this.list[index].B/1this.list[index].C = this.js(val3)return this.list[index].C}}
}

结论

个人感觉还是第一种用的爽

http://www.lryc.cn/news/116000.html

相关文章:

  • 嵌入式面试5 -makefile shell
  • 获40余家主机厂青睐,这家OTA「吸金王」完成超亿元B2轮融资!
  • CGI, FastCGI, WSGI, uWSGI, uwsgi分别是什么?
  • Android T 窗口层级相关的类(更新中)
  • 【云原生】深入掌握k8s中Pod和生命周期
  • openKylin+KingbaseES+Nginx安装
  • lc1.两数之和
  • c# 初始化列表,并给列表里面所有的元素进行初始化
  • Java笔记(三十):MySQL(上)-- 数据库、MySQL常用数据类型、DDL、DML、多表设计
  • SQL笔记-正态分布函数(二)
  • 【LeetCode】数据结构题解(12)[用栈实现队列]
  • 嵌入式Linux下LVGL的移植与配置
  • leetcode每日一练-第70题-爬楼梯
  • 设备使用RTMP推流到安防监控EasyCVR视频汇聚平台,为何只有FLV格式无法播放?
  • arcgis宗地或者地块四至权利人信息提取教程
  • 乐鑫首创|使用 ESP RainMaker® 私有云定制 Matter 生态
  • 【算法|数组】快慢指针
  • C++字符串:使用 std::string
  • 目前Java后端就业前景怎么样?
  • C语言基础(持续更新)
  • 从源码层面深度剖析Spring循环依赖 | 京东云技术团队
  • Distance 2023牛客暑期多校训练营6 B
  • 【Pandas】学习笔记之groupby()、agg()、transform()
  • 使用正则表达式 移除 HTML 标签后得到字符串
  • Java中String方法魔性学习
  • Smartbi 权限绕过漏洞复现(QVD-2023-17461)
  • springboot自定义错误消息
  • 微信小程序申请步骤
  • 嘉楠勘智k230开发板上手记录(四)--HHB神经网络模型部署工具
  • 微信小程序的自定义TabBar及Vant的使用