add vConsole debug
This commit is contained in:
@@ -33,6 +33,7 @@
|
|||||||
"timi-web": "link:E:/WebProject/timi-web",
|
"timi-web": "link:E:/WebProject/timi-web",
|
||||||
"timi-web-api": "link:E:/WebProject/timi-web-api",
|
"timi-web-api": "link:E:/WebProject/timi-web-api",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
|
"vconsole": "^3.15.1",
|
||||||
"vue": "^3.5.16",
|
"vue": "^3.5.16",
|
||||||
"vue-draggable-next": "^2.3.0",
|
"vue-draggable-next": "^2.3.0",
|
||||||
"vue-echarts": "^8.0.1",
|
"vue-echarts": "^8.0.1",
|
||||||
|
|||||||
Generated
+29
@@ -44,6 +44,9 @@ importers:
|
|||||||
ts-node:
|
ts-node:
|
||||||
specifier: ^10.9.2
|
specifier: ^10.9.2
|
||||||
version: 10.9.2(@types/node@24.13.3)(typescript@5.8.3)
|
version: 10.9.2(@types/node@24.13.3)(typescript@5.8.3)
|
||||||
|
vconsole:
|
||||||
|
specifier: ^3.15.1
|
||||||
|
version: 3.15.1
|
||||||
vue:
|
vue:
|
||||||
specifier: ^3.5.16
|
specifier: ^3.5.16
|
||||||
version: 3.5.40(typescript@5.8.3)
|
version: 3.5.40(typescript@5.8.3)
|
||||||
@@ -904,6 +907,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==}
|
resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
|
copy-text-to-clipboard@3.2.2:
|
||||||
|
resolution: {integrity: sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
core-js@3.50.0:
|
||||||
|
resolution: {integrity: sha512-BRWgOLKkFeCgRudR6zrs8p9XJZcE14grzKMMssoYrk6krtuEZ7MTKPIY5RzOnqsEKIR9kst7wNzphttraT+Yqw==}
|
||||||
|
|
||||||
cors@2.8.6:
|
cors@2.8.6:
|
||||||
resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==}
|
resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==}
|
||||||
engines: {node: '>= 0.10'}
|
engines: {node: '>= 0.10'}
|
||||||
@@ -1439,6 +1449,9 @@ packages:
|
|||||||
muggle-string@0.4.1:
|
muggle-string@0.4.1:
|
||||||
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
|
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
|
||||||
|
|
||||||
|
mutation-observer@1.0.3:
|
||||||
|
resolution: {integrity: sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==}
|
||||||
|
|
||||||
nanoid@3.3.16:
|
nanoid@3.3.16:
|
||||||
resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==}
|
resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==}
|
||||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||||
@@ -1871,6 +1884,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
|
|
||||||
|
vconsole@3.15.1:
|
||||||
|
resolution: {integrity: sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==}
|
||||||
|
|
||||||
vite@6.4.3:
|
vite@6.4.3:
|
||||||
resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==}
|
resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==}
|
||||||
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
|
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
|
||||||
@@ -2763,6 +2779,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-what: 5.5.0
|
is-what: 5.5.0
|
||||||
|
|
||||||
|
copy-text-to-clipboard@3.2.2: {}
|
||||||
|
|
||||||
|
core-js@3.50.0: {}
|
||||||
|
|
||||||
cors@2.8.6:
|
cors@2.8.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
object-assign: 4.1.1
|
object-assign: 4.1.1
|
||||||
@@ -3333,6 +3353,8 @@ snapshots:
|
|||||||
|
|
||||||
muggle-string@0.4.1: {}
|
muggle-string@0.4.1: {}
|
||||||
|
|
||||||
|
mutation-observer@1.0.3: {}
|
||||||
|
|
||||||
nanoid@3.3.16: {}
|
nanoid@3.3.16: {}
|
||||||
|
|
||||||
natural-compare@1.4.0: {}
|
natural-compare@1.4.0: {}
|
||||||
@@ -3818,6 +3840,13 @@ snapshots:
|
|||||||
|
|
||||||
vary@1.1.2: {}
|
vary@1.1.2: {}
|
||||||
|
|
||||||
|
vconsole@3.15.1:
|
||||||
|
dependencies:
|
||||||
|
'@babel/runtime': 7.29.7
|
||||||
|
copy-text-to-clipboard: 3.2.2
|
||||||
|
core-js: 3.50.0
|
||||||
|
mutation-observer: 1.0.3
|
||||||
|
|
||||||
vite@6.4.3(@types/node@24.13.3)(less@4.8.0)(terser@5.49.0):
|
vite@6.4.3(@types/node@24.13.3)(less@4.8.0)(terser@5.49.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.25.12
|
esbuild: 0.25.12
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="about-page">
|
<div class="about-page">
|
||||||
<section class="brand" v-entrance-transition>
|
<section class="brand" v-entrance-transition>
|
||||||
<logo />
|
<logo @click="handleLogoClick" />
|
||||||
<h1 v-text="appName" />
|
<h1 v-text="appName" />
|
||||||
<p v-text="appDescription" />
|
<p v-text="appDescription" />
|
||||||
</section>
|
</section>
|
||||||
@@ -37,6 +37,7 @@ import { SettingAPI } from "timi-web-api";
|
|||||||
import Logo from "@/pages/user/component/Logo.vue";
|
import Logo from "@/pages/user/component/Logo.vue";
|
||||||
import { getErrorMessage } from "@/utils/error";
|
import { getErrorMessage } from "@/utils/error";
|
||||||
import { Message } from "@/utils/message";
|
import { Message } from "@/utils/message";
|
||||||
|
import { toggleVConsole } from "@/utils/vConsole";
|
||||||
|
|
||||||
type AgreementItem = {
|
type AgreementItem = {
|
||||||
icon: string;
|
icon: string;
|
||||||
@@ -55,6 +56,30 @@ const router = useRouter();
|
|||||||
const agreementItemList = ref<AgreementItem[]>([]);
|
const agreementItemList = ref<AgreementItem[]>([]);
|
||||||
const isLoading = ref(false);
|
const isLoading = ref(false);
|
||||||
|
|
||||||
|
let debugClickCount = 0;
|
||||||
|
let debugClickTimer: number | undefined;
|
||||||
|
|
||||||
|
async function handleLogoClick(): Promise<void> {
|
||||||
|
debugClickCount++;
|
||||||
|
if (debugClickTimer !== undefined) {
|
||||||
|
window.clearTimeout(debugClickTimer);
|
||||||
|
}
|
||||||
|
debugClickTimer = window.setTimeout(() => {
|
||||||
|
debugClickCount = 0;
|
||||||
|
debugClickTimer = undefined;
|
||||||
|
}, 1_500);
|
||||||
|
|
||||||
|
if (debugClickCount < 5) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
debugClickCount = 0;
|
||||||
|
window.clearTimeout(debugClickTimer);
|
||||||
|
debugClickTimer = undefined;
|
||||||
|
|
||||||
|
await toggleVConsole();
|
||||||
|
}
|
||||||
|
|
||||||
async function openAgreement(item: AgreementItem): Promise<void> {
|
async function openAgreement(item: AgreementItem): Promise<void> {
|
||||||
await router.push({
|
await router.push({
|
||||||
name: "Agreement",
|
name: "Agreement",
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
import type VConsole from "vconsole";
|
||||||
|
|
||||||
|
let vConsoleInstance: VConsole | undefined;
|
||||||
|
let isVConsoleLoading = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 切换移动端调试控制台。
|
||||||
|
*/
|
||||||
|
export async function toggleVConsole(): Promise<void> {
|
||||||
|
if (vConsoleInstance) {
|
||||||
|
vConsoleInstance.destroy();
|
||||||
|
vConsoleInstance = undefined;
|
||||||
|
console.warn("[调试] vConsole 已关闭");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (isVConsoleLoading) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
isVConsoleLoading = true;
|
||||||
|
try {
|
||||||
|
const { default: VConsole } = await import("vconsole");
|
||||||
|
vConsoleInstance = new VConsole();
|
||||||
|
console.warn("[调试] vConsole 已启用");
|
||||||
|
} catch (error) {
|
||||||
|
console.error("[调试] vConsole 启用失败", error);
|
||||||
|
} finally {
|
||||||
|
isVConsoleLoading = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user