LevelTypeSelect.vue 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <el-select
  3. v-model="selected"
  4. class="size-select"
  5. placeholder="请选择"
  6. @change="select"
  7. :style="styles"
  8. clearable
  9. >
  10. <el-option
  11. v-for="item in optionList"
  12. :key="item.code"
  13. :label="item.name"
  14. :value="item.code"
  15. >
  16. <span>{{ item.name }}</span>
  17. </el-option>
  18. </el-select>
  19. </template>
  20. <script>
  21. import { LEVEL_TYPE_SELECT } from "@/constants/constants";
  22. export default {
  23. name: "ExamTypeSelect",
  24. props: {
  25. value: {
  26. type: String,
  27. default: ""
  28. },
  29. options: { type: Array, default: () => null },
  30. styles: { type: String }
  31. },
  32. data() {
  33. return {
  34. optionList: this.options || LEVEL_TYPE_SELECT,
  35. selected: ""
  36. };
  37. },
  38. async created() {},
  39. watch: {
  40. value: {
  41. immediate: true,
  42. handler(val) {
  43. this.selected = val;
  44. }
  45. }
  46. },
  47. methods: {
  48. select() {
  49. this.$emit("input", this.selected);
  50. this.$emit("change", this.selected);
  51. }
  52. }
  53. };
  54. </script>
  55. <style></style>