feat(wifiView) add disconnection info

This commit is contained in:
kerms 2024-04-17 18:32:07 +08:00
parent 5b1304e927
commit 275f3ac859
5 changed files with 5757 additions and 107 deletions

2
.gitignore vendored
View File

@ -28,9 +28,9 @@ coverage
*.sw? *.sw?
*.tsbuildinfo *.tsbuildinfo
package-lock.json
components.d.ts components.d.ts
auto-imports.d.ts auto-imports.d.ts
# Personal # Personal
**/_priv_* **/_priv_*
Makefile

5640
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -59,7 +59,7 @@ const compileTime = import.meta.env.VITE_APP_LAST_COMMIT;
<el-descriptions-item label="github"><a href="https://github.com/kerms">https://github.com/kerms</a> <el-descriptions-item label="github"><a href="https://github.com/kerms">https://github.com/kerms</a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="邮箱">kerms@niazo.org</el-descriptions-item> <el-descriptions-item label="邮箱">kerms@niazo.org</el-descriptions-item>
<el-descriptions-item label="BiliBili"><a href="https://space.bilibili.com/38669852">UID38669852</a> <el-descriptions-item label="BiliBili"><a href="https://space.bilibili.com/3461571571353885">3461571571353885</a>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="QQ群">642246000</el-descriptions-item> <el-descriptions-item label="QQ群">642246000</el-descriptions-item>
<el-descriptions-item label="备注">欢迎大家来打扰啊</el-descriptions-item> <el-descriptions-item label="备注">欢迎大家来打扰啊</el-descriptions-item>

View File

@ -5,7 +5,6 @@
</h1> </h1>
<el-divider></el-divider> <el-divider></el-divider>
<h2 class="mb-4 text-xl font-bold tracking-tight md:text-2xl lg:text-3xl">连接Wi-Fi</h2> <h2 class="mb-4 text-xl font-bold tracking-tight md:text-2xl lg:text-3xl">连接Wi-Fi</h2>
<el-form label-width="auto" ref="formRef" :model="ssidValidateForm" class="m-auto"> <el-form label-width="auto" ref="formRef" :model="ssidValidateForm" class="m-auto">
<el-form-item <el-form-item
@ -45,7 +44,11 @@
clearable clearable
/> />
</el-form-item> </el-form-item>
<div class="mb-2">
<el-alert type="info" show-icon>
如果不是通过透传器的热点连接更换Wi-Fi将导致此界面与透传器断开连接
</el-alert>
</div>
<div class="flex justify-center"> <div class="flex justify-center">
<el-button @click="onConnectClick" type="primary">连接</el-button> <el-button @click="onConnectClick" type="primary">连接</el-button>
</div> </div>
@ -259,7 +262,11 @@ const onClientMsg = (msg: ServerMsg) => {
break; break;
case WifiCmd.WIFI_API_JSON_STA_GET_AP_INFO: { case WifiCmd.WIFI_API_JSON_STA_GET_AP_INFO: {
const info = msg.data as WifiInfo; const info = msg.data as WifiInfo;
Object.assign(wifiStaApInfo, info); if (info.rssi === 0) {
Object.assign(wifiStaApInfo, defWifiInfo);
} else {
Object.assign(wifiStaApInfo, info);
}
if (connectBtnClicked) { if (connectBtnClicked) {
connectBtnClicked = 0; connectBtnClicked = 0;
globalNotifyRightSide(wifiStaApInfo.ssid + " 连接成功", "success"); globalNotifyRightSide(wifiStaApInfo.ssid + " 连接成功", "success");

View File

@ -2,115 +2,118 @@ import { fileURLToPath, URL } from 'node:url'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import AutoImport from 'unplugin-auto-import/vite' import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite' import Components from 'unplugin-vue-components/vite'
import { defineConfig } from 'vite' import {ConfigEnv, defineConfig, loadEnv} from 'vite'
import vue from '@vitejs/plugin-vue' import vue from '@vitejs/plugin-vue'
import svgLoader from "vite-svg-loader"; import svgLoader from "vite-svg-loader";
import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js"; import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js";
import { viteSingleFile } from 'vite-plugin-singlefile' import { viteSingleFile } from 'vite-plugin-singlefile'
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default ({mode}: ConfigEnv) => {
plugins: [ process.env = {...process.env, ...loadEnv(mode, process.cwd())};
vue(),
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
svgLoader(),
cssInjectedByJsPlugin(),
viteSingleFile(),
],
define: {
}, return defineConfig({
resolve: { plugins: [
alias: { vue(),
'@': fileURLToPath(new URL('./src', import.meta.url)) AutoImport({
} resolvers: [ElementPlusResolver()],
}, }),
Components({
cacheDir: "/tmp/zhuang/cache", resolvers: [ElementPlusResolver()],
worker: { }),
rollupOptions: { svgLoader(),
output: { cssInjectedByJsPlugin(),
inlineDynamicImports: true, viteSingleFile(),
minifyInternalExports: true, ],
// entryFileNames: (chunkInfo) => { define: {},
// // console.log(chunkInfo) resolve: {
// if (chunkInfo.name.includes("shared")) { alias: {
// console.log(chunkInfo.name); '@': fileURLToPath(new URL('./src', import.meta.url))
// }
// return "worker.js";
// },
entryFileNames: "[name].js",
} }
} },
},
build: {
// target: 'es2015',
outDir: '/tmp/zhuang/dap-web-dist/',
emptyOutDir: true,
cssMinify: 'lightningcss',
rollupOptions: { cacheDir: process.env.VITE_CACHE_DIR || undefined,
output: { worker: {
inlineDynamicImports: true, rollupOptions: {
minifyInternalExports: true, output: {
assetFileNames: (assetInfo) => { inlineDynamicImports: true,
if (!assetInfo || !assetInfo.name) { minifyInternalExports: true,
return 'default-filename.ext'; // entryFileNames: (chunkInfo) => {
} // // console.log(chunkInfo)
const info = assetInfo.name.split("."); // if (chunkInfo.name.includes("shared")) {
let extType = info[info.length - 1]; // console.log(chunkInfo.name);
if (/png|jpe?g|svg|gif|tiff|bmp|ico/i.test(extType)) { // }
extType = "img"; // return "worker.js";
} else if (/woff|woff2/.test(extType)) { // },
extType = "css"; entryFileNames: "[name].js",
} else if (/css/.test(extType)) { }
extType = "css"; }
return "style.css" },
} build: {
console.log(assetInfo) // target: 'es2015',
return `[name]-[hash][extname]`; outDir: process.env.VITE_OUTPUT_DIR || undefined,
}, emptyOutDir: true,
// chunkFileNames: "[name]-[hash].js", cssMinify: 'lightningcss',
// chunkFileNames: "[name][hash].js",
chunkFileNames(chunkInfo) {
// Check if this chunk is your SharedWorker
// console.log(chunkInfo)
// For other chunks, use the default naming scheme rollupOptions: {
return 'assets/[name]-[hash].js'; output: {
}, inlineDynamicImports: true,
// entryFileNames: "[name]-[hash].js", minifyInternalExports: true,
entryFileNames: (chunkInfo) => { assetFileNames: (assetInfo) => {
// console.log(chunkInfo) if (!assetInfo || !assetInfo.name) {
if (chunkInfo.name.includes("shared")) { return 'default-filename.ext';
console.log(chunkInfo.name); }
} const info = assetInfo.name.split(".");
return "script.js"; let extType = info[info.length - 1];
}, if (/png|jpe?g|svg|gif|tiff|bmp|ico/i.test(extType)) {
extType = "img";
} else if (/woff|woff2/.test(extType)) {
extType = "css";
} else if (/css/.test(extType)) {
extType = "css";
return "style.css"
}
console.log(assetInfo)
return `[name]-[hash][extname]`;
},
// chunkFileNames: "[name]-[hash].js",
// chunkFileNames: "[name][hash].js",
chunkFileNames(chunkInfo) {
// Check if this chunk is your SharedWorker
// console.log(chunkInfo)
sourcemapFileNames: "map-[name].js", // For other chunks, use the default naming scheme
// sanitizeFileName: "anit-[name].js", return 'assets/[name]-[hash].js';
// entryFileNames: (chunkInfo) => { },
// console.log(chunkInfo) // entryFileNames: "[name]-[hash].js",
// return `${chunkInfo.name}.js` entryFileNames: (chunkInfo) => {
// }, // console.log(chunkInfo)
// manualChunks(id) { if (chunkInfo.name.includes("shared")) {
// /* if (id.match('.*!/src/.*shared[a-zA-Z0-9-_]*[.](ts|js).*')) { console.log(chunkInfo.name);
// // Prevent bundling node_modules into common chunks }
// return 'bundle-shared'; return "script.js";
// } },
// else */{
// // Prevent bundling node_modules into common chunks sourcemapFileNames: "map-[name].js",
// return 'script' // sanitizeFileName: "anit-[name].js",
// } // entryFileNames: (chunkInfo) => {
// }, // console.log(chunkInfo)
manualChunks: undefined, // return `${chunkInfo.name}.js`
}, // },
} // manualChunks(id) {
}, // /* if (id.match('.*!/src/.*shared[a-zA-Z0-9-_]*[.](ts|js).*')) {
}) // // Prevent bundling node_modules into common chunks
// return 'bundle-shared';
// }
// else */{
// // Prevent bundling node_modules into common chunks
// return 'script'
// }
// },
manualChunks: undefined,
},
}
},
})
};