EnumSelectWidget.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <div class="form-group">
  3. <div>
  4. <select
  5. v-model="selectedValue"
  6. class="form-control"
  7. >
  8. <option
  9. v-for="keyValue in keyValues"
  10. :key="keyValue.keyStr"
  11. :value="keyValue.keyStr"
  12. >
  13. {{ keyValue.value }}
  14. </option>
  15. </select>
  16. </div>
  17. </div>
  18. </template>
  19. <script>
  20. export default {
  21. props: {
  22. 'keyValues':{
  23. type: Array,
  24. default: function(){
  25. return [];
  26. },
  27. },
  28. 'enumValue':{
  29. type: String,
  30. default: '',
  31. },
  32. },
  33. emits: ['valueChanged'],
  34. data: function () {
  35. return {
  36. selectedValue: (this.enumValue == undefined ? '' : this.enumValue),
  37. };
  38. },
  39. watch: {
  40. selectedValue: function (curVal, oldVal) {
  41. console.log('Enum Selected Value changed:' + curVal);
  42. if (curVal != oldVal) {
  43. this.$emit('valueChanged', curVal);
  44. }
  45. },
  46. enumValue: function (val) {
  47. this.selectedValue = val;
  48. },
  49. },
  50. };
  51. </script>
  52. <style scoped>
  53. .required-mark {
  54. color: red;
  55. margin-right: 10px;
  56. }
  57. </style>