二次封装el- select,通用字典库查询组件

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

二次封装el- select,通用字典库查询组件

前言

因为字典库统一原因,需要一个组件去根据字典码查询字典,并返回选中值

提示:以下是本篇文章正文内容,下面案例可供参考

一、使用步骤

1.实例代码

代码如下(示例):

//main.js全局引入

//组件引用
<dict-select dictCode="isShow" v-model="classid" ></dict-select>

2.读入数据

代码如下(示例):

<el-select :value="value" :placeholder="placeholder" @change="handleInput" :multiple="multiple">
    <el-option v-for="item in options"  :key="item.value" :label="item.label" :value="item.value">
    </el-option>
  </el-select>



import { 'api地址'} from '@/api/api'

export default {
  name: 'dictSelect',
  props: {
    multiple: {
      type: Boolean,
      default: false,
      //是否多选
    },
    value: [String, Number],
    dictCode: String,
    //传入的字典码
    placeholder:{
      type:String,
      default:'请输入'
    }
  },

  
  data() {
    return {
      options: [],//查询字典库的列表
    }
  },
  watch: {
  //监听字典码如果发生变化则重新调用字典库
    dictCode: {
      immediate: true,
      handler() {
        this.initDictData()
      },
    },
  },
  created() {},
 
  model:{
      prop: 'value',
      event: 'change'
    },
  methods: {
    initDictData() {
      //根据字典Code, 初始化字典数组
      'api接口'(this.dictCode).then((res) => {

        if (res.success) {
          //获取字典列表
          this.options = res.result
        }
      })
    },
    handleInput(e) {
       //选中字典列表抛出选中值changes
        this.$emit('changes', e);
      
      },
   
  },
}
</script>
  
  <style scoped>
</style>

总结

组件全局引入后,直接复制粘贴更换字典码和绑定值,就能直接使用,不用从子组件拿到返回值在赋值,省略很多重复操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值