| 1 | <template> |
| 2 | <n-form :model label-placement="left" label-width="auto"> |
| 3 | <n-form-item label="Protocol" required> |
| 4 | <n-radio-group v-model:value="model.protocol"> |
| 5 | <n-radio-button value="tcp">TCP</n-radio-button> |
| 6 | </n-radio-group> |
| 7 | </n-form-item> |
| 8 | |
| 9 | <n-form-item label="Hot Data Retention (days)" required> |
| 10 | <n-input-number v-model:value="model.hot_data_retention" :min="1" :max="90" class="w-full" /> |
| 11 | </n-form-item> |
| 12 | |
| 13 | <n-form-item label="Index Replicas" required> |
| 14 | <n-input-number v-model:value="model.index_replicas" :min="0" :max="3" class="w-full" /> |
| 15 | </n-form-item> |
| 16 | </n-form> |
| 17 | </template> |
| 18 | |
| 19 | <script setup lang="ts"> |
| 20 | import { NForm, NFormItem, NInputNumber, NRadioButton, NRadioGroup } from "naive-ui" |
| 21 | |
| 22 | export interface SonicWallModel { |
| 23 | protocol: "tcp" |
| 24 | hot_data_retention: number |
| 25 | index_replicas: number |
| 26 | } |
| 27 | |
| 28 | const model = defineModel<SonicWallModel>("options", { required: true }) |
| 29 | </script> |