Index.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template>
  2. <div class="page-index">
  3. <pageHeader></pageHeader>
  4. <div class="second-view">
  5. <keep-alive>
  6. <router-view v-if="$route.meta.keeplive"></router-view>
  7. </keep-alive>
  8. <router-view v-if="!$route.meta.keeplive"></router-view>
  9. </div>
  10. </div>
  11. </template>
  12. <script>
  13. import pageHeader from "@/components/Header.vue";
  14. import { getUserInfo } from "@/api/user.js";
  15. import { mapState, mapGetters, mapActions, mapMutations } from "vuex";
  16. export default {
  17. components: {
  18. pageHeader
  19. },
  20. created() {
  21. if (!this.getuserinfo || !this.getuserinfo.pid) this.loadUserInfo();
  22. },
  23. computed: {
  24. ...mapGetters(["getuserinfo"])
  25. },
  26. methods: {
  27. async loadUserInfo() {
  28. let res = await getUserInfo();
  29. if (res.ResultCode == 0) {
  30. await this.setInfo(res.Data);
  31. }
  32. },
  33. ...mapActions({
  34. setInfo: "user/setUserinfoAndPermissions"
  35. }),
  36. }
  37. };
  38. </script>
  39. <style lang="scss" scoped>
  40. .page-index {
  41. height: 100vh;
  42. display: flex;
  43. flex-direction: column;
  44. box-sizing: border-box;
  45. }
  46. .second-view {
  47. padding: 5px 5px 5px;
  48. // height: 20%;
  49. // height: 780px;
  50. // height: 818px;
  51. // height: 526px;
  52. flex: 1;
  53. box-sizing: border-box;
  54. overflow: auto;
  55. // background: red;
  56. }
  57. </style>