BasicSettings.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <script setup lang="ts">
  2. import { inject } from 'vue'
  3. import Draggable from 'vuedraggable'
  4. import { DeleteOutlined, HolderOutlined } from '@ant-design/icons-vue'
  5. import type { Settings } from '@/views/preference/typedef'
  6. const data: Settings = inject('data') as Settings
  7. const errors: Record<string, Record<string, string>> = inject('errors') as Record<string, Record<string, string>>
  8. </script>
  9. <template>
  10. <AForm layout="vertical">
  11. <AFormItem :label="$gettext('HTTP Host')">
  12. <p>{{ data.server.http_host }}</p>
  13. </AFormItem>
  14. <AFormItem :label="$gettext('HTTP Port')">
  15. <p>{{ data.server.http_port }}</p>
  16. </AFormItem>
  17. <AFormItem :label="$gettext('Run Mode')">
  18. <p>{{ data.server.run_mode }}</p>
  19. </AFormItem>
  20. <AFormItem :label="$gettext('Jwt Secret')">
  21. <p>{{ data.server.jwt_secret }}</p>
  22. </AFormItem>
  23. <AFormItem :label="$gettext('Node Secret')">
  24. <p>{{ data.server.node_secret }}</p>
  25. </AFormItem>
  26. <AFormItem :label="$gettext('Terminal Start Command')">
  27. <p>{{ data.server.start_cmd }}</p>
  28. </AFormItem>
  29. <AFormItem :label="$gettext('HTTP Challenge Port')">
  30. <AInputNumber v-model:value="data.server.http_challenge_port" />
  31. </AFormItem>
  32. <AFormItem
  33. :label="$gettext('Github Proxy')"
  34. :validate-status="errors?.server?.github_proxy ? 'error' : ''"
  35. :help="errors?.server?.github_proxy === 'url'
  36. ? $gettext('The url is not valid')
  37. : ''"
  38. >
  39. <AInput
  40. v-model:value="data.server.github_proxy"
  41. :placeholder="$gettext('For Chinese user: https://mirror.ghproxy.com/')"
  42. />
  43. </AFormItem>
  44. <AFormItem
  45. :label="$gettext('CADir')"
  46. :validate-status="errors?.server?.ca_dir ? 'error' : ''"
  47. :help="errors?.server?.ca_dir === 'url'
  48. ? $gettext('The url is not valid')
  49. : ''"
  50. >
  51. <AInput v-model:value="data.server.ca_dir" />
  52. </AFormItem>
  53. <AFormItem :label="$gettext('Certificate Renewal Interval')">
  54. <AInputNumber
  55. v-model:value="data.server.cert_renewal_interval"
  56. :min="7"
  57. :max="21"
  58. :addon-after="$gettext('Days')"
  59. />
  60. </AFormItem>
  61. <AFormItem
  62. :help="$gettext('Set the recursive nameservers to override the systems nameservers '
  63. + 'for the step of DNS challenge.')"
  64. >
  65. <template #label>
  66. {{ $gettext('Recursive Nameservers') }}
  67. <AButton
  68. type="link"
  69. @click="data.server.recursive_nameservers.push('')"
  70. >
  71. {{ $gettext('Add') }}
  72. </AButton>
  73. </template>
  74. <Draggable
  75. :list="data.server.recursive_nameservers"
  76. item-key="name"
  77. class="list-group"
  78. ghost-class="ghost"
  79. handle=".anticon-holder"
  80. >
  81. <template #item="{ index }">
  82. <ARow>
  83. <ACol :span="2">
  84. <HolderOutlined class="p-2" />
  85. </ACol>
  86. <ACol :span="20">
  87. <AInput
  88. v-model:value="data.server.recursive_nameservers[index]"
  89. :status="errors?.server?.recursive_nameservers?.[index] ? 'error' : undefined"
  90. placeholder="8.8.8.8:53"
  91. class="mb-4"
  92. />
  93. </ACol>
  94. <ACol :span="2">
  95. <APopconfirm
  96. :title="$gettext('Are you sure you want to remove this item?')"
  97. :ok-text="$gettext('Yes')"
  98. :cancel-text="$gettext('No')"
  99. @confirm="data.server.recursive_nameservers.splice(index, 1)"
  100. >
  101. <AButton
  102. type="link"
  103. danger
  104. >
  105. <DeleteOutlined />
  106. </AButton>
  107. </APopconfirm>
  108. </ACol>
  109. </ARow>
  110. </template>
  111. </Draggable>
  112. </AFormItem>
  113. <AFormItem
  114. :label="$gettext('Server Name')"
  115. :validate-status="errors?.server?.name ? 'error' : ''"
  116. :help="errors?.server?.name.includes('alpha_num_dash_dot')
  117. ? $gettext('The server name should only contain letters, numbers, dashes, and dots.')
  118. : $gettext('Customize the name of local server to be displayed in the environment indicator.')"
  119. >
  120. <AInput v-model:value="data.server.name" />
  121. </AFormItem>
  122. </AForm>
  123. </template>
  124. <style lang="less" scoped>
  125. </style>