elementui el-input输入框金额显示 千分符与输入框 金额输入框 表格或列表中的金额输入框

这篇具有很好参考价值的文章主要介绍了elementui el-input输入框金额显示 千分符与输入框 金额输入框 表格或列表中的金额输入框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、实现思路

当用户不对输入框进行任何处理时,将数值转成千分符形式,例如 12,345.67 格式,在用户点击金额进行输入修改操作的时候,显示的数值形式12345.67,并且用户在输入过程中禁止输入中文、英文、特殊符号、英文逗号等,只能输入数字、一位小数点、小数点后2位;修改输入框内容时,更新表格合计值。

2、截图效果

input金额输入框,vue开发学习,elementUi,js,elementui,javascript,前端input金额输入框,vue开发学习,elementUi,js,elementui,javascript,前端文章来源地址https://www.toymoban.com/news/detail-698722.html

3、实现代码

<el-table ref="table" border :data="tableData" v-loading="loading" max-height="300" show-summary :summary-method="getSummaries">
      <el-table-column type="index" align="center" label="序号" width="50"></el-table-column>
      <el-table-column align="center" label="数值" width="130" label-class-name="header-require">
        <template slot-scope="scope">
          <span class="el-input--mini" v-show="tableCurrent !== scope.$index" @click="showInput(scope.$index)">
            <span class="el-input__inner">{{toFormatMoney(scope.row.value) || '0.00'}}</span>
          </span>
          <el-input
            v-show="tableCurrent === scope.$index"
            :ref="`valueRef_${scope.$index}`"
            v-model="scope.row.value"
            clearable
            size="mini"
            onkeyup="this.value=this.value.replace(/\D*(\d*)(\.?)(\d{0,2})\d*/,'$1$2$3').replace(/^0+(\d)/, '$1').match(/^\d*(\.?\d{0,2})/g)[0] || ''"
            @input="(value) => inputHandle(value, scope.row)"
            @blur="blurHandle($event, scope.row)"
          />
        </template>
      </el-table-column>
    </el-table>
<script>
export default {
  name: 'useApplyListBottomTable',
  components: {ImportExcel, AssetTypeDialog},
  mixins: [mixins],
  data() {
    return {
      tableCurrent: null,
      tableData: []
    }
  },
  methods: {
    /** 显示输入框 */
    showInput(index) {
      this.tableCurrent = index
      this.$nextTick(()=>{
        this.$refs[`valueRef_${index}`].focus()
      })
      
    },
    /** 校验内容 */
    validateAssetValue(value) {
      let val = value?.replace(/,/g, "")
      let valueNum = Number(val)
      return value && isNaN(valueNum) ? 0 : val
    },
    /** 输入框 */
    inputHandle(value, row) {
      row.value = this.validateAssetValue(value)
    },
    /** 失去焦点 */
    blurHandle(event, row) {
      const value = event.target.value
      row.value = this.validateAssetValue(value)
      this.tableCurrent = null
    },
    /** 在组件中使用千分符 */
    toFormatMoney(value) {
      // 网上有很多教程,自行查阅
    },
    /** 计算合计 */
    getSummaries(param) {
      const {columns, data} = param;
      // console.log('columns', columns, 'data', data);
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          let total = 0
          data.forEach(item => {
            total += Number(item.value)
          })
          const formatTotal = this.sums == 0 ? '0' : this.toFormatMoney(this.sums)
          sums[index] = `合计: ${formatTotal}`
        } else {
          sums[index] = ''
        }
      });
      return sums;
    },
  }
}
</script>

到了这里,关于elementui el-input输入框金额显示 千分符与输入框 金额输入框 表格或列表中的金额输入框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 限制 el-input 输入 emoji

    快捷键 win+; 或 win+.

    2024年02月12日
    浏览(50)
  • el-input校验,只能输入正整数

    一、表单校验方式:  二、el-input的type设置为number,然后去掉上下箭头  

    2024年02月14日
    浏览(48)
  • el-input限制输入整数等分析

    input 限制输入在平时的需求比较常见,例如限制输入非数字,限制输入整数,限制输入的小数位数等等。这里分析下各种实现方式。 使用 type 属性为 number :将 el-input 的 type 属性设置为 number ,这将限制用户只能输入数字。然而,这种方式仍然允许输入小数。如果你希望只接

    2024年02月05日
    浏览(51)
  • vue前端el-input输入 限制输入位数以及输入规则

    前端兼容el-input输入时,仅允许输入负号、数字以及小数点,且限制整数位数以及小数位数,且不允许输入除第一个负号以外的其他符号 1、使用element-ui插件的el-input组件作为页面元素,为其绑定input事件(我这里是在表格里使用slot插入的inpu元素,所以传入参数使用scope传入)

    2024年02月09日
    浏览(40)
  • el-input实现宽度跟随输入内容自适应

    用了很多次el-input输入框,但是没有对这一个实现方式做深一步的思考,这次就把自己整理的方式记录下来; 如果默认直接使用,这里的input输入框的宽度是width:100%。继承它的父级的宽度。 思路1: 1.首先我们可以获取输入内容的宽度,然后给定一个span标签,使其的宽度撑

    2024年02月13日
    浏览(49)
  • el-input输入内容类型为大于0的数字

    2024年02月07日
    浏览(47)
  • 前端实现输入框实时搜索,【vue+el-input】

    一般搜索都是调后端的接口,绑searchValue字段(也有可能叫其他的字段名),通过后端的接口进行实时搜索 如果由前端自己实现搜索过滤的话也简单 1、input事件 2、绑数据源的时候,根据条件判断用过滤数组还是原数组 3、data中定义数据 4、先获取原数组的数据 5、输入框in

    2024年02月09日
    浏览(47)
  • 控制el-input只输入数字的几种方式

    一、 v-model.number 指令修饰符 使用v-model.number可以将输入的数据转换为Number类型。但是本质上还是String类型 有三个问题: 1.键盘先输入数字时没有问题,数字后面不会有字符 2.如果先输入的是字符再输入数字则是拼接效果,字符不会被排除且可以输入中文,如: ab123 3.以上两

    2024年02月13日
    浏览(71)
  • el-input输入校验不能为空格,不能输入全部为空的内容

    输入框的校验太常见了,基本上常见的为:不能为空,不能输入空格,和不能输入全部为空的内容。这里对这个进行记录。 针对三种情况进行分别展示: 不能输入全部空格,主要是这里起作用:   还有不能输入空格:v-model后面加上trim 以上是记录。  

    2024年02月11日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包