index.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <div>
  3. <a-form-item>
  4. <a-switch :checkedChildren="$t('compute.text_115')" :unCheckedChildren="$t('compute.text_116')" v-decorator="decorator.kickstart_enabled" :disabled="enableDisabled" />
  5. </a-form-item>
  6. <a-form-item v-if="form.fd.kickstart_enabled" :extra="$t('compute.kickstart_placeholder')">
  7. <code-mirror v-if="form.fd.kickstart_enabled" v-decorator="decorator.kickstart_config" :options="cmOptions" />
  8. </a-form-item>
  9. </div>
  10. </template>
  11. <script>
  12. import 'codemirror/theme/material.css'
  13. import 'codemirror/addon/edit/matchbrackets'
  14. export default {
  15. name: 'Kickstart',
  16. props: {
  17. decorator: {
  18. type: Object,
  19. required: true,
  20. },
  21. form: {
  22. type: Object,
  23. required: true,
  24. },
  25. },
  26. data () {
  27. return {
  28. cmOptions: {
  29. tabSize: 2,
  30. styleActiveLine: true,
  31. lineNumbers: true,
  32. line: true,
  33. theme: 'material',
  34. mode: 'application/json',
  35. lint: true,
  36. matchBrackets: true,
  37. },
  38. }
  39. },
  40. computed: {
  41. enableDisabled () {
  42. const { os_distribution = '' } = this.form.fi?.imageMsg?.properties || this.form.fi?.imageMsg?.info?.properties || {}
  43. return !['centos', 'rhel', 'openeuler', 'ubuntu'].some(item => os_distribution.toLowerCase().includes(item))
  44. },
  45. },
  46. watch: {
  47. enableDisabled: {
  48. handler (val, oldVal) {
  49. if (val) {
  50. this.form.fc.setFieldsValue({
  51. [this.decorator.kickstart_enabled[0]]: false,
  52. })
  53. }
  54. },
  55. },
  56. },
  57. }
  58. </script>
  59. <style scoped>
  60. </style>