index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <template>
  2. <div class="hospital">
  3. <!-- 左侧导航栏区域 -->
  4. <div class="menu">
  5. <div class="top">
  6. <el-icon><HomeFilled /></el-icon>
  7. <span> / 医院信息</span>
  8. </div>
  9. <el-menu :default-active="$route.path" class="el-menu-vertical-demo">
  10. <el-menu-item
  11. index="/hospital/register"
  12. @click="changeActive('/hospital/register')"
  13. >
  14. <el-icon><icon-menu /></el-icon>
  15. <span>预约挂号</span>
  16. </el-menu-item>
  17. <el-menu-item
  18. index="/hospital/detail"
  19. @click="changeActive('/hospital/detail')"
  20. >
  21. <el-icon><document /></el-icon>
  22. <span>医院详情</span>
  23. </el-menu-item>
  24. <el-menu-item
  25. index="/hospital/notice"
  26. @click="changeActive('/hospital/notice')"
  27. >
  28. <el-icon><setting /></el-icon>
  29. <span>预约通知</span>
  30. </el-menu-item>
  31. <el-menu-item
  32. index="/hospital/close"
  33. @click="changeActive('/hospital/close')"
  34. >
  35. <el-icon><InfoFilled /></el-icon>
  36. <span>停诊信息</span>
  37. </el-menu-item>
  38. <el-menu-item
  39. index="/hospital/search"
  40. @click="changeActive('/hospital/search')"
  41. >
  42. <el-icon><Search /></el-icon>
  43. <span>查询/取消</span>
  44. </el-menu-item>
  45. </el-menu>
  46. </div>
  47. <!-- 右侧内容展示区域 -->
  48. <div class="content">
  49. <router-view></router-view>
  50. </div>
  51. </div>
  52. </template>
  53. <script setup lang="ts">
  54. import {
  55. Document,
  56. Menu as IconMenu,
  57. Setting,
  58. InfoFilled,
  59. Search,
  60. HomeFilled,
  61. } from "@element-plus/icons-vue";
  62. import { onMounted } from "vue";
  63. import useDetaileStore from "@/store/modules/hospitalDetail";
  64. import { useRouter, useRoute } from "vue-router";
  65. let $router = useRouter();
  66. //获取当前路由信息
  67. let $route = useRoute();
  68. console.log($route.path);
  69. //获取仓库对象
  70. let detailStore = useDetaileStore();
  71. //左侧菜单点击事件
  72. const changeActive = (path: string) => {
  73. $router.push({
  74. path,
  75. });
  76. };
  77. //组件挂载完: 通知pinia仓库发送请求来获取详情的数据
  78. onMounted(() => {
  79. //获取医院详情数据
  80. detailStore.getHospital($route.query.hoscode);
  81. });
  82. </script>
  83. <style scoped lang="scss">
  84. .hospital {
  85. display: flex;
  86. .menu {
  87. flex: 2;
  88. display: flex;
  89. flex-direction: column;
  90. align-items: center;
  91. .top {
  92. color: #7f7f7f;
  93. }
  94. }
  95. .content {
  96. flex: 8;
  97. }
  98. }
  99. </style>