index.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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 class="bottom">
  25. <div class="row1">
  26. Copyright www.eliangeyun.com All Right Reserved @淘粮(海南)科技发展有限公司 </div>
  27. <div class="">
  28. <a href="https://beian.miit.gov.cn">琼ICP备2021004821号-2</a>
  29. </div>
  30. </div> -->
  31. </div>
  32. </div>
  33. <div class="winseaview-shade" @click="showCollapse"></div>
  34. </div>
  35. </template>
  36. <script>
  37. import {
  38. mapActions,
  39. mapGetters
  40. } from 'vuex';
  41. import screenshot from './screenshot';
  42. import syClick from '@/components/syClick'
  43. import tags from './tags';
  44. import top from './top/';
  45. import sidebar from './sidebar/';
  46. import {
  47. getScreen
  48. } from '@/utils/assist';
  49. // import { validatenull } from "@/utils/validate";
  50. // import { getStore } from "@/utils/store.js";
  51. export default {
  52. components: {
  53. top,
  54. tags,
  55. sidebar,
  56. screenshot,
  57. syClick,
  58. },
  59. name: 'index',
  60. data() {
  61. return {
  62. //刷新token锁
  63. refreshLock: false,
  64. //刷新token的时间
  65. refreshTime: '',
  66. // 标签页
  67. };
  68. },
  69. created() {
  70. //实时检测刷新token
  71. this.refreshToken();
  72. },
  73. mounted() {
  74. this.init();
  75. },
  76. computed: mapGetters(['isLock', 'isCollapse', 'website','openRoute']),
  77. props: [],
  78. methods: {
  79. ...mapActions(['setScreen']),
  80. removeAll(){
  81. },
  82. removeTab(){
  83. },
  84. changeTag(){
  85. },
  86. removeElseTag(){
  87. var arr=[this.openRoute.find((item)=>{return item.showClick==true})]
  88. console.log(arr)
  89. this.$store.commit('user/SET_OPEN_ROUTE',arr);
  90. },
  91. showCollapse() {
  92. this.$store.commit('SET_COLLAPSE');
  93. },
  94. // 屏幕检测
  95. init() {
  96. this.setScreen(getScreen());
  97. window.onresize = () => {
  98. setTimeout(() => {
  99. this.setScreen(getScreen());
  100. }, 0);
  101. };
  102. },
  103. // 10分钟检测一次token
  104. refreshToken() {
  105. /*this.refreshTime = setInterval(() => {
  106. const token = getStore({
  107. name: "token",
  108. debug: true
  109. });
  110. const date = calcDate(token.datetime, new Date().getTime());
  111. if (validatenull(date)) return;
  112. if (!(date.seconds >= this.website.tokenTime) && !this.refreshLock) {
  113. this.refreshLock = true;
  114. this.$store
  115. .dispatch("RefeshToken")
  116. .then(() => {
  117. this.refreshLock = false;
  118. })
  119. .catch(() => {
  120. this.refreshLock = false;
  121. });
  122. }
  123. }, 10000);*/
  124. }
  125. }
  126. };
  127. </script>
  128. <style>
  129. .bottom{
  130. text-align:center;
  131. margin-top:10px;
  132. }
  133. </style>