customSelectorsDictionary.vue 987 Bytes
Newer Older
1
<template>
dcy's avatar
dcy committed
2
  <el-select v-if="options" v-model="selectVal" :placeholder="$t('请选择')">
dcy's avatar
dcy committed
3
    <el-option v-if="allShow"  :label="$t('全部')" :value='-1'></el-option>
4 5
    <el-option
      v-for="item in options"
dcy's avatar
dcy committed
6 7
      :key="item[valueKey]"
      :label="item[labelKey]"
dcy's avatar
dcy committed
8
      :value="parseInt(item[valueKey])">
9 10 11 12 13 14 15 16
    </el-option>
  </el-select>
</template>

<script>
export default {
  name: "customSelectorsDictionary",
  props:{
dcy's avatar
dcy committed
17 18 19 20
    options:{
      type:Array,
      default:()=>[]
    },
dcy's avatar
dcy committed
21
    value:[String , Number],
dcy's avatar
dcy committed
22 23 24 25 26 27 28 29
    labelKey:{
      type:String,
      default:'label'
    },
    valueKey:{
      type:String,
      default: 'value',
    },
dcy's avatar
dcy committed
30 31 32 33
    allShow:{
      type:Boolean,
      default:false
    }
34 35 36 37 38 39
  },
  data(){
    return{
      selectVal:''
    }
  },
dcy's avatar
dcy committed
40 41 42
  mounted() {
    this.selectVal = this.value;
  },
43 44 45
  watch:{
    selectVal(val){
      this.$emit('input',val)
dcy's avatar
dcy committed
46 47 48
    },
    value(val){
      this.selectVal = val;
49 50 51 52 53 54 55
    }
  }
}
</script>

<style scoped lang="scss">
</style>