StudyEffect.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <div class="study-effect">
  3. <div class="m-card">
  4. <div class="m-card-hd">
  5. <div class="title">研学成效数据</div>
  6. </div>
  7. <div class="m-card-bd">
  8. <div class="effect-content">
  9. <div class="effect-item">
  10. <div class="item-value">1200+</div>
  11. <div class="item-label">参与学生</div>
  12. </div>
  13. <div class="effect-item">
  14. <div class="item-value">50+</div>
  15. <div class="item-label">研学课程</div>
  16. </div>
  17. <div class="effect-item">
  18. <div class="item-value">20+</div>
  19. <div class="item-label">合作学校</div>
  20. </div>
  21. <div class="effect-item">
  22. <div class="item-value">98%</div>
  23. <div class="item-label">满意度</div>
  24. </div>
  25. </div>
  26. <div class="effect-chart">
  27. <div class="chart-title">近一年研学活动趋势</div>
  28. <div class="chart-content">
  29. <div class="chart-bar">
  30. <div class="bar" style="height: 30%"></div>
  31. <div class="bar-label">1月</div>
  32. </div>
  33. <div class="chart-bar">
  34. <div class="bar" style="height: 45%"></div>
  35. <div class="bar-label">3月</div>
  36. </div>
  37. <div class="chart-bar">
  38. <div class="bar" style="height: 80%"></div>
  39. <div class="bar-label">6月</div>
  40. </div>
  41. <div class="chart-bar">
  42. <div class="bar" style="height: 60%"></div>
  43. <div class="bar-label">9月</div>
  44. </div>
  45. <div class="chart-bar">
  46. <div class="bar" style="height: 95%"></div>
  47. <div class="bar-label">12月</div>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. </template>
  55. <script setup>
  56. </script>
  57. <style lang="scss">
  58. .study-effect {
  59. height: 100%;
  60. .m-card {
  61. height: 100%;
  62. display: flex;
  63. flex-direction: column;
  64. .m-card-hd {
  65. padding: 15px 20px;
  66. border-bottom: 1px solid rgba(48, 220, 255, 0.3);
  67. .title {
  68. font-size: 18px;
  69. font-weight: bold;
  70. color: #30dcfd;
  71. }
  72. }
  73. .m-card-bd {
  74. flex: 1;
  75. padding: 20px;
  76. display: flex;
  77. flex-direction: column;
  78. justify-content: space-between;
  79. .effect-content {
  80. display: grid;
  81. grid-template-columns: 1fr 1fr;
  82. gap: 15px;
  83. margin-bottom: 20px;
  84. .effect-item {
  85. background: rgba(0, 20, 40, 0.5);
  86. border: 1px solid rgba(48, 220, 255, 0.2);
  87. border-radius: 8px;
  88. padding: 15px;
  89. text-align: center;
  90. .item-value {
  91. font-size: 24px;
  92. font-weight: bold;
  93. color: #30dcfd;
  94. margin-bottom: 5px;
  95. }
  96. .item-label {
  97. font-size: 12px;
  98. color: rgba(255, 255, 255, 0.8);
  99. }
  100. }
  101. }
  102. .effect-chart {
  103. flex: 1;
  104. .chart-title {
  105. font-size: 14px;
  106. font-weight: bold;
  107. color: white;
  108. margin-bottom: 15px;
  109. }
  110. .chart-content {
  111. display: flex;
  112. align-items: flex-end;
  113. justify-content: space-around;
  114. height: 120px;
  115. .chart-bar {
  116. display: flex;
  117. flex-direction: column;
  118. align-items: center;
  119. gap: 5px;
  120. .bar {
  121. width: 20px;
  122. background: linear-gradient(to top, #30dcfd, rgba(48, 220, 255, 0.3));
  123. border-radius: 4px 4px 0 0;
  124. transition: height 1s ease;
  125. }
  126. .bar-label {
  127. font-size: 10px;
  128. color: rgba(255, 255, 255, 0.6);
  129. }
  130. }
  131. }
  132. }
  133. }
  134. }
  135. }
  136. </style>