member.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <template>
  2. <el-container class="w-screen h-screen">
  3. <el-main class="p-0 min-w-[1200px]" id="main">
  4. <el-header class="z-10 sticky top-0">
  5. <layout-header />
  6. <layout-nav />
  7. </el-header>
  8. <div class="bg-page pt-6">
  9. <div class="main-container flex justify-between">
  10. <sidebar></sidebar>
  11. <div v-if="agreeShow"><slot></slot></div>
  12. <div v-else><layout-error ></layout-error></div>
  13. </div>
  14. </div>
  15. <layout-footer />
  16. <layout-fixed />
  17. </el-main>
  18. </el-container>
  19. </template>
  20. <script lang="ts" setup>
  21. import layoutHeader from './default/components/header/index.vue'
  22. import layoutFooter from './default/components/footer/index.vue'
  23. import layoutNav from './default/components/nav/index.vue'
  24. import layoutFixed from './default/components/fiexd/index.vue'
  25. import layoutError from './default/components/error/index.vue'
  26. import sidebar from '@/components/sidebar/index.vue'
  27. import { getToken } from '@/utils/common'
  28. import { useRouter, useRoute } from 'vue-router'
  29. const router = useRouter()
  30. let agreeShow = ref(false)
  31. watch(()=>({ path: router.currentRoute.value.path, token: getToken() }) ,(newValue)=>{
  32. if(newValue.path === '/auth/agreement' || newValue.token){
  33. agreeShow.value = true
  34. }else{
  35. agreeShow.value = false
  36. }
  37. },{immediate:true,deep: true})
  38. </script>
  39. <style lang="scss" scoped>
  40. .el-header {
  41. --el-header-padding: 0;
  42. height: 188px;
  43. }
  44. .el-main {
  45. --el-main-padding: 0;
  46. }
  47. </style>