ChangeConfig.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <base-dialog @cancel="cancelDialog">
  3. <div slot="header">{{$t('compute.text_1100')}}</div>
  4. <div slot="body">
  5. <a-form-model
  6. :model="form"
  7. :rules="rules"
  8. ref="form"
  9. v-bind="formItemLayout">
  10. <a-form-model-item :label="$t('network.cdn.ssl_setting')" prop="ssl_setting" :extra="$t(`network.cdn.ssl_setting.${form.ssl_setting}.extra`)">
  11. <a-select v-model="form.ssl_setting">
  12. <a-select-option v-for="item in SSL_SETTINGS" :key="item.key" :value="item.key">
  13. {{ item.label }}
  14. </a-select-option>
  15. </a-select>
  16. </a-form-model-item>
  17. <a-form-model-item :label="$t('network.cdn.https_enabled')" prop="https_enabled" :extra="$t(`network.cdn.https_enabled.extra`)">
  18. <a-switch v-model="form.https_enabled" />
  19. </a-form-model-item>
  20. <a-form-model-item :label="$t('network.cdn.https_rewrites')" prop="https_rewrites">
  21. <a-switch v-model="form.https_rewrites" />
  22. </a-form-model-item>
  23. <a-form-model-item :label="$t('network.cdn.cache_level')" prop="cache_level">
  24. <a-select v-model="form.cache_level">
  25. <a-select-option v-for="item in CACHE_LEVELS" :key="item.key" :value="item.key">
  26. {{ item.label }}
  27. </a-select-option>
  28. </a-select>
  29. </a-form-model-item>
  30. <a-form-model-item :label="$t('network.cdn.browser_cache_ttl')" prop="browser_cache_ttl">
  31. <a-select v-model="form.browser_cache_ttl">
  32. <a-select-option v-for="item in BROWSER_CACHE_TTL" :key="item.key" :value="item.key">
  33. {{ item.label }}
  34. </a-select-option>
  35. </a-select>
  36. </a-form-model-item>
  37. <a-form-model-item :label="$t('network.cdn.dnssec_enabled')" prop="dnssec_enabled">
  38. <a-switch v-model="form.dnssec_enabled" />
  39. </a-form-model-item>
  40. </a-form-model>
  41. </div>
  42. <div slot="footer">
  43. <a-button type="primary" @click="handleConfirm" :loading="loading">{{ $t('dialog.ok') }}</a-button>
  44. <a-button @click="cancelDialog">{{ $t('dialog.cancel') }}</a-button>
  45. </div>
  46. </base-dialog>
  47. </template>
  48. <script>
  49. import DialogMixin from '@/mixins/dialog'
  50. import WindowsMixin from '@/mixins/windows'
  51. import { SSL_SETTINGS, CACHE_LEVELS, BROWSER_CACHE_TTL } from '../constants'
  52. export default {
  53. name: 'CdnDomainChangeConfigDialog',
  54. mixins: [DialogMixin, WindowsMixin],
  55. data () {
  56. const data = this.params.data[0]
  57. return {
  58. loading: false,
  59. SSL_SETTINGS,
  60. BROWSER_CACHE_TTL,
  61. CACHE_LEVELS,
  62. formItemLayout: {
  63. wrapperCol: {
  64. span: 20,
  65. },
  66. labelCol: {
  67. span: 4,
  68. },
  69. },
  70. form: {
  71. ssl_setting: data.ssl_setting,
  72. https_enabled: data.https?.enabled,
  73. https_rewrites: data.https_rewrites,
  74. cache_level: data.cache_level,
  75. browser_cache_ttl: data.browser_cache_ttl,
  76. dnssec_enabled: data.dnssec_enabled,
  77. },
  78. }
  79. },
  80. computed: {
  81. },
  82. methods: {
  83. doUpdate (data) {
  84. return this.params.onManager('performAction', {
  85. id: this.params.data[0].id,
  86. managerArgs: {
  87. action: 'change-config',
  88. data,
  89. },
  90. })
  91. },
  92. genParams () {
  93. const ret = {
  94. ...this.form,
  95. }
  96. return ret
  97. },
  98. async handleConfirm () {
  99. this.loading = true
  100. try {
  101. const values = this.genParams()
  102. await this.doUpdate(values)
  103. this.loading = false
  104. this.cancelDialog()
  105. } catch (error) {
  106. this.loading = false
  107. }
  108. },
  109. },
  110. }
  111. </script>