景徳镇旅游微信小程序
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.

219 lines
4.6 KiB

8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
  1. <template>
  2. <view class="page">
  3. <view class="banner">
  4. <uv-swiper
  5. :list="bannerList"
  6. indicator
  7. height="620rpx"
  8. indicatorStyle="bottom: 100rpx;"
  9. keyName="imageContent"></uv-swiper>
  10. <view class="top">
  11. <view class="search">
  12. <uv-search
  13. placeholder="请输入搜索服务"
  14. :showAction="false"
  15. search-icon-size="40rpx"
  16. v-model="keyword"></uv-search>
  17. </view>
  18. </view>
  19. </view>
  20. <view class="content">
  21. <view class="grid">
  22. <uv-grid :border="false"
  23. :col="5">
  24. <uv-grid-item
  25. v-for="(item,index) in baseList"
  26. @click="$utils.navigateTo(item.path)"
  27. :key="index">
  28. <image class="grid-icon" :src="item.icon" mode="aspectFill"></image>
  29. <text class="grid-text">{{item.title}}</text>
  30. </uv-grid-item>
  31. </uv-grid>
  32. </view>
  33. <view class="video-title">
  34. 视频中的景徳镇
  35. </view>
  36. <videoList ref="videoList"/>
  37. </view>
  38. <PrivacyAgreementPoup/>
  39. <tabber select="0"/>
  40. </view>
  41. </template>
  42. <script>
  43. import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
  44. import videoList from '@/components/list/videoList.vue'
  45. export default {
  46. components : {
  47. PrivacyAgreementPoup,
  48. videoList,
  49. },
  50. data() {
  51. return {
  52. baseList : [
  53. {
  54. icon : '/static/image/home/g1.png',
  55. title : '申遗历程',
  56. path : '/pages_order/service/applyRelic',
  57. },
  58. {
  59. icon : '/static/image/home/g2.png',
  60. title : '遗产概况',
  61. path : '/pages_order/service/situation',
  62. },
  63. {
  64. icon : '/static/image/home/g3.png',
  65. title : '遗产讲述',
  66. path : '/pages_order/service/tellList?type=tell',
  67. },
  68. {
  69. icon : '/static/image/home/g4.png',
  70. title : '达人同游',
  71. path : '/pages_order/service/tellList?type=travel',
  72. },
  73. {
  74. icon : '/static/image/home/g5.png',
  75. title : '遗产路径',
  76. path : '/pages_order/service/heritagePath',
  77. },
  78. {
  79. icon : '/static/image/home/g6.png',
  80. title : '我要跟拍',
  81. path : '/pages_order/service/following' ,
  82. },
  83. {
  84. icon : '/static/image/home/g7.png',
  85. title : '非遗体验',
  86. path : '/pages_order/service/experience',
  87. },
  88. {
  89. icon : '/static/image/home/g8.png',
  90. title : '无忧服务',
  91. path : '/pages_order/service/carefree',
  92. },
  93. {
  94. icon : '/static/image/home/g9.png',
  95. title : '文创好物',
  96. path : '/pages_order/product/productList',
  97. },
  98. {
  99. icon : '/static/image/home/g10.png',
  100. title : '我要帮助',
  101. path : '/pages_order/service/help',
  102. },
  103. ],
  104. bannerList: [
  105. {
  106. url: 'https://img-s-msn-com.akamaized.net/tenant/amp/entityid/BB1msKSi.img',
  107. },
  108. {
  109. url: 'https://img-s-msn-com.akamaized.net/tenant/amp/entityid/BB1msKSi.img',
  110. },
  111. {
  112. url: 'https://img-s-msn-com.akamaized.net/tenant/amp/entityid/BB1msKSi.img',
  113. },
  114. ],
  115. productList: [],
  116. keyword : '',
  117. }
  118. },
  119. computed : {
  120. },
  121. onPullDownRefresh(){
  122. this.$refs.videoList.queryVideoList()
  123. this.queryBannerList()
  124. },
  125. onShow() {
  126. this.$refs.videoList.queryVideoList()
  127. this.queryBannerList()
  128. },
  129. //滚动到屏幕底部
  130. onReachBottom() {
  131. this.$refs.videoList.loadMoreData()
  132. },
  133. methods: {
  134. queryBannerList(){
  135. this.$api('queryBannerList', {
  136. bannerCategoryType : 0,
  137. },res => {
  138. uni.stopPullDownRefresh()
  139. if(res.code == 200){
  140. this.bannerList = res.result
  141. }
  142. })
  143. },
  144. }
  145. }
  146. </script>
  147. <style scoped lang="scss">
  148. .page{
  149. .banner{
  150. position: relative;
  151. .top{
  152. position: absolute;
  153. top: var(--status-bar-height);
  154. left: 0;
  155. padding-top: 30rpx;
  156. display: flex;
  157. width: 100%;
  158. flex-direction: column;
  159. align-items: center;
  160. .search{
  161. width: 400rpx;
  162. margin-left: -100rpx;
  163. /deep/ .uv-search__content__icon{
  164. padding: 30rpx 0;
  165. }
  166. }
  167. .title{
  168. image{
  169. width: 600rpx;
  170. height: 300rpx;
  171. }
  172. }
  173. }
  174. }
  175. .content{
  176. position: relative;
  177. margin-top: -60rpx;
  178. .grid{
  179. padding-bottom: 30rpx;
  180. background-color: #fff;
  181. border-radius: 60rpx;
  182. box-shadow: 0 0 10rpx 10rpx #00000033;
  183. .grid-icon{
  184. width: 80rpx;
  185. height: 80rpx;
  186. margin-bottom: 10rpx;
  187. margin-top: 30rpx;
  188. }
  189. .grid-text{
  190. font-size: 24rpx;
  191. font-weight: 900;
  192. }
  193. }
  194. .video-title{
  195. padding: 20rpx 30rpx;
  196. background-color: $uni-color;
  197. color: #fff;
  198. font-weight: 900;
  199. font-size: 24rpx;
  200. margin: 10rpx 20rpx;
  201. margin-top: 30rpx;
  202. width: fit-content;
  203. border-radius: 20rpx;
  204. }
  205. }
  206. }
  207. </style>