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

264 lines
5.1 KiB

7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
7 months ago
7 months ago
8 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
7 months ago
9 months ago
9 months ago
7 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
7 months ago
7 months ago
9 months ago
7 months ago
9 months ago
8 months ago
9 months ago
8 months ago
9 months ago
8 months ago
8 months ago
8 months ago
7 months ago
9 months ago
7 months ago
9 months ago
6 months ago
9 months ago
7 months ago
9 months ago
9 months ago
6 months ago
9 months ago
9 months ago
7 months ago
9 months ago
9 months ago
6 months ago
9 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
  1. <template>
  2. <!-- 遗产概况 -->
  3. <view class="situation">
  4. <navbar title="遗产概况" leftClick @leftClick="$utils.navigateBack" />
  5. <view class="top-img">
  6. <uv-swiper
  7. :list="banner.yc"
  8. indicator
  9. height="420rpx"
  10. keyName="imageContent"></uv-swiper>
  11. </view>
  12. <view class="situation-imgs">
  13. <view class="situation-imgs-one"
  14. v-if="list[0].id"
  15. @click="toUrl(list[0].id)">
  16. <image :src="list[0].areaImage" mode="aspectFill"/>
  17. <view class="text">
  18. <view class="title text-ellipsis">
  19. {{ list[0].areaName }}
  20. </view>
  21. <view class="tip text-ellipsis">
  22. {{ list[0].areaBrief }}
  23. </view>
  24. </view>
  25. <view class="qg-top"></view>
  26. <view class="qg-bottom"></view>
  27. </view>
  28. <!-- <view class="situation-imgs-two"
  29. v-if="list[1].id"
  30. @click="toUrl(list[1].id)">
  31. <image :src="list[1].areaImage" mode="aspectFill"/>
  32. <view class="text">
  33. <view class="title text-ellipsis">
  34. {{ list[1].areaName }}
  35. </view>
  36. <view class="tip text-ellipsis">
  37. {{ list[1].areaBrief }}
  38. </view>
  39. </view>
  40. <view class="qg-top"></view>
  41. <view class="qg-bottom"></view>
  42. </view> -->
  43. <view class="situation-imgs-four">
  44. <view
  45. v-for="(item,index) in list"
  46. v-if="index > 0"
  47. @click="toUrl(item.id)"
  48. :key="index">
  49. <image :src="item.areaImage" mode="aspectFill"/>
  50. <view class="text">
  51. <view class="title text-ellipsis">
  52. {{ item.areaName }}
  53. </view>
  54. <view class="tip text-ellipsis">
  55. {{ item.areaBrief }}
  56. </view>
  57. </view>
  58. <view class="qg-top"></view>
  59. <view class="qg-bottom"></view>
  60. </view>
  61. </view>
  62. </view>
  63. <tabber />
  64. </view>
  65. </template>
  66. <script>
  67. import { mapState } from 'vuex'
  68. export default {
  69. data() {
  70. return {
  71. queryParams: {
  72. pageNo: 1,
  73. pageSize: 10,
  74. },
  75. total : 0,
  76. list : [],
  77. }
  78. },
  79. computed : {
  80. ...mapState(['banner']),
  81. },
  82. onShow() {
  83. this.queryAreaList()
  84. },
  85. onReachBottom() {
  86. this.loadMoreData()
  87. },
  88. onPullDownRefresh() {
  89. this.queryAreaList()
  90. },
  91. methods: {
  92. queryAreaList(){
  93. this.$api('queryAreaList', res => {
  94. if(res.code == 200){
  95. this.list = res.result.records
  96. this.total = res.result.total
  97. }
  98. })
  99. },
  100. loadMoreData(){
  101. if(this.queryParams.pageSize < this.total){
  102. this.queryParams.pageSize += 10
  103. this.queryAreaList()
  104. }
  105. },
  106. toUrl(id){
  107. uni.navigateTo({
  108. url: '/pages/index/tourGuide?areaId=' + id
  109. })
  110. },
  111. }
  112. }
  113. </script>
  114. <style scoped lang="scss">
  115. .situation {
  116. --qg : 60rpx;
  117. image{
  118. width: 100%;
  119. height: 100%;
  120. }
  121. .qg-top{
  122. position: absolute;
  123. top: 0;
  124. left: 0;
  125. width: 100%;
  126. overflow: hidden;
  127. display: flex;
  128. justify-content: space-between;
  129. &::after{
  130. content: '';
  131. display: block;
  132. width: var(--qg);
  133. height: var(--qg);
  134. background-color: $uni-bg-color;
  135. border-radius: 50%;
  136. transform: translate(50%, -50%);
  137. }
  138. &::before{
  139. content: '';
  140. display: block;
  141. width: var(--qg);
  142. height: var(--qg);
  143. background-color: $uni-bg-color;
  144. border-radius: 50%;
  145. transform: translate(-50%, -50%);
  146. }
  147. }
  148. .qg-bottom{
  149. position: absolute;
  150. bottom: 0;
  151. left: 0;
  152. width: 100%;
  153. overflow: hidden;
  154. display: flex;
  155. justify-content: space-between;
  156. &::after{
  157. content: '';
  158. display: block;
  159. width: var(--qg);
  160. height: var(--qg);
  161. background-color: $uni-bg-color;
  162. border-radius: 50%;
  163. transform: translate(50%, 50%);
  164. }
  165. &::before{
  166. content: '';
  167. display: block;
  168. width: var(--qg);
  169. height: var(--qg);
  170. background-color: $uni-bg-color;
  171. border-radius: 50%;
  172. transform: translate(-50%, 50%);
  173. }
  174. }
  175. .situation-imgs {
  176. width: 92%;
  177. margin-top: 20rpx;
  178. margin-left: 4%;
  179. .situation-imgs-one {
  180. height: 360rpx;
  181. position: relative;
  182. border-radius: 30rpx;
  183. // overflow: hidden;
  184. .text{
  185. .title{
  186. font-size: 80rpx;
  187. }
  188. .tip{
  189. font-size: 45rpx;
  190. }
  191. }
  192. }
  193. .situation-imgs-two {
  194. position: relative;
  195. margin-top: 20rpx;
  196. height: 300rpx;
  197. position: relative;
  198. border-radius: 30rpx;
  199. // overflow: hidden;
  200. .text{
  201. .title{
  202. font-size: 60rpx;
  203. }
  204. .tip{
  205. font-size: 35rpx;
  206. }
  207. }
  208. }
  209. .situation-imgs-four {
  210. display: flex;
  211. flex-wrap: wrap;
  212. justify-content: space-between;
  213. >view {
  214. position: relative;
  215. margin-top: 20rpx;
  216. width: 48%;
  217. height: 260rpx;
  218. position: relative;
  219. border-radius: 20rpx;
  220. // overflow: hidden;
  221. .text{
  222. .title{
  223. font-size: 34rpx;
  224. margin-top: 40rpx;
  225. }
  226. }
  227. }
  228. }
  229. }
  230. .text{
  231. font-family: 楷体;
  232. // font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
  233. position: absolute;
  234. bottom: 0;
  235. left: 0;
  236. width: 100%;
  237. height: 100%;
  238. background-color: #00000036;
  239. color: #fff;
  240. display: flex;
  241. flex-direction: column;
  242. align-items: center;
  243. justify-content: center;
  244. font-weight: 900;
  245. .title{
  246. font-size: 34rpx;
  247. }
  248. .tip{
  249. font-size: 22rpx;
  250. margin-top: 10%;
  251. }
  252. }
  253. }
  254. </style>