index.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <div class="page">
  3. <el-card shadow="nover">
  4. <el-menu style="--el-menu-bg-color: transparent; --el-menu-hover-bg-color: rgba(0, 0, 0, 0.2); --el-menu-level: 0;" :default-active="activeName" @select="menuChange" class="el-menu-vertical-demo" size="small">
  5. <el-menu-item index="1">基础配置</el-menu-item>
  6. <el-menu-item index="2">安全配置</el-menu-item>
  7. </el-menu>
  8. </el-card>
  9. <el-card shadow="nover">
  10. <div class="scroll-wrapper">
  11. <BasicVue v-if="activeName === '1'"></BasicVue>
  12. <SafeVue v-else-if="activeName === '2'"></SafeVue>
  13. </div>
  14. </el-card>
  15. </div>
  16. </template>
  17. <script lang="ts" setup>
  18. import { ref } from 'vue';
  19. import BasicVue from "./basic.vue";
  20. import SafeVue from "./safe.vue";
  21. const activeName = ref('1')
  22. function menuChange(index: string) {
  23. activeName.value = index
  24. }
  25. </script>
  26. <style scoped lang="scss">
  27. .page {
  28. display: flex;
  29. justify-content: space-between;
  30. gap: 16px;
  31. .el-card:first-child {
  32. width: 240px;
  33. }
  34. .el-card:last-child {
  35. flex: 1;
  36. }
  37. .el-card ::v-deep(.el-card__body) {
  38. flex: 1;
  39. height: 100%;
  40. overflow-y: auto;
  41. overflow-x: hidden;
  42. }
  43. .el-menu {
  44. width: 200px;
  45. ::v-deep(.el-menu-item) {
  46. height: 40px !important;
  47. line-height: 40px !important;
  48. }
  49. }
  50. }
  51. </style>