index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <template>
  2. <div class="leftSideMenu">
  3. <!-- @open="handleOpen" @close="handleClose" -->
  4. <el-menu class="el-menu-vertical-demo" :default-active="props.activeIndex" :collapse-transition="false" :default-openeds="openeds" @select="selectMenu">
  5. <el-sub-menu index="1">
  6. <template #title>
  7. <el-icon>
  8. <location />
  9. </el-icon>
  10. <span>成绩分析</span>
  11. </template>
  12. <el-menu-item index="1-1" >成绩单</el-menu-item>
  13. <el-menu-item index="1-2">三率一分</el-menu-item>
  14. <el-menu-item index="1-3">分数段统计</el-menu-item>
  15. <el-menu-item index="1-4">平均分离差分析</el-menu-item>
  16. <el-menu-item index="1-5">教师统计</el-menu-item>
  17. </el-sub-menu>
  18. <el-sub-menu index="2">
  19. <template #title>
  20. <el-icon>
  21. <document />
  22. </el-icon>
  23. <span>试卷分析</span>
  24. </template>
  25. <el-menu-item index="2-1">总体分析</el-menu-item>
  26. <el-menu-item index="2-2">客观题分析</el-menu-item>
  27. </el-sub-menu>
  28. </el-menu>
  29. </div>
  30. </template>
  31. <script lang="ts" setup>
  32. import { useRouter } from "vue-router";
  33. const router = useRouter();
  34. import { Document, Location, Setting} from '@element-plus/icons-vue';
  35. import { defineProps,defineEmits } from 'vue';
  36. const props = defineProps(['activeIndex']);
  37. const emit = defineEmits(['parentClick'])
  38. const isCollapse = ref(false)
  39. const openeds = ref(['1-1', '1-2', '1-3', '1-4', '1-5', '2-1', '2-2']);
  40. const selectMenu = (key: string, keyPath: string[]) => {
  41. console.log(key);
  42. emit('parentClick', key);
  43. switch (key) {
  44. case '1-1'://成绩单
  45. router.push('cjfx_cjd')
  46. break;
  47. case '1-2'://三率一分
  48. router.push('cjfx_slyf')
  49. break;
  50. case '1-3'://分数段统计
  51. router.push('cjfx_fsdtj')
  52. break;
  53. case '1-4'://平均分离差分析
  54. router.push('cjfx_pjflcfx')
  55. break;
  56. case '1-5'://教师统计
  57. router.push('cjfx_jstj')
  58. break;
  59. case '2-1'://总体分析
  60. router.push('sjfx_ztfx')
  61. break;
  62. case '2-1'://客观题分析
  63. router.push('sjfx_kgtfx')
  64. break;
  65. }
  66. }
  67. //开启
  68. const handleOpen = (key: string, keyPath: string[]) => {
  69. console.log(key, keyPath,"open");
  70. }
  71. const handleClose = (key: string, keyPath: string[]) => {
  72. console.log(key, keyPath,"close")
  73. }
  74. </script>
  75. <style lang="scss" scoped>
  76. </style>