RegisterGateway.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <script setup lang="ts">
  2. import { computed, reactive, ref, shallowRef } from 'vue';
  3. import UseGuidance from '@/layout/UseGuidance.vue';
  4. import AddInterface from '@/views/register-gateway/AddInterface.vue';
  5. import BindProtocol from '@/views/register-gateway/BindProtocol.vue';
  6. import VerifyDevice from '@/views/register-gateway/VerifyDevice.vue';
  7. import VerifyProtocol from '@/views/register-gateway/VerifyProtocol.vue';
  8. import { t } from '@/i18n';
  9. import type { FormRules, RegisterGatewayForm, UseGuideStepItem } from '@/types';
  10. const steps = ref<UseGuideStepItem[]>([
  11. {
  12. title: t('registerGateway.verificationEquipment'),
  13. component: shallowRef(VerifyDevice),
  14. nextStepButtonDisabled: true,
  15. },
  16. {
  17. title: t('registerGateway.addInterface'),
  18. component: shallowRef(AddInterface),
  19. },
  20. {
  21. title: t('registerGateway.bindingAgreement'),
  22. component: shallowRef(BindProtocol),
  23. },
  24. {
  25. title: t('registerGateway.verificationAgreement'),
  26. component: shallowRef(VerifyProtocol),
  27. contentOffset: 40,
  28. },
  29. ]);
  30. const registerGatewayForm = reactive<RegisterGatewayForm>({
  31. snCode: '',
  32. password: '',
  33. modelId: 0,
  34. linkType: '',
  35. id: 0,
  36. });
  37. const rules = computed<FormRules<RegisterGatewayForm>>(() => {
  38. return {
  39. snCode: [
  40. {
  41. required: true,
  42. message: t('registerGateway.pleaseSnCode'),
  43. trigger: 'change',
  44. },
  45. ],
  46. password: [
  47. {
  48. required: true,
  49. message: t('registerGateway.pleasePassword'),
  50. trigger: 'change',
  51. },
  52. ],
  53. linkType: [
  54. {
  55. required: true,
  56. message: t('registerGateway.pleaseSelectInterface'),
  57. trigger: 'change',
  58. },
  59. ],
  60. };
  61. });
  62. </script>
  63. <template>
  64. <UseGuidance
  65. :title="$t('registerGateway.registerGateway')"
  66. :steps="steps"
  67. :form="registerGatewayForm"
  68. :rules="rules"
  69. />
  70. </template>