index.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <el-container class="admin-home">
  3. <el-aside width="auto">
  4. <Asider :isCollapse="asideStatus"></Asider>
  5. </el-aside>
  6. <el-container>
  7. <el-header>
  8. <Header
  9. :asideStatus="asideStatus"
  10. @asider-status="asiderStatusChange"
  11. ></Header>
  12. </el-header>
  13. <el-main>
  14. <el-scrollbar style="height: 100%">
  15. <router-view></router-view>
  16. </el-scrollbar>
  17. </el-main>
  18. <el-footer>
  19. <Footer></Footer>
  20. </el-footer>
  21. </el-container>
  22. </el-container>
  23. </template>
  24. <script>
  25. import Asider from './components/Asider';
  26. import Footer from './components/Footer';
  27. import Header from './components/Header';
  28. import { getCache } from '@/utils/admin/tools';
  29. import { USER_AUTH } from '@/utils/admin/ConstantConfig';
  30. export default {
  31. name: 'Home',
  32. components: {
  33. Footer,
  34. Asider,
  35. Header,
  36. },
  37. data() {
  38. return {
  39. asideStatus: false,
  40. };
  41. },
  42. beforeRouteEnter(to, from, next) {
  43. const data = getCache(USER_AUTH);
  44. // 未查询到用户权限 回归登录
  45. if (!data) {
  46. next({ name: 'Login' });
  47. return;
  48. }
  49. next();
  50. },
  51. methods: {
  52. asiderStatusChange() {
  53. this.asideStatus = !this.asideStatus;
  54. },
  55. },
  56. };
  57. </script>
  58. <style lang="scss" scoped>
  59. .admin-home {
  60. flex: 1;
  61. height: 100vh;
  62. .el-header, .el-footer {
  63. background-color: #B3C0D1;
  64. color: #333;
  65. text-align: center;
  66. line-height: 60px;
  67. height: 60px;
  68. overflow: hidden;
  69. }
  70. .el-aside {
  71. background-color: #D3DCE6;
  72. color: #333;
  73. text-align: center;
  74. }
  75. .el-main {
  76. background-color: #E9EEF3;
  77. color: #333;
  78. /*padding: 30px 0 30px 30px;*/
  79. padding: 0;
  80. ::v-deep .el-scrollbar__wrap {
  81. overflow-x: hidden;
  82. }
  83. }
  84. }
  85. </style>