diff --git a/src/App.vue b/src/App.vue
index 0ca0af0376de2dd16347b8ad1675e0133f74d3b2..f4f1f3e04f6e8bf2c8b3e7b7cfaeec962d86c283 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -46,6 +46,9 @@ import login from "@/page/login/index.vue";
import page404 from "@/page/404.vue";
import register from "@/page/register/index.vue";
import password from "@/page/password/index.vue";
+import { clearCookie } from "@/services/cookie.js";
+import { resetRouter } from "@/router/index";
+
export default {
components: {
bgMenu,
@@ -111,8 +114,64 @@ export default {
created() {
// this.initMsg()
},
- mounted() {},
+ mounted() {
+ this.getSysOptions();
+ },
methods: {
+ /**
+ * 设置用户多久不操作就跳转到登录界面
+ * limit:用户无操作时常限制(分钟)
+ */
+
+ exitSystemAfterLimit(limit) {
+ window.lastOperateTime = new Date();
+ window.onload = this.addOperateListener;
+ this.setTimer(limit);
+ },
+ //绑定用户操作事件
+ addOperateListener() {
+ document.addEventListener("mousemove", this.resetStartTime);
+ document.addEventListener("keydown", this.resetStartTime);
+ document.addEventListener("scroll", this.resetStartTime);
+ document.addEventListener("touchstart", this.resetStartTime);
+ },
+ //重置起始时间
+ resetStartTime() {
+ window.lastOperateTime = new Date();
+ },
+ //设置定时器
+ setTimer(limit) {
+ window.logTimer = setInterval(() => {
+ var currentTime = new Date();
+ var timeDiff = currentTime.getTime() - lastOperateTime.getTime();
+ if (timeDiff > limit * 60 * 1000) {
+ clearInterval(window.logTimer);
+ this.$axios.post(`/apaas/system/v5/user/logout`).then((res) => {
+ if (res.data.code == "200") {
+ window.location.href = `/apaas/manage/ui/#/login`;
+ this.$store.commit("setUserInfo", null);
+ clearCookie("bgToken");
+ this.$message.success("退出成功");
+ resetRouter();
+ } else {
+ this.$message.error("退出失败");
+ }
+ });
+ }
+ }, 1000);
+ },
+
+ getSysOptions() {
+ axios.get(`/apaas/system/v5/sysOptions`).then((res) => {
+ if (res.data.code == 200) {
+ const result = res.data.data || {};
+ if (result.session_validity) this.exitSystemAfterLimit(result.session_validity);
+ } else {
+ this.$message.error(res.data.data);
+ }
+ });
+ },
+
openMsg(data) {
this.readFlag = !this.readFlag;
},
diff --git a/src/lipeng.vue b/src/lipeng.vue
new file mode 100644
index 0000000000000000000000000000000000000000..a35256f1a4db8092e88d8e6df091b5d8e4672c87
--- /dev/null
+++ b/src/lipeng.vue
@@ -0,0 +1,257 @@
+
+
+
+
+
+
diff --git a/src/page/index.vue b/src/page/index.vue
index 31f068e54688fdec873797f7c67f2ff0422b2c15..5c2df27f99669a3bfc806429cef90a245b2cdbf5 100644
--- a/src/page/index.vue
+++ b/src/page/index.vue
@@ -1,40 +1,22 @@
-
-
-
+
+
+
-
+
diff --git a/src/page/login/index.vue b/src/page/login/index.vue
index 63ab0539b856deabbc81a1a4c29e1741b8addf15..7b0ca0a6dd56a429c3a2eb6ab509710547d7613e 100644
--- a/src/page/login/index.vue
+++ b/src/page/login/index.vue
@@ -107,6 +107,7 @@ const getSysOptions = () => {
axios.get(`/apaas/system/v5/sysOptions`).then((res) => {
if (res.data.code == 200) {
const result = res.data.data || {};
+ if (result.session_validity) exitSystemAfterLimit(result.session_validity);
if (result.license_dead_date && result.license_inform_day) {
calculateValidityDays(
new Date().getTime(),