<!-- 金额输入框 -->
<template>
  <el-input v-bind="$attrs" v-on="currentListeners" ref="refInput"></el-input>
</template>
<script>
export default {
  computed: {
    currentListeners () {
      let _this = this
      return Object.assign({}, this.$listeners, {
        input: function (val) {
          _this.setVal(val)
        }
      })
    }
  },
  methods: {
    // 使input获取焦点
    focus () {
      this.$refs.refInput.focus()
    },
    // 使input失去焦点
    blur () {
      this.$refs.refInput.blur()
    },
    // 选中input中的文字
    select () {
      this.$refs.refInput.select()
    },
    setVal (val) {
      // 金额
      let reg = /^(([1-9][0-9]*(,\d{3})*)|0)(\.\d{1,2})?$/.test(Number(val))
      if (val.indexOf('.') > -1) {
        let arr = val.split('.')[1]
        if (arr.length > 2) {
          return
        }
      }
      if (reg) {
        // 去除前后空格
        val = val.trim()
        this.$emit('input', val)
      }
    }
  }
}
</script>
