OperatorSelect.vue 942 Bytes
<template>
  <el-select
    :clearable="clearable"
    :disabled="disabled"
    filterable
    :value="value"
    @change="changeHandle"
  >
    <el-option
      v-for="(item, index) in optionsList"
      :key="index"
      :value="item.id"
      :label="item.operateName"
    ></el-option>
  </el-select>
</template>

<script>
import operatorMixin from './mixin.js';

export default {
  name: 'operator-select',
  props: {
    size: {
      type: String,
      default: '',
    },
    value: {
      type: Number,
      default: null,
    },
    disabled: Boolean,
    clearable: {
      type:Boolean,
      default: true,
    },
  },

  computed: {
    optionsList() {
      return this[`operatorOptionList${this.accessType}`];
    },
  },
  mixins: [operatorMixin],
  methods: {
    changeHandle(val) {
      if (!val) {
        this.$emit('input', null);
      } else {
        this.$emit('input', val);
      }
    },
  },
};
</script>