AgriculturalDynamics.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <div class="agricultural-dynamics">
  3. <!-- 标题 -->
  4. <div class="title">农情动态</div>
  5. <!-- 标签页导航 -->
  6. <div class="tab-nav">
  7. <div
  8. v-for="tab in tabs"
  9. :key="tab.value"
  10. class="tab-item"
  11. :class="{ active: activeTab === tab.value }"
  12. @click="activeTab = tab.value"
  13. >
  14. {{ tab.label }}
  15. </div>
  16. </div>
  17. <!-- 内容区域 -->
  18. <div class="content-area">
  19. <!-- 气象预警内容 -->
  20. <div v-if="activeTab === 'weather'" class="content-list">
  21. <div class="content-item">
  22. <div class="item-image">
  23. <img src="@/assets/img/home/banner.png" alt="气象预警" />
  24. </div>
  25. <div class="item-content">
  26. <div class="item-text">周边5km出现了高温灼烧气象预警, 请注意某某防范!</div>
  27. <div class="item-date">2022-11-12</div>
  28. </div>
  29. </div>
  30. <div class="content-item">
  31. <div class="item-image">
  32. <img src="@/assets/img/home/banner.png" alt="气象预警" />
  33. </div>
  34. <div class="item-content">
  35. <div class="item-text">周边3km出现了暴雨预警, 请注意防范!</div>
  36. <div class="item-date">2022-11-10</div>
  37. </div>
  38. </div>
  39. </div>
  40. <!-- 农事预警内容 -->
  41. <div v-if="activeTab === 'agricultural'" class="content-list">
  42. <div class="content-item">
  43. <div class="item-image">
  44. <img src="@/assets/img/home/banner.png" alt="农事预警" />
  45. </div>
  46. <div class="item-content">
  47. <div class="item-text">建议进行病虫害防治, 注意观察作物生长情况</div>
  48. <div class="item-date">2022-11-11</div>
  49. </div>
  50. </div>
  51. </div>
  52. <!-- 专家问答内容 -->
  53. <div v-if="activeTab === 'expert'" class="content-list">
  54. <div class="content-item">
  55. <div class="item-image">
  56. <img src="@/assets/img/home/banner.png" alt="专家问答" />
  57. </div>
  58. <div class="item-content">
  59. <div class="item-text">专家解答: 如何提高作物产量? 建议合理施肥...</div>
  60. <div class="item-date">2022-11-09</div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. </template>
  67. <script setup>
  68. import { ref } from "vue";
  69. const activeTab = ref("weather");
  70. const tabs = [
  71. { label: "气象预警", value: "weather" },
  72. { label: "农事预警", value: "agricultural" },
  73. { label: "专家问答", value: "expert" }
  74. ];
  75. </script>
  76. <style scoped lang="scss">
  77. .agricultural-dynamics {
  78. padding: 0 10px;
  79. .title {
  80. font-size: 16px;
  81. font-weight: bold;
  82. color: #1D2129;
  83. margin-bottom: 16px;
  84. }
  85. .tab-nav {
  86. display: flex;
  87. margin-bottom: 16px;
  88. .tab-item {
  89. margin-right: 20px;
  90. font-size: 14px;
  91. &.active {
  92. color: #2199F8;
  93. border-bottom: 2px solid #2199F8;
  94. }
  95. }
  96. }
  97. .content-area {
  98. .content-list {
  99. .content-item {
  100. display: flex;
  101. align-items: center;
  102. .item-image {
  103. width: 114px;
  104. height: 74px;
  105. margin-right: 12px;
  106. flex-shrink: 0;
  107. img {
  108. width: 100%;
  109. height: 100%;
  110. object-fit: cover;
  111. border-radius: 8px;
  112. }
  113. }
  114. .item-content {
  115. flex: 1;
  116. .item-text {
  117. color: #1D2129;
  118. margin-bottom: 10px;
  119. }
  120. .item-date {
  121. color: #86909C;
  122. font-size: 13px;
  123. }
  124. }
  125. }
  126. .content-item + .content-item{
  127. margin-top: 12px;
  128. }
  129. }
  130. }
  131. }
  132. </style>