添加一个退出桌面霸屏页面的功能。

This commit is contained in:
Kane Wang 2023-03-22 17:07:33 +08:00
parent 0afa218810
commit a03da1bba9
8 changed files with 67 additions and 13 deletions

View File

@ -3,9 +3,9 @@
* @Date: 2023-02-28 01:22:48 * @Date: 2023-02-28 01:22:48
* @LastEditors: Kane * @LastEditors: Kane
* @FilePath: /task_schedule/src/router/index.js * @FilePath: /task_schedule/src/router/index.js
* @Description: * @Description:
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
*/ */
import { createRouter, createWebHashHistory } from "vue-router"; import { createRouter, createWebHashHistory } from "vue-router";
@ -21,19 +21,19 @@ const routes = [
path: "/login", path: "/login",
name: "Login", name: "Login",
hidden: true, hidden: true,
component: () => import("@/views/Login.vue"), component: async () => await import( "@/views/Login.vue" ),
}, },
{ {
path: "/public", path: "/public",
name: "Public", name: "Public",
hidden: true, hidden: true,
component: () => import("@/views/Public.vue"), component: async () => await import( "@/views/Public.vue" ),
}, },
{ {
path: "/desktop_archievement", path: "/desktop_archievement",
name: "DesktopArchievement", name: "DesktopArchievement",
hidden: true, hidden: true,
component: () => import("@/views/DesktopArchievement.vue"), component: async () => await import( "@/views/DesktopArchievement.vue" ),
}, },
]; ];
@ -44,10 +44,10 @@ const router = createRouter(
} }
); );
//路由守卫 // 路由守卫
// router.beforeEach((to) => // router.beforeEach((to) =>
// { // {
// }); // });
export { router }; export { router };

View File

@ -11,6 +11,13 @@
import { type AxiosResponse } from "axios"; import { type AxiosResponse } from "axios";
import { service as instance } from "./api/request.js"; import { service as instance } from "./api/request.js";
import { API_URL } from "./api/config.js"; import { API_URL } from "./api/config.js";
import { cleanStaffInfo } from "./api/localStorage.js";
// @ts-expect-error 之后再补充类型文件
import { router } from "../router/index.js";
// declare const require: any;
// const { router, } = require( "../router/index.js" );
interface LoginInfo interface LoginInfo
{ {
p13account: string; p13account: string;
@ -28,4 +35,11 @@ async function login( data: LoginInfo ): Promise<AxiosResponse<any, any>>
); );
} }
export { type LoginInfo, login }; function logout(): void
{
cleanStaffInfo();
void router.push( "/login" );
}
export { type LoginInfo, login, logout };

View File

@ -43,4 +43,9 @@ function saveStaffInfo( stuff: StaffInfo ): void
window.localStorage.setItem( STUFF_ITEM, json ); window.localStorage.setItem( STUFF_ITEM, json );
}; };
export { loadStaffInfo, saveStaffInfo }; function cleanStaffInfo(): void
{
window.localStorage.removeItem( STUFF_ITEM );
}
export { loadStaffInfo, saveStaffInfo, cleanStaffInfo };

View File

@ -11,6 +11,8 @@
<div <div
v-if="ui.showUI" v-if="ui.showUI"
class="view-wrapper" class="view-wrapper"
tabindex="0"
@keyup.esc="logoutDesktopArchievement()"
> >
<div class="center-wrapper"> <div class="center-wrapper">
<span class="slogan">对标先进&nbsp;比学赶超</span> <span class="slogan">对标先进&nbsp;比学赶超</span>
@ -63,6 +65,7 @@ import ArchievementChart from "@/components/ArchievementChartComponent.vue";
import ArchievementCompleteRateComponent from "@/components/ArchievementCompleteRateComponent.vue"; import ArchievementCompleteRateComponent from "@/components/ArchievementCompleteRateComponent.vue";
import HonorListComponent from "@/components/HonorListComponent.vue"; import HonorListComponent from "@/components/HonorListComponent.vue";
import DishonorListComponent from "@/components/DishonorListComponent.vue"; import DishonorListComponent from "@/components/DishonorListComponent.vue";
import { logout } from "@/utils/account.js";
export default { export default {
name: "DesktopArchievement", name: "DesktopArchievement",
@ -116,6 +119,15 @@ export default {
setTimeout(() => { ui.showUI = true; }, 0); setTimeout(() => { ui.showUI = true; }, 0);
}; };
// 退
const logoutDesktopArchievement = () =>
{
console.log("111");
logout();
// router.push("/login");
};
// //
if (staffInfo.P13UID === "") if (staffInfo.P13UID === "")
{ {
@ -133,7 +145,7 @@ export default {
queryDepartmentArchievement(renderData); queryDepartmentArchievement(renderData);
}); });
return { ui, getTotalArchievement, renderData, }; return { ui, getTotalArchievement, renderData, logoutDesktopArchievement, };
}, },
}; };
</script> </script>
@ -158,6 +170,7 @@ export default {
.center-wrapper { .center-wrapper {
// //
width: 50%; width: 50%;
min-width: 780px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: stretch; align-items: stretch;

View File

@ -195,6 +195,10 @@ export default {
justify-content: start; justify-content: start;
align-items: center; align-items: center;
background-image: url("@/assets/img/bg/bg_01.jpg");
background-attachment: fixed;
background-size: contain;
span { span {
font-size: 30px; font-size: 30px;
color: red; color: red;

View File

@ -38,8 +38,8 @@
"src/**/*.tsx", "src/**/*.tsx",
"src/**/*.vue", "src/**/*.vue",
"*.d.ts", "*.d.ts",
"src/router/index.js", "src/router/index.ts",
"src/router/index.js", "src/router/index.ts",
], ],
"exclude": [ "exclude": [
"./node_modules", "./node_modules",

15
package-lock.json generated
View File

@ -6,6 +6,9 @@
"": { "": {
"dependencies": { "dependencies": {
"vuex": "^4.0.2" "vuex": "^4.0.2"
},
"devDependencies": {
"@types/node": "^18.15.5"
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
@ -20,6 +23,12 @@
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/@types/node": {
"version": "18.15.5",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-18.15.5.tgz",
"integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==",
"dev": true
},
"node_modules/@vue/compiler-core": { "node_modules/@vue/compiler-core": {
"version": "3.2.47", "version": "3.2.47",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
@ -247,6 +256,12 @@
"integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==",
"peer": true "peer": true
}, },
"@types/node": {
"version": "18.15.5",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-18.15.5.tgz",
"integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==",
"dev": true
},
"@vue/compiler-core": { "@vue/compiler-core": {
"version": "3.2.47", "version": "3.2.47",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz",

View File

@ -1,5 +1,8 @@
{ {
"dependencies": { "dependencies": {
"vuex": "^4.0.2" "vuex": "^4.0.2"
},
"devDependencies": {
"@types/node": "^18.15.5"
} }
} }