<!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="20250319224829"> <script type="module" crossorigin src="./assets/index.4b21480b.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>