1.0.14 • Published 3 years ago

bl-select v1.0.14

Weekly downloads
7
License
MIT
Repository
-
Last release
3 years ago

bl-select

示例图片

基于element UI下el-select的拼音检索

需要装 elementUI

安装

npm i bl-select

使用

在main.js加

import BlSelect from 'bl-select'
Vue.use(BlSelect)

使用的地方
template部分

<bl-select
    v-model="value"
    :options="options"
    :props="{label:'label', value:'value'}"
/>

js部分

data(){
      return {
        value: '',
        options: [
          {
            label: '张三',
            value: 1
          },
          {
            label: '李四',
            value: 2
          }
        ]
      }
    }

属性Props

属性类型默认值说明
multipleBooleanfalse是否多选,默认单选
filterableBooleantrue是否支持检索,默认true,无需配置。功能已经实现
clearableBooleanfalse是否可清空 同el-select
disabledBooleanfalse是否禁用bl-select
fieldDisabledStringoption禁用字段
optionsArray-列表数据
rowBooleanfalse是否选中option(设置该值后,change方法会打印一个包含options(列表数据)的某一项)
propsObject-label和value的配置 见下表
allBooleanfalse是否显示全选(multiple为true的前提下)
all-textString全选全选文本(默认是全选)

props(label、value配置)

属性
label设置label
value设置的value

方法

方法名说明
change返回 value的值。如果设置了row 则返回一个对象
select-all全选事件
on-option单选情况下:获取当前选择数据的完整信息

全选方法实现

html

<bl-select
  v-model="value"
  clearable
  multiple
  collapse-tags
  all
  :all-text="allText"
  :options="options"
  :props="{
    value: 'value',
    label: 'label'
  }"
  @change="change"
  @select-all="selectAll"
  @remove-tag="removeTag"
/>
{{ value }}

js

export default {
  name: 'App',
  components: {},
  data() {
    return {
      value: '',
      options: [{
        value: '1',
        label: '黄金糕'
      }, {
        value: '2',
        label: '双皮奶'
      }, {
        value: '3',
        label: '北京糖葫芦'
      }, {
        value: '4',
        label: '蚵仔煎'
      }, {
        value: '5',
        label: '龙须面'
      }, {
        value: '6',
        label: '北京烤鸭'
      }],
      allText: '全选'
    }
  },
  methods: {
    selectAll() {
      if (this.value.length < this.options.length) {
        this.value = []
        this.options.forEach(item => {
          this.value.push(item.value)
        })
        this.value.unshift(this.allText)
      }
    },
    change(val) {
      if (!val.includes(this.allText) && this.value.length === this.options.length) {
        this.value.unshift(this.allText)
      } else if (val.includes(this.allText) && val.length - 1 < this.options.length) {
        this.value = this.value.filter(item => item !== this.allText)
      }
    },
    removeTag(val) {
      if (val === this.allText) {
        this.value = []
      }
    }
  }
}
1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

0.1.0

4 years ago