index.vue 2.17 KB
<template>
  <div style="">
    <Tabs
      :defaultActiveKey="currentKey"
      v-model:activeKey="currentKey"
      :size="currentSize"
      :animated="true"
    >
      <TabPane key="1" tab="LWM2M Model">
        <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerModel" />
      </TabPane>
      <TabPane key="2" tab="Servers">
        <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerServer" />
      </TabPane>
      <TabPane key="3" tab="Other settings">
        <BasicForm
          :showResetButton="false"
          :showSubmitButton="false"
          @register="registerSettings"
        />
      </TabPane>
      <TabPane key="4" tab="Json Config Profile Device">
        <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerDevice" />
      </TabPane>
    </Tabs>
  </div>
</template>

<script lang="ts">
  import { defineComponent, ref } from 'vue';
  import { Tabs } from 'ant-design-vue';
  import { BasicForm, useForm } from '/@/components/Form';
  import { modelSchemas, serverSchemas, settingsSchemas, deviceSchemas } from './index';

  export default defineComponent({
    name: 'index',
    components: {
      Tabs,
      TabPane: Tabs.TabPane,
      BasicForm,
    },
    setup() {
      const currentKey = ref(1);
      const currentSize = ref('large');

      const [registerModel] = useForm({
        labelWidth: 80,
        schemas: modelSchemas,
        actionColOptions: {
          span: 14,
        },
      });
      const [registerServer] = useForm({
        labelWidth: 80,
        schemas: serverSchemas,
        actionColOptions: {
          span: 14,
        },
      });
      const [registerSettings] = useForm({
        labelWidth: 80,
        schemas: settingsSchemas,
        actionColOptions: {
          span: 14,
        },
      });
      const [registerDevice] = useForm({
        labelWidth: 80,
        schemas: deviceSchemas,
        actionColOptions: {
          span: 14,
        },
      });

      return {
        currentKey,
        currentSize,
        registerModel,
        registerServer,
        registerSettings,
        registerDevice,
      };
    },
  });
</script>