2017-03-27 02:15:31 +08:00
|
|
|
<template>
|
2020-12-03 20:20:48 +08:00
|
|
|
<div id="app">
|
|
|
|
<header class="grid-content header-color">
|
|
|
|
<el-row>
|
|
|
|
<a class="brand" href="#">frp</a>
|
|
|
|
</el-row>
|
|
|
|
</header>
|
|
|
|
<section>
|
|
|
|
<el-row>
|
|
|
|
<el-col id="side-nav" :xs="24" :md="4">
|
|
|
|
<el-menu default-active="1" mode="vertical" theme="light" router @select="handleSelect">
|
|
|
|
<el-menu-item index="/">Overview</el-menu-item>
|
|
|
|
<el-submenu index="/proxies">
|
|
|
|
<template slot="title">Proxies</template>
|
|
|
|
<el-menu-item index="/proxies/tcp">TCP</el-menu-item>
|
|
|
|
<el-menu-item index="/proxies/udp">UDP</el-menu-item>
|
|
|
|
<el-menu-item index="/proxies/http">HTTP</el-menu-item>
|
|
|
|
<el-menu-item index="/proxies/https">HTTPS</el-menu-item>
|
|
|
|
<el-menu-item index="/proxies/stcp">STCP</el-menu-item>
|
|
|
|
</el-submenu>
|
|
|
|
<el-menu-item index="">Help</el-menu-item>
|
|
|
|
</el-menu>
|
|
|
|
</el-col>
|
2017-03-27 02:15:31 +08:00
|
|
|
|
2020-12-03 20:20:48 +08:00
|
|
|
<el-col :xs="24" :md="20">
|
|
|
|
<div id="content">
|
|
|
|
<router-view v-if="serverInfo" />
|
|
|
|
</div>
|
|
|
|
</el-col>
|
|
|
|
</el-row>
|
|
|
|
</section>
|
|
|
|
</div>
|
2017-03-27 02:15:31 +08:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2020-12-03 20:20:48 +08:00
|
|
|
export default {
|
|
|
|
computed: {
|
|
|
|
serverInfo() {
|
|
|
|
return this.$store.state.serverInfo
|
2017-03-27 02:15:31 +08:00
|
|
|
}
|
2020-12-03 20:20:48 +08:00
|
|
|
},
|
|
|
|
async created() {
|
|
|
|
this.$store.dispatch('fetchServerInfo')
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
handleSelect(key, path) {
|
|
|
|
if (key === '') {
|
|
|
|
window.open('https://github.com/fatedier/frp')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-03-27 02:15:31 +08:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<style>
|
2020-12-03 20:20:48 +08:00
|
|
|
body {
|
|
|
|
background-color: #fafafa;
|
|
|
|
margin: 0px;
|
|
|
|
font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, sans-serif;
|
|
|
|
}
|
|
|
|
|
|
|
|
header {
|
|
|
|
width: 100%;
|
|
|
|
height: 60px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.header-color {
|
|
|
|
background: #58b7ff;
|
|
|
|
}
|
|
|
|
|
|
|
|
#content {
|
|
|
|
margin-top: 20px;
|
|
|
|
padding-right: 40px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.brand {
|
|
|
|
color: #fff;
|
|
|
|
background-color: transparent;
|
|
|
|
margin-left: 20px;
|
|
|
|
float: left;
|
|
|
|
line-height: 25px;
|
|
|
|
font-size: 25px;
|
|
|
|
padding: 15px 15px;
|
|
|
|
height: 30px;
|
|
|
|
text-decoration: none;
|
|
|
|
}
|
2017-03-27 02:15:31 +08:00
|
|
|
</style>
|