国外MOSE官网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

142 lines
3.2 KiB

4 days ago
  1. <template>
  2. <view class="volunteer-features">
  3. <view class="features-container">
  4. <!-- 左侧成为志愿者 -->
  5. <view class="feature-block left-feature" @click="navigateTo('/subPages/index/volunteerApply')">
  6. <image class="feature-bg" src="/static/成为志愿者.png" mode="aspectFill"></image>
  7. <view class="feature-content">
  8. <view class="feature-info">
  9. <text class="feature-title">成为志愿者</text>
  10. <text class="feature-desc">加入我们的行列</text>
  11. <image class="arrow-icon" src="/static/志愿者箭头.png" mode="aspectFit"></image>
  12. </view>
  13. </view>
  14. </view>
  15. <!-- 右侧两个功能 -->
  16. <view class="right-features">
  17. <!-- 组织介绍 -->
  18. <view class="feature-block right-feature" @click="navigateTo('/subPages/index/organizationIntroduction')">
  19. <image class="feature-bg" src="/static/组织介绍.png" mode="aspectFill"></image>
  20. <view class="feature-content">
  21. <view class="feature-info">
  22. <text class="feature-title">组织介绍</text>
  23. <text class="feature-desc">了解我们的组织</text>
  24. <image class="arrow-icon" src="/static/组织箭头.png" mode="aspectFit"></image>
  25. </view>
  26. </view>
  27. </view>
  28. <!-- 活动日历 -->
  29. <view class="feature-block right-feature" @click="navigateTo('/subPages/index/activityCalendar')">
  30. <image class="feature-bg" src="/static/活动日历.png" mode="aspectFill"></image>
  31. <view class="feature-content">
  32. <view class="feature-info">
  33. <text class="feature-title">活动日历</text>
  34. <text class="feature-desc">查看近期活动安排</text>
  35. <image class="arrow-icon" src="/static/活动箭头.png" mode="aspectFit"></image>
  36. </view>
  37. </view>
  38. </view>
  39. </view>
  40. </view>
  41. </view>
  42. </template>
  43. <script>
  44. export default {
  45. name: 'VolunteerFeatures',
  46. data() {
  47. return {}
  48. },
  49. methods: {
  50. navigateTo(url) {
  51. uni.navigateTo({
  52. url
  53. })
  54. }
  55. }
  56. }
  57. </script>
  58. <style lang="scss" scoped>
  59. .volunteer-features {
  60. margin: 20rpx;
  61. .features-container {
  62. display: flex;
  63. gap: 40rpx;
  64. height: 400rpx;
  65. .feature-block {
  66. position: relative;
  67. border-radius: 20rpx;
  68. overflow: hidden;
  69. }
  70. .left-feature {
  71. flex: 1;
  72. height: 100%;
  73. }
  74. .feature-bg {
  75. position: absolute;
  76. top: 0;
  77. left: 0;
  78. width: 100%;
  79. height: 100%;
  80. object-fit: cover;
  81. z-index: 1;
  82. }
  83. .right-features {
  84. flex: 1;
  85. display: flex;
  86. flex-direction: column;
  87. gap: 20rpx;
  88. .right-feature {
  89. flex: 1;
  90. }
  91. }
  92. .feature-content {
  93. position: absolute;
  94. top: 0;
  95. left: 0;
  96. right: 0;
  97. padding: 30rpx;
  98. display: flex;
  99. justify-content: space-between;
  100. align-items: flex-end;
  101. // background: linear-gradient(to top, rgba(0,0,0,0.6), rgba(0,0,0,0));
  102. z-index: 2;
  103. .feature-info {
  104. display: flex;
  105. flex-direction: column;
  106. gap: 10rpx;
  107. .feature-title {
  108. font-size: 32rpx;
  109. // font-weight: bold;
  110. color: #000000;
  111. margin-bottom: 5rpx;
  112. }
  113. .feature-desc {
  114. font-size: 20rpx;
  115. color: #999999;
  116. }
  117. .arrow-icon {
  118. width: 54rpx;
  119. height: 29rpx;
  120. margin-left: 20rpx;
  121. // position: absolute;
  122. // right: 15rpx;
  123. // bottom: 15rpx;
  124. }
  125. }
  126. }
  127. }
  128. }
  129. </style>