本组件二次封装element的el-input,可以在全局安装了Iview的项目或者局部引入了el-input的页面中自由使用。
目录
效果展示
从左到右分别是:属性名、数字段输入框
从上到下分别是:未输入状态和输入数字段状态,输入可清空
功能描述
- 属性名和初始数字段均可由父组件传参到子组件
 - 二次封装组件nToN,详细校验逻辑见组件nToN
 
结构代码
<template>
  <div class="a-ntn">
    <Row>
      <Col flex="110px">
        <span class="c-fix-title wt">{
  { attr_name }}</span>
      </Col>
      <Col flex="auto">
        <nToN @func="setData" :initNum="init_num"></nToN>
      </Col>
    </Row>
    <Divider />
  </div>
</template>
  - init_num:给组件nToN传初始值
 
逻辑代码
components: {
   
    nToN
  },
  data () {
   
    return {
   
      init_num: deepCopy(this.initNum)
    }
  },
  props: {
   
    attr_name: {
   
      type: String,
      default () {
   
        return '属性名'
      }
    },
    attrList: {
   
      type: Array,
      default () {
   
        return []
      }
    },
    initNum: {
   
      type: Object,
      default () {
   
        return {
   
          minNum: '',
          maxNum: ''
        }
      }
    }
  },
  computed: {
   },
  methods: {
   
    setData (data) {
   
      var content = ntnData_handle(data).content
      var range = ntnData_handle(data).range
      this.$emit('getData', content, this.attr_name, range)
    }
  },
  watch: {
   },
  created () {
   
    setTimeout(() => {
   
      this.init_num = deepCopy(this.initNum)
    }, 800)
  }
  - setData :拿到从nToN组件传的值
 
组件应用
<aNtn attr_name="年龄段" :initNum="init_ch_bean" @getData="ntn_get" />
import aNtn from '@/components/attr-check/a-ntn'
components: {
   
    aNtn
}
data () {
   
    return {
   
        init_ch_bean: {
   
          minNum: '',
          maxNum: ''
        }
    }
}
  - import引入——>组件注册——>使用
 - 父——>子传参:attr_name属性名、init_ch_bean初始显示数字段
 
事件钩子
// 拿到输入的数字段
ntn_get (data, attr_name, range) {
   
      var content
      var obj = {
   
        min: '不限',
        max: '不限'
      }
      if (data === '' || data === '不限') {
   
        content = '不限'
      } else {
   
        content = data
        obj = range
      }
      this.previewAttr.some((item) => {
   
        if (item.attr_name === attr_name + ':') {
   
          item.attr_content = content
        }
      })
      switch (attr_name) {
   
        case '年龄段':
          this.groupObj.pfinfo_attr.ch_bean = obj
          break
      }
    }
  - ntn_get :拿到输入的数字段
 
github
完整代码:点击这里

京公网安备 11010502036488号