Parcourir la Source

修复 打开一个tab,浏览器F5刷新之后,再次点击tab里面的刷新当前tab页,结果跳到了home页 #72

daxiongYang 6 ans auparavant
Parent
commit
7d2db4b76f
3 fichiers modifiés avec 19 ajouts et 2 suppressions
  1. 5 0
      src/store/modules/common.js
  2. 2 1
      src/views/main-content.vue
  3. 12 1
      src/views/main.vue

+ 5 - 0
src/store/modules/common.js

@ -12,6 +12,8 @@ export default {
12 12
    // 侧边栏, 菜单
13 13
    menuList: [],
14 14
    menuActiveName: '',
15
    // 内容, 是否需要刷新
16
    contentIsNeedRefresh: false,
15 17
    // 主入口标签页
16 18
    mainTabs: [],
17 19
    mainTabsActiveName: ''
@ -35,6 +37,9 @@ export default {
35 37
    updateMenuActiveName (state, name) {
36 38
      state.menuActiveName = name
37 39
    },
40
    updateContentIsNeedRefresh (state, status) {
41
      state.contentIsNeedRefresh = status
42
    },
38 43
    updateMainTabs (state, tabs) {
39 44
      state.mainTabs = tabs
40 45
    },

+ 2 - 1
src/views/main-content.vue

@ -13,7 +13,7 @@
13 13
          <el-dropdown-item @click.native="tabsCloseCurrentHandle">关闭当前标签页</el-dropdown-item>
14 14
          <el-dropdown-item @click.native="tabsCloseOtherHandle">关闭其它标签页</el-dropdown-item>
15 15
          <el-dropdown-item @click.native="tabsCloseAllHandle">关闭全部标签页</el-dropdown-item>
16
          <el-dropdown-item @click.native="tabsRefreshCurrentHandle">刷新当前标签页</el-dropdown-item>
16
          <el-dropdown-item @click.native="refresh()">刷新当前标签页</el-dropdown-item>
17 17
        </el-dropdown-menu>
18 18
      </el-dropdown>
19 19
      <el-tab-pane
@ -45,6 +45,7 @@
45 45
<script>
46 46
  import { isURL } from '@/utils/validate'
47 47
  export default {
48
    inject: ['refresh'],
48 49
    data () {
49 50
      return {
50 51
      }

+ 12 - 1
src/views/main.vue

@ -8,7 +8,7 @@
8 8
      <main-navbar />
9 9
      <main-sidebar />
10 10
      <div class="site-content__wrapper" :style="{ 'min-height': documentClientHeight + 'px' }">
11
        <main-content />
11
        <main-content v-if="!$store.state.common.contentIsNeedRefresh" />
12 12
      </div>
13 13
    </template>
14 14
  </div>
@ -19,6 +19,17 @@
19 19
  import MainSidebar from './main-sidebar'
20 20
  import MainContent from './main-content'
21 21
  export default {
22
    provide () {
23
      return {
24
        // 刷新
25
        refresh () {
26
          this.$store.commit('common/updateContentIsNeedRefresh', true)
27
          this.$nextTick(() => {
28
            this.$store.commit('common/updateContentIsNeedRefresh', false)
29
          })
30
        }
31
      }
32
    },
22 33
    data () {
23 34
      return {
24 35
        loading: true