Skip to content

Commit f07f0ba

Browse files
committed
add ep info card
1 parent fcdd756 commit f07f0ba

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed

gui/src/views/mesh/EndpointDetail.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { ref,onActivated,watch, computed } from "vue";
33
import { useRouter } from 'vue-router'
44
import PipyProxyService from '@/service/PipyProxyService';
55
import MeshSelector from './common/MeshSelector.vue';
6+
import EndpointInfo from './EndpointInfo.vue';
67
import Services from './Services.vue';
78
import Ports from './Ports.vue';
89
import { useStore } from 'vuex';
@@ -65,6 +66,15 @@ const go = (path) => {
6566
</AppHeader>
6667
<div class="text-center">
6768
<TabView class="" v-model:activeIndex="active">
69+
70+
<TabPanel>
71+
<template #header>
72+
<div>
73+
<i class="pi pi-info-circle mr-2" />Info
74+
</div>
75+
</template>
76+
<EndpointInfo :ep="props.ep"/>
77+
</TabPanel>
6878
<TabPanel>
6979
<template #header>
7080
<div>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<script setup>
2+
import { ref, onMounted, computed, watch } from 'vue';
3+
4+
const props = defineProps(['ep','loading']);
5+
const windowWidth = computed(() => window.innerWidth);
6+
const isMobile = computed(() => windowWidth.value<=768);
7+
</script>
8+
9+
<template>
10+
<Loading v-if="props.loading" />
11+
<div v-else-if="props.ep" class="md:m-3">
12+
<BlockViewer containerClass="surface-section px-1 md:px-1 lg:px-1" >
13+
<div >
14+
<ul class="list-none p-0 m-0">
15+
<FormItem label="Name">
16+
<Chip class="pl-0 pr-3 mr-2">
17+
<span class="bg-primary border-circle w-2rem h-2rem flex align-items-center justify-content-center">
18+
<i class="pi pi-bookmark"/>
19+
</span>
20+
<span class="ml-2 font-medium">
21+
{{props.ep?.name || 'Unknow'}}
22+
</span>
23+
</Chip>
24+
</FormItem>
25+
<FormItem label="Username">
26+
<Chip class="pl-0 pr-3 mr-2">
27+
<span class="bg-primary border-circle w-2rem h-2rem flex align-items-center justify-content-center">
28+
<i class="pi pi-user"/>
29+
</span>
30+
<span class="ml-2 font-medium">
31+
{{props.ep?.username || 'Unknow'}}
32+
</span>
33+
</Chip>
34+
</FormItem>
35+
<FormItem label="IP" v-if="props.ep?.ip">
36+
<Chip class="pl-0 pr-3 mr-2">
37+
<span class="bg-primary border-circle w-2rem h-2rem flex align-items-center justify-content-center">
38+
<i class="pi pi-map-marker"/>
39+
</span>
40+
<span class="ml-2 font-medium">
41+
{{props.ep?.ip || 'Unknow'}}
42+
</span>
43+
</Chip>
44+
</FormItem>
45+
<FormItem label="Port" v-if="props.ep?.port">
46+
<Chip class="pl-0 pr-3 mr-2">
47+
<span class="bg-primary border-circle w-2rem h-2rem flex align-items-center justify-content-center">
48+
<i class="pi pi-sort"/>
49+
</span>
50+
<span class="ml-2 font-medium">
51+
{{props.ep?.port || 'Unknow'}}
52+
</span>
53+
</Chip>
54+
</FormItem>
55+
</ul>
56+
</div>
57+
</BlockViewer>
58+
</div>
59+
<Empty v-else title="Unknow EP" :error="props.error"/>
60+
</template>
61+
62+
63+
<style scoped lang="scss">
64+
:deep(.p-breadcrumb){
65+
border-radius: 0;
66+
border-left: none;
67+
border-right: none;
68+
}
69+
.bootstrap{
70+
:deep(.add-tag-input){
71+
width:120px;
72+
}
73+
:deep(.add-tag-input:hover){
74+
width:160px;
75+
}
76+
}
77+
</style>

0 commit comments

Comments
 (0)