FormYaml.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <div>
  3. <a-tabs v-model="activeTab" @change="tabChange">
  4. <a-tab-pane :tab="$t('helm.text_19')" key="form" />
  5. <a-tab-pane :tab="$t('helm.text_20')" key="yaml" />
  6. </a-tabs>
  7. <labels-complete
  8. v-if="activeTab === 'form'"
  9. ref="labelRef"
  10. :decorators="decorators.config"
  11. :title="$t('helm.text_21')"
  12. :keyLabel="$t('helm.text_22')"
  13. :localData="localData"
  14. :valueSearch="valueSearch"
  15. :keyAutoCompleteProps="keyAutoCompleteProps" />
  16. <a-form-item>
  17. <code-mirror v-if="activeTab === 'yaml'" v-decorator="decorators.yaml" :options="cmOptions" />
  18. </a-form-item>
  19. </div>
  20. </template>
  21. <script>
  22. import LabelsComplete from '@Helm/sections/LabelsComplete'
  23. export default {
  24. name: 'K8sChartFormYaml',
  25. components: {
  26. LabelsComplete,
  27. },
  28. props: {
  29. decorators: {
  30. type: Object,
  31. validator: val => val.config && val.yaml,
  32. required: true,
  33. },
  34. localData: {
  35. type: Object,
  36. default: () => ({}),
  37. },
  38. valueSearch: {
  39. type: Function,
  40. },
  41. },
  42. data () {
  43. return {
  44. activeTab: 'form',
  45. cmOptions: {
  46. tabSize: 2,
  47. styleActiveLine: true,
  48. lineNumbers: true,
  49. line: true,
  50. mode: 'text/x-yaml',
  51. theme: 'material',
  52. },
  53. keyAutoCompleteProps: {
  54. placeholder: this.$t('helm.text_23'),
  55. },
  56. }
  57. },
  58. methods: {
  59. tabChange (val) {
  60. this.$emit('update:activeTab', val)
  61. },
  62. },
  63. }
  64. </script>