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

266 lines
4.8 KiB

9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
  1. <template>
  2. <!-- '遗产讲述', '达人同游' 我要跟拍 的共同详情页面 -->
  3. <view class="page">
  4. <navbar :title="titles[type]" leftClick @leftClick="$utils.navigateBack" />
  5. <view class="info">
  6. <!-- 上面 -->
  7. <view class="top">
  8. <image :src="detail.roleHead" mode="aspectFill"></image>
  9. <view class="left">
  10. <view class="title">
  11. {{ detail.roleName }}
  12. </view>
  13. <view class="left-list">
  14. <view>
  15. <uv-icon
  16. name="star"
  17. size="50rpx"
  18. ></uv-icon>
  19. 收藏
  20. </view>
  21. <view>
  22. <uv-icon
  23. name="star"
  24. size="50rpx"
  25. ></uv-icon>
  26. 收藏
  27. </view>
  28. <view>
  29. <uv-icon
  30. name="star"
  31. size="50rpx"
  32. ></uv-icon>
  33. 收藏
  34. </view>
  35. </view>
  36. </view>
  37. </view>
  38. <!-- 下面 -->
  39. <view class="bottom">
  40. <view>
  41. <image src="../static/reservationDetail/1.png" mode=""></image>
  42. <view>
  43. {{ $dayjs(detail.preTime).format('YYYY-MM-DD') }}
  44. </view>
  45. </view>
  46. <view>
  47. <image src="../static/reservationDetail/2.png" mode=""></image>
  48. <view>
  49. {{ detail.price }}
  50. </view>
  51. </view>
  52. <view>
  53. <image src="../static/reservationDetail/3.png" mode=""></image>
  54. <view>
  55. 预约
  56. </view>
  57. </view>
  58. </view>
  59. </view>
  60. <view class="detail">
  61. <view class="content">
  62. <view class="thumb-up">
  63. <uv-icon
  64. name="thumb-up"
  65. size="40rpx"
  66. color="#B12731"
  67. ></uv-icon>
  68. <text>推荐度</text> <text>{{ detail.recommend }}</text>
  69. </view>
  70. <view class="text">
  71. <view class="line">
  72. <view class="left">
  73. 专业擅长
  74. </view>
  75. <view class="right">
  76. {{ detail.skill }}
  77. </view>
  78. </view>
  79. <view class="line">
  80. <view class="left">
  81. 个人简介
  82. </view>
  83. <view class="right">
  84. {{ detail.brief }}
  85. </view>
  86. </view>
  87. </view>
  88. </view>
  89. <view class="video-list">
  90. <view class="title">
  91. 讲解现场
  92. </view>
  93. </view>
  94. <videoList ref="videoList" :roleId="id"/>
  95. </view>
  96. <tabber/>
  97. </view>
  98. </template>
  99. <script>
  100. import videoList from '@/components/list/videoList.vue'
  101. export default {
  102. components : {
  103. videoList,
  104. },
  105. data() {
  106. return {
  107. titles: ['遗产讲述', '达人同游', '我要跟拍'],
  108. type: 0,
  109. id : 0,
  110. detail : {},
  111. }
  112. },
  113. onLoad(args) {
  114. this.type = args.type
  115. this.id = args.id
  116. },
  117. onShow() {
  118. this.$refs.videoList.queryVideoList()
  119. this.getData()
  120. },
  121. onPullDownRefresh(){
  122. this.$refs.videoList.queryVideoList()
  123. this.getData()
  124. },
  125. //滚动到屏幕底部
  126. onReachBottom() {
  127. this.$refs.videoList.loadMoreData()
  128. },
  129. methods: {
  130. getData(){
  131. this.$api('queryRoleInfoById', {
  132. roleInfoId : this.id,
  133. }, res => {
  134. uni.stopPullDownRefresh()
  135. if(res.code == 200){
  136. this.detail = res.result
  137. }
  138. })
  139. },
  140. }
  141. }
  142. </script>
  143. <style scoped lang="scss">
  144. .page{
  145. .info{
  146. .top{
  147. display: flex;
  148. padding: 40rpx;
  149. image{
  150. width: 240rpx;
  151. height: 280rpx;
  152. border-radius: 20rpx;
  153. margin-right: 40rpx;
  154. }
  155. .left{
  156. .title{
  157. font-size: 32rpx;
  158. margin-top: 20rpx;
  159. }
  160. .left-list{
  161. display: flex;
  162. font-size: 26rpx;
  163. background-color: #fff;
  164. border-radius: 20rpx;
  165. padding: 20rpx;
  166. margin-top: 50rpx;
  167. box-shadow: 0 0 10rpx 10rpx #00000010;
  168. >view{
  169. margin: 20rpx 30rpx;
  170. display: flex;
  171. flex-direction: column;
  172. justify-content: center;
  173. align-items: center;
  174. }
  175. }
  176. }
  177. }
  178. .bottom{
  179. display: flex;
  180. justify-content: space-around;
  181. image{
  182. width: 100rpx;
  183. height: 100rpx;
  184. margin-bottom: 10rpx;
  185. }
  186. >view{
  187. background-color: #fff;
  188. box-shadow: 0 0 10rpx 10rpx #00000010;
  189. border-radius: 20rpx;
  190. height: 180rpx;
  191. width: 180rpx;
  192. display: flex;
  193. justify-content: center;
  194. align-items: center;
  195. flex-direction: column;
  196. color: $uni-color;
  197. }
  198. }
  199. }
  200. .detail{
  201. width: 100%;
  202. background-color: #fff;
  203. .content{
  204. padding: 40rpx;
  205. .thumb-up{
  206. background-color: #F6F2E7;
  207. color: $uni-color;
  208. font-size: 28rpx;
  209. font-weight: 900;
  210. padding: 10rpx 25rpx;
  211. display: flex;
  212. width: fit-content;
  213. border-radius: 30rpx;
  214. text{
  215. margin-left: 10rpx;
  216. }
  217. }
  218. .text{
  219. .line{
  220. margin-top: 40rpx;
  221. display: flex;
  222. line-height: 50rpx;
  223. .left{
  224. width: 180rpx;
  225. flex-shrink: 0;
  226. color: $uni-color;
  227. font-weight: 900;
  228. }
  229. }
  230. }
  231. }
  232. .video-list{
  233. padding: 15rpx;
  234. .title{
  235. font-weight: 900;
  236. color: $uni-color;
  237. padding: 15rpx;
  238. }
  239. .list{
  240. display: flex;
  241. flex-wrap: wrap;
  242. >view{
  243. margin: 15rpx;
  244. image{
  245. width: 330rpx;
  246. height: 350rpx;
  247. border-radius: 30rpx;
  248. }
  249. }
  250. }
  251. }
  252. }
  253. }
  254. </style>