index.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <template>
  2. <div class="winseaview-contail" :class="{'winseaview--collapse':isCollapse}">
  3. <!-- <screenshot></screenshot> -->
  4. <div class="winseaview-header">
  5. <!-- 顶部导航栏 -->
  6. <top />
  7. <div> <sy-Click :titles="openRoute" @removeElseTag='removeElseTag'></sy-Click></div>
  8. </div>
  9. <div class="winseaview-layout">
  10. <div class="winseaview-left">
  11. <!-- 左侧导航栏 -->
  12. <sidebar />
  13. </div>
  14. <div class="winseaview-main">
  15. <!-- 顶部标签卡 -->
  16. <tags />
  17. <!-- 主体视图层 -->
  18. <BaseContainer id="layout_body">
  19. <keep-alive>
  20. <router-view class="winseaview-view" v-if="$route.meta.keepAlive" />
  21. </keep-alive>
  22. <router-view class="winseaview-view" v-if="!$route.meta.keepAlive" />
  23. </BaseContainer>
  24. </div>
  25. </div>
  26. <div class="winseaview-shade" @click="showCollapse"></div>
  27. </div>
  28. </template>
  29. <script>
  30. import {
  31. mapActions,
  32. mapGetters
  33. } from 'vuex';
  34. import screenshot from './screenshot';
  35. import syClick from '@/components/syClick'
  36. import tags from './tags';
  37. import top from './top/';
  38. import sidebar from './sidebar/';
  39. import {
  40. getScreen
  41. } from '@/utils/assist';
  42. // import { validatenull } from "@/utils/validate";
  43. // import { getStore } from "@/utils/store.js";
  44. export default {
  45. components: {
  46. top,
  47. tags,
  48. sidebar,
  49. screenshot,
  50. syClick,
  51. },
  52. name: 'index',
  53. data() {
  54. return {
  55. //刷新token锁
  56. refreshLock: false,
  57. //刷新token的时间
  58. refreshTime: '',
  59. // 标签页
  60. };
  61. },
  62. created() {
  63. //实时检测刷新token
  64. this.refreshToken();
  65. },
  66. mounted() {
  67. this.init();
  68. },
  69. computed: mapGetters(['isLock', 'isCollapse', 'website','openRoute']),
  70. props: [],
  71. methods: {
  72. ...mapActions(['setScreen']),
  73. removeAll(){
  74. },
  75. removeTab(){
  76. },
  77. changeTag(){
  78. },
  79. removeElseTag(){
  80. var arr=[this.openRoute.find((item)=>{return item.showClick==true})]
  81. console.log(arr)
  82. this.$store.commit('user/SET_OPEN_ROUTE',arr);
  83. },
  84. showCollapse() {
  85. this.$store.commit('SET_COLLAPSE');
  86. },
  87. // 屏幕检测
  88. init() {
  89. this.setScreen(getScreen());
  90. window.onresize = () => {
  91. setTimeout(() => {
  92. this.setScreen(getScreen());
  93. }, 0);
  94. };
  95. },
  96. // 10分钟检测一次token
  97. refreshToken() {
  98. /*this.refreshTime = setInterval(() => {
  99. const token = getStore({
  100. name: "token",
  101. debug: true
  102. });
  103. const date = calcDate(token.datetime, new Date().getTime());
  104. if (validatenull(date)) return;
  105. if (!(date.seconds >= this.website.tokenTime) && !this.refreshLock) {
  106. this.refreshLock = true;
  107. this.$store
  108. .dispatch("RefeshToken")
  109. .then(() => {
  110. this.refreshLock = false;
  111. })
  112. .catch(() => {
  113. this.refreshLock = false;
  114. });
  115. }
  116. }, 10000);*/
  117. }
  118. }
  119. };
  120. </script>
  121. <style>
  122. .bottom{
  123. text-align:center;
  124. margin-top:10px;
  125. }
  126. </style>