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

这篇具有很好参考价值的文章主要介绍了elementui动态表单实现计算属性携带参数,并将计算出的值四舍五入保留两位小数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


前言

写项目的时候,遇到需要在动态表单中,将同一级输入框输入的内容计算出来,并动态显示,发现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 / 1
        this.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/1
        this.list[index].C = this.js(val3)
        return this.list[index].C
    }
  }
}

结论

个人感觉还是第一种用的爽文章来源地址https://www.toymoban.com/news/detail-625337.html

到了这里,关于elementui动态表单实现计算属性携带参数,并将计算出的值四舍五入保留两位小数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elementUI 动态校验表单数据的方法

    直接设置如下 list 为动态获取的数据值列表数据 这里主要设置两块内容 prop为动态数据 rules设置需要校验的值 :prop=“ list.${index}.title ” :rules=“rules.title” //title 名称可自己定义

    2024年02月21日
    浏览(39)
  • 解决ElementUI动态表单校验验证不通过

    这里记录一下,写项目时遇到的一个问题:就是动态渲染的表单项,加验证规则后一直不通过!!! html部分:  js部分: 结果:   可以看到,按照官网的写法动态渲染的表单项是无法进行校验验证的。这里就是无论选中没选中值都校验 不通过。 修改prop、rules 结果:

    2024年02月12日
    浏览(40)
  • Postman+Java springboot演示 get post put delete请求并携带(路径 路径问号后 json 表单)参数形式

    我们先创建一个java的springboot工程 在项目中 找到启动类的位置目录 在项目创建一个类 叫 user 我是想将 user 当做一个属性类的 按规范来讲 我们可以创建一个entity包 然后在下面去创建属性类 但这里 我们不想搞那么麻烦了 毕竟只是练习一下 然后 user参考代码如下 这里 只是定

    2024年02月06日
    浏览(50)
  • vue2:elementUI中Form 表单在特定情况下做动态rules添加删除

    先看需求: (不想看的直接拉到最后)  【需求说明】 6、如状态为上架时,库存为必填,下架状态时,库存为可填,前面无星号 实现方法:使用this.$set()和this.$delete() 上代码: 由于设计商业隐私,代码只上传一部分:   表单data中原来的rules: 不添加上下架状态的rules 在

    2023年04月08日
    浏览(41)
  • ElementUI实现增删改功能以及表单验证

    目录 前言 BookList.vue action.js 展示效果 本篇还是在之前的基础上,继续完善功能。上一篇完成了数据表格的查询,这一篇完善增删改,以及表单验证。    

    2024年02月07日
    浏览(44)
  • ElementUI的Form表单使用slot-scope=“scope“获取当前表格行数据实现数据回显、修改表单操作

    在写项目时,老师通过向后端发请求获得表格原来的数据来填充修改表单里的数据。 这是表格: 这是点击修改按钮后显示出来的修改表单: 但本地里都已经有这些数据了,就没必要再发一次请求,徒增服务器压力。 准备 可是该怎么获得当前行的数据填充上去呢?答案在

    2023年04月23日
    浏览(49)
  • java通过httpclient携带请求头参数获取第三方文件流接口并实现实现文件下载

    创建httpclient 请求,并在header携带指定key,也可根据实际需要携带token等信息。获取第三方接口返回的文件输入流并写到本地response中,实现返回文件流,前端通过js的a标签进行下载。 代码如下: 前端js代码

    2024年02月16日
    浏览(51)
  • Vue入门三(表单控制|购物车案例|v-model进阶|与后端交互|计算属性|监听属性|Vue生命周期)

    v-model双向数据绑定,还可以对输入框数据进行一定的限定。 v-modle 释义 lazy 等待input框的数据绑定时区焦点之后再变化 number 以数字开头并只保留后面的数字,不保留字母;字母开头都保留 trim 去除首位的空格 与后端交互统一使用json编码格式 与后端交互涉及到跨域问题后,

    2024年01月21日
    浏览(52)
  • 微信小程序内页跳转登录,登录完成后携带参数重新回到之前页面实现方法

    第一步:在app.js或utils.js中添加以下两个方法: 第二步:在跳转到登录页面跳转前调用setCallbackUrl方法(获当前页面的路径和参数存本地),登录页面登录成功后调用getCallBackUrl方法(提取之前存的路径和参数返回),如果没有就在catch中执行登录后的正常逻辑,比如跳转到默

    2024年02月02日
    浏览(65)
  • el-upload实现自定义携带参数上传文件( :http-request 方式)

    1. el-upload组件 使用 :http-request 自定义上传方法,action仍然要有,随便起个名字即可, 注意使用 :http-request 之后, :on-success, :on-error 指令是不会触发的 自定义上传 函数为  uploadFile 2. 封装上传方法(定义传输请求头,传输格式) 在main.js中将封装好的方法加入全局,后面可直接

    2024年02月11日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包