diff --git a/src/App.vue b/src/App.vue index 82eb1989..00be36f0 100644 --- a/src/App.vue +++ b/src/App.vue @@ -7,6 +7,31 @@ import { storageKey } from '@/utils/constants' export default { name: 'App', + mounted () { + // 浏览器控制按钮前进后退触发函数 + window.addEventListener('popstate', this.popstate, false) + }, + unmounted () { + window.removeEventListener('popstate', this.popstate, false) + }, + methods: { + popstate () { + const historyJSON = sessionStorage.getItem(storageKey.history) + if (history) { + const history = JSON.parse(historyJSON) + if (history.index > -1) { + history.index-- + } else { + history.index = history.history.length - 3 + } + sessionStorage.setItem(storageKey.history, JSON.stringify(history)) + this.$router.push({ + path: history.history[history.index].path, + query: history.history[history.index].query + }) + } + } + }, setup () { // 处理刷新后 $dayJs的时区变为默认的问题 const timezone = localStorage.getItem(storageKey.sysTimezone) || '' diff --git a/src/components/layout/Header.vue b/src/components/layout/Header.vue index e7dd0b5b..69270238 100644 --- a/src/components/layout/Header.vue +++ b/src/components/layout/Header.vue @@ -73,10 +73,10 @@