2017-03-27 02:15:31 +08:00
|
|
|
<template>
|
2023-02-16 02:45:48 +08:00
|
|
|
<div id="app">
|
|
|
|
<header class="grid-content header-color">
|
2023-02-22 14:15:21 +08:00
|
|
|
<div class="header-content">
|
|
|
|
<div class="brand">
|
|
|
|
<a href="#">frp</a>
|
|
|
|
</div>
|
|
|
|
<div class="dark-switch">
|
|
|
|
<el-switch
|
|
|
|
v-model="darkmodeSwitch"
|
|
|
|
inline-prompt
|
|
|
|
active-text="Dark"
|
|
|
|
inactive-text="Light"
|
|
|
|
@change="toggleDark"
|
|
|
|
style="
|
|
|
|
--el-switch-on-color: #444452;
|
|
|
|
--el-switch-off-color: #589ef8;
|
|
|
|
"
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-02-16 02:45:48 +08:00
|
|
|
</header>
|
|
|
|
<section>
|
|
|
|
<el-row>
|
|
|
|
<el-col id="side-nav" :xs="24" :md="4">
|
|
|
|
<el-menu
|
|
|
|
default-active="/"
|
|
|
|
mode="vertical"
|
|
|
|
theme="light"
|
|
|
|
router="false"
|
|
|
|
@select="handleSelect"
|
|
|
|
>
|
|
|
|
<el-menu-item index="/">Overview</el-menu-item>
|
|
|
|
<el-sub-menu index="/proxies">
|
|
|
|
<template #title>
|
|
|
|
<span>Proxies</span>
|
|
|
|
</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-menu-item index="/proxies/sudp">SUDP</el-menu-item>
|
|
|
|
</el-sub-menu>
|
|
|
|
<el-menu-item index="">Help</el-menu-item>
|
|
|
|
</el-menu>
|
|
|
|
</el-col>
|
2017-03-27 02:15:31 +08:00
|
|
|
|
2023-02-16 02:45:48 +08:00
|
|
|
<el-col :xs="24" :md="20">
|
|
|
|
<div id="content">
|
|
|
|
<router-view></router-view>
|
|
|
|
</div>
|
|
|
|
</el-col>
|
|
|
|
</el-row>
|
|
|
|
</section>
|
|
|
|
<footer></footer>
|
|
|
|
</div>
|
2017-03-27 02:15:31 +08:00
|
|
|
</template>
|
|
|
|
|
2023-02-16 02:45:48 +08:00
|
|
|
<script setup lang="ts">
|
2023-02-22 14:15:21 +08:00
|
|
|
import { ref } from 'vue'
|
|
|
|
import { useDark, useToggle } from '@vueuse/core'
|
|
|
|
|
|
|
|
const isDark = useDark()
|
|
|
|
const darkmodeSwitch = ref(isDark)
|
|
|
|
const toggleDark = useToggle(isDark)
|
|
|
|
|
2023-02-16 02:45:48 +08:00
|
|
|
const handleSelect = (key: string) => {
|
|
|
|
if (key == '') {
|
|
|
|
window.open('https://github.com/fatedier/frp')
|
|
|
|
}
|
|
|
|
}
|
2017-03-27 02:15:31 +08:00
|
|
|
</script>
|
|
|
|
|
|
|
|
<style>
|
2023-02-16 02:45:48 +08:00
|
|
|
body {
|
|
|
|
margin: 0px;
|
|
|
|
font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, sans-serif;
|
|
|
|
}
|
|
|
|
|
|
|
|
header {
|
|
|
|
width: 100%;
|
|
|
|
height: 60px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.header-color {
|
|
|
|
background: #58b7ff;
|
|
|
|
}
|
|
|
|
|
2023-02-22 14:15:21 +08:00
|
|
|
html.dark .header-color {
|
|
|
|
background: #395c74;
|
|
|
|
}
|
|
|
|
|
|
|
|
.header-content {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
}
|
|
|
|
|
2023-02-16 02:45:48 +08:00
|
|
|
#content {
|
|
|
|
margin-top: 20px;
|
|
|
|
padding-right: 40px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.brand {
|
2023-02-22 14:15:21 +08:00
|
|
|
display: flex;
|
|
|
|
justify-content: flex-start;
|
|
|
|
}
|
|
|
|
|
|
|
|
.brand a {
|
2023-02-16 02:45:48 +08:00
|
|
|
color: #fff;
|
|
|
|
background-color: transparent;
|
|
|
|
margin-left: 20px;
|
|
|
|
line-height: 25px;
|
|
|
|
font-size: 25px;
|
|
|
|
padding: 15px 15px;
|
|
|
|
height: 30px;
|
|
|
|
text-decoration: none;
|
|
|
|
}
|
2023-02-22 14:15:21 +08:00
|
|
|
|
|
|
|
.dark-switch {
|
|
|
|
display: flex;
|
|
|
|
justify-content: flex-end;
|
|
|
|
flex-grow: 1;
|
|
|
|
padding-right: 40px;
|
|
|
|
}
|
2017-03-27 02:15:31 +08:00
|
|
|
</style>
|