main
vue 50 lines 1.75 KB
Raw
1 <template>
2 <div class="page">
3 <n-tabs v-model:value="activeTab" type="line" animated>
4 <n-tab-pane name="artifacts" tab="Artifacts" display-directive="show:lazy">
5 <ArtifactsList @loaded-agents="agents = $event" @loaded-artifacts="artifacts = $event" />
6 </n-tab-pane>
7 <n-tab-pane name="collect" tab="Collect" display-directive="show:lazy">
8 <ArtifactsCollect
9 :agents
10 :artifacts
11 @loaded-agents="agents = $event"
12 @loaded-artifacts="artifacts = $event"
13 />
14 </n-tab-pane>
15 <n-tab-pane name="command" tab="Command" display-directive="show:lazy">
16 <ArtifactsCommand
17 :agents
18 :artifacts
19 @loaded-agents="agents = $event"
20 @loaded-artifacts="artifacts = $event"
21 />
22 </n-tab-pane>
23 <n-tab-pane name="quarantine" tab="Quarantine" display-directive="show:lazy">
24 <ArtifactsQuarantine
25 :agents
26 :artifacts
27 @loaded-agents="agents = $event"
28 @loaded-artifacts="artifacts = $event"
29 />
30 </n-tab-pane>
31 </n-tabs>
32 </div>
33 </template>
34
35 <script setup lang="ts">
36 import type { Agent } from "@/types/agents.d"
37 import type { Artifact } from "@/types/artifacts.d"
38 import { NTabPane, NTabs } from "naive-ui"
39 import { defineAsyncComponent, ref } from "vue"
40
41 const ArtifactsList = defineAsyncComponent(() => import("@/components/artifacts/ArtifactsList.vue"))
42 const ArtifactsCollect = defineAsyncComponent(() => import("@/components/artifacts/ArtifactsCollect.vue"))
43 const ArtifactsCommand = defineAsyncComponent(() => import("@/components/artifacts/ArtifactsCommand.vue"))
44 const ArtifactsQuarantine = defineAsyncComponent(() => import("@/components/artifacts/ArtifactsQuarantine.vue"))
45
46 const artifacts = ref<Artifact[]>([])
47 const agents = ref<Agent[]>([])
48
49 const activeTab = ref<string | undefined>(undefined)
50 </script>