exhibition.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <template>
  2. <div class="main">
  3. <div class="content">
  4. <sub-header />
  5. <div class="left">
  6. <n-tabs type="line" pane-class="tab-content">
  7. <template #prefix>
  8. <span class="meta-title">
  9. <img src="img/subtitle_2.png" />
  10. </span>
  11. </template>
  12. <n-tab-pane name="all" tab="全部展览">
  13. <n-grid :x-gap="XGap" :y-gap="YGap" :cols="1" class="tab-grid">
  14. <template v-for="(_, index) in 16">
  15. <n-gi>
  16. <exhibition-box
  17. :id="index + 1"
  18. title="第一部分——高举新旗帜"
  19. cover="https://07akioni.oss-cn-beijing.aliyuncs.com/07akioni.jpeg"
  20. content="这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段..."
  21. location="2号楼 1号厅"
  22. type="常设展览"
  23. isHasVR
  24. />
  25. </n-gi>
  26. </template>
  27. </n-grid>
  28. </n-tab-pane>
  29. <n-tab-pane name="normal" tab="常设展览">
  30. <n-grid :x-gap="XGap" :y-gap="YGap" :cols="1" class="tab-grid">
  31. <template v-for="item in 16">
  32. <n-gi>
  33. <exhibition-box
  34. title="卡片"
  35. cover="https://07akioni.oss-cn-beijing.aliyuncs.com/07akioni.jpeg"
  36. content="这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段..."
  37. location="2号楼 2号厅"
  38. type="常设展览"
  39. isHasVR
  40. />
  41. </n-gi>
  42. </template>
  43. </n-grid>
  44. </n-tab-pane>
  45. <n-tab-pane name="special" tab="专题展览">
  46. <n-grid :x-gap="XGap" :y-gap="YGap" :cols="1" class="tab-grid">
  47. <template v-for="item in 16">
  48. <n-gi>
  49. <exhibition-box
  50. title="卡片"
  51. cover="https://07akioni.oss-cn-beijing.aliyuncs.com/07akioni.jpeg"
  52. content="这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段..."
  53. location="2号楼 1号厅"
  54. type="常设展览"
  55. isHasVR
  56. />
  57. </n-gi>
  58. </template>
  59. </n-grid>
  60. </n-tab-pane>
  61. <n-tab-pane name="temp" tab="临时展览">
  62. <n-grid :y-gap="YGap" :cols="1" class="tab-grid">
  63. <template v-for="item in 16">
  64. <n-gi>
  65. <exhibition-box
  66. title="这是一段标题这是一段标题"
  67. cover="https://07akioni.oss-cn-beijing.aliyuncs.com/07akioni.jpeg"
  68. content="这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段..."
  69. location="2号楼 2号厅"
  70. type="常设展览"
  71. isHasVR
  72. />
  73. </n-gi>
  74. </template>
  75. </n-grid>
  76. </n-tab-pane>
  77. </n-tabs>
  78. </div>
  79. <side-menu />
  80. </div>
  81. </div>
  82. </template>
  83. <script setup>
  84. import { onMounted } from "vue";
  85. import { useFullscreen } from "@vueuse/core";
  86. import subHeader from "../components/subHeader";
  87. import sideMenu from "../components/sideMenu";
  88. import exhibitionBox from "../components/exhibitionBox";
  89. import { useInfoStore } from "../store/info";
  90. const XGap = ref(50);
  91. const YGap = ref(50);
  92. const { isFullscreen, enter, exit, toggle } = useFullscreen();
  93. const InfoStore = useInfoStore();
  94. onMounted(() => {
  95. InfoStore.getData();
  96. });
  97. </script>
  98. <style lang="scss" scoped>
  99. :deep(.n-tabs) {
  100. --n-tab-font-size: 1.25rem !important;
  101. --n-tab-gap: 60px !important;
  102. --n-pane-padding-top: 3.125rem !important;
  103. --n-pane-padding-bottom: 3.125rem !important;
  104. height: 100%;
  105. overflow: hidden;
  106. .n-tab-pane {
  107. overflow-y: scroll;
  108. }
  109. .n-tabs-bar {
  110. height: 0.25rem;
  111. border-radius: 1.875rem !important;
  112. }
  113. }
  114. .tab-content {
  115. width: calc(100% - 12rem);
  116. margin: 0 auto;
  117. &::-webkit-scrollbar {
  118. display: none;
  119. }
  120. }
  121. </style>