mirror of
https://github.com/silenty4ng/k5web
synced 2025-04-10 02:29:31 +00:00
194 lines
No EOL
6.3 KiB
HTML
194 lines
No EOL
6.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-cmn">
|
|
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link rel="shortcut icon" href="k5web.png" type="image/png" />
|
|
<title>K5Web</title>
|
|
<meta name="description" content="一款 K5/K6 在线写频工具,使用应第一时间备份配置及校准数据,提供信道管理、设置管理、备份还原、固件升级等功能。"/>
|
|
<meta name="keywords" content="k5web,uv-k5,uv-k6,chirp,k5,k6">
|
|
<style>
|
|
::-webkit-scrollbar {
|
|
width: 12px;
|
|
height: 4px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
border: 4px solid transparent;
|
|
background-clip: padding-box;
|
|
border-radius: 7px;
|
|
background-color: var(--color-text-4);
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background-color: var(--color-text-3);
|
|
}
|
|
</style>
|
|
<style>
|
|
#loading-mask {
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
height: 100%;
|
|
width: 100%;
|
|
background: #fff;
|
|
user-select: none;
|
|
z-index: 9999;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.loading-wrapper {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -100%);
|
|
}
|
|
|
|
.loading-dot {
|
|
animation: antRotate 1.2s infinite linear;
|
|
transform: rotate(45deg);
|
|
position: relative;
|
|
display: inline-block;
|
|
font-size: 64px;
|
|
font-size: 2.5vw;
|
|
width: 64px;
|
|
width: 2.5vw;
|
|
height: 64px;
|
|
height: 2.5vw;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.loading-dot i {
|
|
width: 22px;
|
|
width: 0.859vw;
|
|
height: 22px;
|
|
height: 0.859vw;
|
|
position: absolute;
|
|
display: block;
|
|
background-color: #1890ff;
|
|
border-radius: 100%;
|
|
transform: scale(0.75);
|
|
transform-origin: 50% 50%;
|
|
opacity: 0.3;
|
|
animation: antSpinMove 1s infinite linear alternate;
|
|
}
|
|
|
|
.loading-dot i:nth-child(1) {
|
|
top: 0;
|
|
left: 0;
|
|
}
|
|
|
|
.loading-dot i:nth-child(2) {
|
|
top: 0;
|
|
right: 0;
|
|
-webkit-animation-delay: 0.4s;
|
|
animation-delay: 0.4s;
|
|
}
|
|
|
|
.loading-dot i:nth-child(3) {
|
|
right: 0;
|
|
bottom: 0;
|
|
-webkit-animation-delay: 0.8s;
|
|
animation-delay: 0.8s;
|
|
}
|
|
|
|
.loading-dot i:nth-child(4) {
|
|
bottom: 0;
|
|
left: 0;
|
|
-webkit-animation-delay: 1.2s;
|
|
animation-delay: 1.2s;
|
|
}
|
|
|
|
@keyframes antRotate {
|
|
to {
|
|
-webkit-transform: rotate(405deg);
|
|
transform: rotate(405deg);
|
|
}
|
|
}
|
|
|
|
@-webkit-keyframes antRotate {
|
|
to {
|
|
-webkit-transform: rotate(405deg);
|
|
transform: rotate(405deg);
|
|
}
|
|
}
|
|
|
|
@keyframes antSpinMove {
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@-webkit-keyframes antSpinMove {
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
</style>
|
|
<script src="serial.js"></script>
|
|
<meta name="builtTime" content="20250403115517">
|
|
<script type="module" crossorigin src="./assets/index.a2ee1052.js"></script>
|
|
<link rel="modulepreload" crossorigin href="./assets/@intlify.b8ed1d74.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/@vue.2faf1d8e.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/vue.24dcbee8.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/resize-detector.a8854a64.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/tslib.c6ba9914.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/zrender.ce26131e.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/echarts.5b0e6023.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/vue-echarts.29561399.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/b-tween.8dd4e2fe.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/dayjs.08dc07e5.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/b-validate.1fdaeb97.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/number-precision.5cddbed2.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/resize-observer-polyfill.2b976e6e.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/compute-scroll-into-view.17358474.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/scroll-into-view-if-needed.0a5da943.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/@arco-design.95e0b031.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/vue-router.425aabc5.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/nprogress.77f16b3e.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/mitt.550594b0.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/vue-demi.1e0b7689.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/pinia.510425a1.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/axios.234ce069.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/vue-i18n.4b9acc8b.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/@vueuse.c5c16882.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/aegis-web-sdk.088ecaea.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/@zxing.8654f0db.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/tdesign-icons-vue-next.514651cc.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/sortablejs.b2e3c7c4.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/@popperjs.f3f73334.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/tdesign-vue-next.62a9d0ce.js">
|
|
<link rel="modulepreload" crossorigin href="./assets/vue-matomo.ed94ba67.js">
|
|
<link rel="stylesheet" href="./assets/@arco-design.2b8b31ee.css">
|
|
<link rel="stylesheet" href="./assets/nprogress.8b89e2e0.css">
|
|
<link rel="stylesheet" href="./assets/tdesign-icons-vue-next.8494edcb.css">
|
|
<link rel="stylesheet" href="./assets/tdesign-vue-next.875637ac.css">
|
|
<link rel="stylesheet" href="./assets/index.565c3a6b.css">
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app">
|
|
<div id="loading-mask">
|
|
<div class="loading-wrapper">
|
|
<span class="loading-dot loading-dot-spin"><i></i><i></i><i></i><i></i></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
(async ()=>{
|
|
let wakeLock = null;
|
|
try {
|
|
wakeLock = await navigator.wakeLock.request("screen");
|
|
} catch {}
|
|
document.addEventListener("visibilitychange", async () => {
|
|
if (wakeLock !== null && document.visibilityState === "visible") {
|
|
wakeLock = await navigator.wakeLock.request("screen");
|
|
}
|
|
});
|
|
})();
|
|
</script>
|
|
</body>
|
|
|
|
</html> |