normalSelect.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <template>
  2. <el-select
  3. id="normalSelect"
  4. ref="test"
  5. v-model="selected"
  6. filterable
  7. :multiple="field.field_options.custom_class === 'multiple'"
  8. :disabled="field.disabled"
  9. placeholder="请选择"
  10. >
  11. <el-option
  12. v-for="item in options"
  13. :key="item.val"
  14. :label="item.label"
  15. :value="item.val"
  16. ></el-option>
  17. </el-select>
  18. </template>
  19. <script>
  20. export default {
  21. props: {
  22. formData: {
  23. type: Object,
  24. default: {}
  25. },
  26. field: {
  27. type: Object,
  28. default: {}
  29. },
  30. value: {
  31. type: String,
  32. default: ''
  33. }
  34. },
  35. watch: {
  36. selected(v) {
  37. this.$emit('change-data', this.field.field_options.component_name, v)
  38. }
  39. },
  40. data() {
  41. return {
  42. options: [],
  43. selected: this.field.field_options.custom_class === 'multiple' ? [] : ''
  44. }
  45. }
  46. }
  47. </script>