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

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