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

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

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

+ 12 - 1
src/views/main.vue

8
      <main-navbar />
8
      <main-navbar />
9
      <main-sidebar />
9
      <main-sidebar />
10
      <div class="site-content__wrapper" :style="{ 'min-height': documentClientHeight + 'px' }">
10
      <div class="site-content__wrapper" :style="{ 'min-height': documentClientHeight + 'px' }">
11
        <main-content />
11
        <main-content v-if="!$store.state.common.contentIsNeedRefresh" />
12
      </div>
12
      </div>
13
    </template>
13
    </template>
14
  </div>
14
  </div>
19
  import MainSidebar from './main-sidebar'
19
  import MainSidebar from './main-sidebar'
20
  import MainContent from './main-content'
20
  import MainContent from './main-content'
21
  export default {
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
    data () {
33
    data () {
23
      return {
34
      return {
24
        loading: true
35
        loading: true