index.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <el-container class="hc-layout-main">
  3. <el-aside class="hc-layout-aside" width="200px">
  4. <hc-body class="hc-layout-aside-body">
  5. <div class="hc-layout-aside-logo hc-flex-center h-[46px]">
  6. <img :src="logoPng" alt="logo" class="w-[26px]">
  7. <span class="ml-[6px] text-[22px] font-bold">数据分析系统</span>
  8. <hc-upload-bar />
  9. </div>
  10. <div class="hc-layout-aside-menu">
  11. <MenuBar :cur="menuBarKey" :datas="menuBarData" @change="menuBarChange" />
  12. </div>
  13. <div class="hc-layout-aside-user">
  14. <UserInfoBar @load="userInfoLoad" />
  15. </div>
  16. </hc-body>
  17. </el-aside>
  18. <el-main class="hc-layout-page">
  19. <hc-body id="hc-main-box">
  20. <router-view />
  21. </hc-body>
  22. </el-main>
  23. </el-container>
  24. </template>
  25. <script setup>
  26. import { onMounted, ref } from 'vue'
  27. import { useAppStore } from '~src/store'
  28. import { useRoute, useRouter } from 'vue-router'
  29. import { getMenuData } from '~src/router/routers'
  30. import { initButtons } from '~store/app'
  31. //logo文件
  32. import logoPng from '~src/assets/logo/logo.png'
  33. //初始组合式
  34. const router = useRouter()
  35. const useRoutes = useRoute()
  36. const store = useAppStore()
  37. //子组件
  38. import MenuBar from './modules/MenuBar.vue'
  39. import UserInfoBar from './modules/UserInfoBar.vue'
  40. //菜单数据
  41. const menuBarKey = ref(useRoutes?.meta?.parent || useRoutes.name)
  42. const menuBarData = ref(store.menus)
  43. // const menuBarData = ref([])
  44. //渲染完成
  45. onMounted(async () => {
  46. initButtons()
  47. menuBarData.value = await getMenuData()
  48. console.log(menuBarData.value, 'menuBarData')
  49. })
  50. //菜单被点击
  51. const menuBarChange = ({ code }) => {
  52. menuBarKey.value = code
  53. router.push({ name: code })
  54. }
  55. //用户信息
  56. const userInfoLoad = (data) => {
  57. console.log('用户信息', data)
  58. }
  59. </script>
  60. <style lang="scss">
  61. @import "./index.scss";
  62. </style>