travel.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <template>
  2. <view class="home-container page-travel d-flex flex-col bg-base">
  3. <image
  4. class="position-absolute title"
  5. src="/static/images/travel/Title.png"
  6. mode="widthFix"
  7. />
  8. <view class="content d-flex flex-col">
  9. <view class="content d-flex flex-col wing-l">
  10. <!-- 大图 -->
  11. <image
  12. class="w-100"
  13. src="/static/images/travel/Banner.png"
  14. mode="widthFix"
  15. />
  16. <!-- 分栏 -->
  17. <view
  18. class="position-relative d-grid mt-3"
  19. style="grid: repeat(2, 3fr) / auto-flow; grid-gap: 20rpx;"
  20. >
  21. <view
  22. v-for="(tab, k) in subTabs"
  23. :key="k"
  24. class="d-flex bg-light-light-primary radius-base p-2 flex-column align-center"
  25. >
  26. <image class="width-100" :src="tab.icon" mode="widthFix" />
  27. <text class="color-title-text mt-2">{{ tab.name }}</text>
  28. </view>
  29. </view>
  30. </view>
  31. <!-- 精品路线 -->
  32. <HomeTitle title="精品路线" showMore inWing />
  33. <scroll-view scroll-x>
  34. <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
  35. <Box2LineLargeImageUserShadow
  36. v-for="(item, i) in routeData"
  37. classNames="width-2-3 mr-2"
  38. titleColor="title-text"
  39. :key="i"
  40. :title="item.title"
  41. :desc="item.desc"
  42. :image="item.image"
  43. :bottomTime="item.bottomTime"
  44. />
  45. </view>
  46. </scroll-view>
  47. <!-- 精选推荐 -->
  48. <HomeTitle title="精选推荐" showMore inWing />
  49. <scroll-view scroll-x>
  50. <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
  51. <Box2LineLargeImageUserShadow
  52. v-for="(item, i) in recommendData"
  53. classNames="width-2-3 mr-2"
  54. titleColor="title-text"
  55. :key="i"
  56. :title="item.title"
  57. :desc="item.desc"
  58. :image="item.image"
  59. :bottomLocate="item.bottomLocate"
  60. :bottomScore="item.bottomScore"
  61. />
  62. </view>
  63. </scroll-view>
  64. <!-- 文创好物 -->
  65. <HomeTitle title="文创好物" showMore inWing />
  66. <scroll-view scroll-x>
  67. <view class="padding-wing-l pb-3 pt-3 d-flex flex-row overflow-visible align-stretch">
  68. <Box2LineLargeImageUserShadow
  69. v-for="(item, i) in creativeData"
  70. classNames="width-2-3 mr-2"
  71. titleColor="title-text"
  72. :key="i"
  73. :title="item.title"
  74. :image="item.image"
  75. />
  76. </view>
  77. </scroll-view>
  78. <!-- 近期活动 -->
  79. <view class="d-flex flex-col wing-l">
  80. <HomeTitle title="近期活动" showMore />
  81. <Box2LineRightShadow
  82. v-for="(item, i) in activityData"
  83. :key="i"
  84. :title="item.title"
  85. :desc="item.desc"
  86. :right="item.right"
  87. >
  88. <template #left>
  89. <view class="d-flex flex-col justify-center align-center radius-base bg-light-light-primary p-25 pt-2 pb-2">
  90. <text class="color-primary size-s">12月</text>
  91. <text class="color-primary size-base text-bold">28</text>
  92. </view>
  93. </template>
  94. </Box2LineRightShadow>
  95. </view>
  96. </view>
  97. </view>
  98. <tabbar :current="3"></tabbar>
  99. </template>
  100. <script setup lang="ts">
  101. import Tabbar from '@/common/components/tabs/tabbar.vue';
  102. import CategoryIcon1 from '@/static/images/travel/CategoryIcon1.png';
  103. import CategoryIcon2 from '@/static/images/travel/CategoryIcon2.png';
  104. import CategoryIcon3 from '@/static/images/travel/CategoryIcon3.png';
  105. import CategoryIcon4 from '@/static/images/travel/CategoryIcon4.png';
  106. import CategoryIcon5 from '@/static/images/travel/CategoryIcon5.png';
  107. import CategoryIcon6 from '@/static/images/travel/CategoryIcon6.png';
  108. import TestImage1 from '@/static/images/inhert/TestImage1.jpg';
  109. import TestImage2 from '@/static/images/inhert/TestImage2.jpg';
  110. import TestImage3 from '@/static/images/inhert/TestImage3.jpg';
  111. import TestImage4 from '@/static/images/inhert/TestImage4.jpg';
  112. import Box2LineLargeImageUserShadow from './parts/Box2LineLargeImageUserShadow.vue';
  113. import Box2LineRightShadow from './parts/Box2LineRightShadow.vue';
  114. import HomeTitle from './parts/HomeTitle.vue';
  115. const subTabs = [
  116. { name: '节庆日历', icon: CategoryIcon1 },
  117. { name: '文化景区', icon: CategoryIcon2 },
  118. { name: '旅游路线', icon: CategoryIcon3 },
  119. { name: '文化产品', icon: CategoryIcon4 },
  120. { name: '示范点', icon: CategoryIcon5 },
  121. { name: '闽南歌曲', icon: CategoryIcon6 },
  122. ]
  123. const routeData = [
  124. {
  125. title: '古城文化之旅',
  126. desc: '千年古镇风情',
  127. bottomTime: '123',
  128. image: TestImage3,
  129. },
  130. {
  131. title: '古城文化之旅',
  132. desc: '千年古镇风情',
  133. bottomTime: '123',
  134. image: TestImage4,
  135. },
  136. {
  137. title: '古城文化之旅',
  138. desc: '千年古镇风情',
  139. bottomTime: '123',
  140. image: TestImage3,
  141. },
  142. {
  143. title: '古城文化之旅',
  144. desc: '千年古镇风情',
  145. bottomTime: '123',
  146. image: TestImage4,
  147. },
  148. ]
  149. const recommendData = [
  150. {
  151. title: '南安水头',
  152. desc: '千年古镇风情',
  153. bottomLocate: '泉州市',
  154. bottomScore: '5.0',
  155. image: TestImage3,
  156. },
  157. {
  158. title: '南安水头',
  159. desc: '千年古镇风情',
  160. bottomLocate: '泉州市',
  161. bottomScore: '5.0',
  162. image: TestImage4,
  163. },
  164. {
  165. title: '南安水头',
  166. desc: '千年古镇风情',
  167. bottomLocate: '泉州市',
  168. bottomScore: '5.0',
  169. image: TestImage3,
  170. },
  171. {
  172. title: '南安水头',
  173. desc: '千年古镇风情',
  174. bottomLocate: '泉州市',
  175. bottomScore: '5.0',
  176. image: TestImage4,
  177. },
  178. ]
  179. const creativeData = [
  180. {
  181. title: '南安水头',
  182. image: TestImage3,
  183. },
  184. {
  185. title: '南安水头',
  186. image: TestImage4,
  187. },
  188. {
  189. title: '南安水头',
  190. image: TestImage3,
  191. },
  192. {
  193. title: '南安水头',
  194. image: TestImage4,
  195. },
  196. ]
  197. const activityData = [
  198. {
  199. title: '闽南文化节',
  200. desc: '泉州市区',
  201. right: '报名中',
  202. },
  203. {
  204. title: '泉州市区',
  205. desc: '泉州市区',
  206. right: '已截至',
  207. },
  208. ]
  209. </script>
  210. <style lang="scss">
  211. .page-travel {
  212. > .content {
  213. margin-top: 10vh;
  214. }
  215. > .title {
  216. width: 100rpx;
  217. }
  218. }
  219. </style>