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

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