detail.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. <template>
  2. <view class="scenic-detail">
  3. <zs-header :background="background"></zs-header>
  4. <image class="top-banner" src="http://zswl-dev.oss-cn-chengdu.aliyuncs.com/63b7c68b71a69169d1b33f92/store/65fe7c9174d67a7dbd842b74/ext/GOODS_INFO/微信图片_20240328145646.png/1.png" mode=""></image>
  5. <view class="content">
  6. <view class="info">
  7. <view class="title">
  8. 敦煌鸣沙山与月牙泉
  9. </view>
  10. <view class="address-box">
  11. <view class="province">
  12. 甘肃省
  13. </view>
  14. <view class="address">
  15. 酒泉市敦煌市南
  16. </view>
  17. </view>
  18. <view class="open-time">
  19. 营业时间:10:00—20:30
  20. </view>
  21. </view>
  22. <view class="navigation-box">
  23. <view class="address">
  24. 酒泉市敦煌市南6公里鸣沙山月牙泉景区
  25. </view>
  26. <view class="btn" @click="handleNavigation">
  27. 导航
  28. </view>
  29. </view>
  30. <view class="list">
  31. <view class="item" v-for="(item,index) in list" :key="index">
  32. <view class="sub-title">
  33. {{item.title}}
  34. </view>
  35. <view class="ticket-list">
  36. <view class="ticket-item" :class="[d != item.length-1?'border-bottom':'']" v-for="(i,d) in item.list" :key="d">
  37. <view class="top">
  38. <view class="title">
  39. {{i.title}}
  40. </view>
  41. <view class="price-box">
  42. <view class="unit">
  43. </view>
  44. <view class="price">
  45. {{i.price}}
  46. </view>
  47. <view class="text">
  48. </view>
  49. </view>
  50. </view>
  51. <view class="bottom">
  52. <view class="left">
  53. <view class="desc">
  54. {{i.desc}}
  55. </view>
  56. <view class="notice-box" @click="handleBuy">
  57. 预定须知
  58. <image class="more" src="../static/right.png" mode=""></image>
  59. </view>
  60. </view>
  61. <view class="btn" @click="handleBuy">
  62. 立即预订
  63. </view>
  64. </view>
  65. </view>
  66. </view>
  67. </view>
  68. </view>
  69. <view class="sub-title">
  70. 景区简介
  71. </view>
  72. <view class="intro border-bottom">
  73. 特殊要求视入住时可提供的服务而定,并可能产生额外的费用。特
  74. 殊要求视入住时可提供的服务而定,并可能产生额外的费用。特殊
  75. 要求视入住时可提供的服务而定,并可能产生额外的费用。特殊要
  76. 求视入住时可提供的服务而定,并可能产生额外的费用。特殊要求
  77. 视入住时可提供的服务而定,并可能产生额外的费用。特殊要求视
  78. 入住时可提供的服务而定,并可能产生额外的费用。特殊要求视入
  79. 住时可提供的服务而定,并可能产生额外的费用。
  80. </view>
  81. <view class="sub-title">
  82. 交通信息
  83. </view>
  84. <view class="intro">
  85. 市区搭乘地铁东涌线列车,在新澳站转乘迪士尼线列车
  86. </view>
  87. </view>
  88. <u-popup :show="show" round="16rpx" mode="bottom" @close="close">
  89. <view class="popup-title">
  90. 敦煌鸣沙山与月牙泉
  91. </view>
  92. <view class="box">
  93. <view class="sub-title">
  94. 取票地点
  95. </view>
  96. <view class="intro">
  97. 甘肃省酒泉市敦煌市南
  98. </view>
  99. <view class="sub-title">
  100. 入园方式
  101. </view>
  102. <view class="intro">
  103. 短信换票入园
  104. </view>
  105. <view class="sub-title">
  106. 预定截止
  107. </view>
  108. <view class="intro">
  109. 24号17点
  110. </view>
  111. <view class="sub-title">
  112. 退改规则
  113. </view>
  114. <view class="intro">
  115. 本产品不支持退订
  116. </view>
  117. <view class="sub-title">
  118. 预定须知
  119. </view>
  120. <view class="intro border-bottom">
  121. 特殊要求视入住时可提供的服务而定,并可能产生额外的费用。特
  122. 殊要求视入住时可提供的服务而定,并可能产生额外的费用。特殊
  123. 要求视入住时可提供的服务而定,并可能产生额外的费用。特殊要
  124. 求视入住时可提供的服务而定,并可能产生额外的费用。特殊要求
  125. 视入住时可提供的服务而定,并可能产生额外的费用。特殊要求视
  126. 入住时可提供的服务而定,并可能产生额外的费用。特殊要求视入
  127. 住时可提供的服务而定,并可能产生额外的费用。
  128. </view>
  129. <view class="sub-title">
  130. 其他说明
  131. </view>
  132. <view class="intro border-bottom">
  133. 特殊要求视入住时可提供的服务而定,并可能产生额外的费用。特
  134. 殊要求视入住时可提供的服务而定,并可能产生额外的费用。特殊
  135. 要求视入住时可提供的服务而定,并可能产生额外的费用。特殊要
  136. 求视入住时可提供的服务而定,并可能产生额外的费用。特殊要求
  137. 视入住时可提供的服务而定,并可能产生额外的费用。特殊要求视
  138. 入住时可提供的服务而定,并可能产生额外的费用。特殊要求视入
  139. 住时可提供的服务而定,并可能产生额外的费用。
  140. </view>
  141. </view>
  142. <view class="btn-box">
  143. <view class="left">
  144. <view class="num">
  145. 共1件
  146. </view>
  147. <view class="total">
  148. 合计 <view class="price-box">
  149. <view class="unit">
  150. </view>
  151. <view class="price">
  152. 544
  153. </view>
  154. </view>
  155. </view>
  156. </view>
  157. <view class="buy-btn" @click="handleBtn">
  158. 立即预订
  159. </view>
  160. </view>
  161. </u-popup>
  162. <map class="map" id="map"></map>
  163. </view>
  164. </template>
  165. <script>
  166. export default {
  167. data() {
  168. return {
  169. show:false,
  170. background: false,
  171. map:null,
  172. list:[
  173. {
  174. title:'成人票',
  175. list:[
  176. {
  177. title:'鸣沙山月牙泉门票+鸣沙山月牙泉鞋套租赁成人票租赁成人票租赁成人票租赁成人票租赁成人票租赁成人票',
  178. price:580,
  179. desc:'当天17点前可以预定'
  180. },
  181. {
  182. title:'鸣沙山月牙泉门票+鸣沙山月牙泉鞋套租赁成人票',
  183. price:580,
  184. desc:'当天17点前可以预定'
  185. }
  186. ]
  187. },
  188. {
  189. title:'成人票',
  190. list:[
  191. {
  192. title:'鸣沙山月牙泉门票+鸣沙山月牙泉鞋套租赁成人票',
  193. price:580,
  194. desc:'当天17点前可以预定'
  195. }
  196. ]
  197. }
  198. ]
  199. }
  200. },
  201. methods: {
  202. close(){
  203. this.show = false
  204. },
  205. handleBuy(){
  206. this.show = true
  207. },
  208. handleNavigation() {
  209. this.map.openMapApp({
  210. longitude:104.117262,
  211. latitude:30.598726,
  212. destination:'目的地',
  213. success(res){
  214. }
  215. })
  216. },
  217. handleBtn(){
  218. uni.navigateTo({
  219. url:'/scenic/makeOut'
  220. })
  221. }
  222. },
  223. onPageScroll(e) {
  224. if (e.scrollTop >= 50) {
  225. this.background = true
  226. } else {
  227. this.background = false
  228. }
  229. },
  230. onReady() {
  231. this.map = uni.createMapContext("map", this);
  232. }
  233. }
  234. </script>
  235. <style lang="scss" >
  236. .scenic-detail{
  237. .top-banner{
  238. width: 750rpx;
  239. height: 382rpx;
  240. vertical-align: bottom;
  241. }
  242. .map{
  243. position: absolute;
  244. top: -9999rpx;
  245. left: -9999rpx;
  246. }
  247. .content{
  248. position: relative;
  249. top: -20rpx;
  250. z-index: 2;
  251. background: #FFFFFF;
  252. border-radius: 16rpx 16rpx 0rpx 0rpx;
  253. padding: 28rpx 24rpx;
  254. .info{
  255. .title{
  256. font-weight: 600;
  257. font-size: 32rpx;
  258. color: #222222;
  259. }
  260. .address-box{
  261. display: flex;
  262. align-items: center;
  263. font-weight: 300;
  264. font-size: 24rpx;
  265. color: #AAAAAA;
  266. margin-top: 26rpx;
  267. .province{
  268. padding-right: 12rpx;
  269. border-right: 2rpx solid #F0F0F0;
  270. }
  271. }
  272. .open-time{
  273. font-weight: 300;
  274. font-size: 24rpx;
  275. color: #AAAAAA;
  276. margin-top: 20rpx;
  277. }
  278. }
  279. .navigation-box{
  280. display: flex;
  281. align-items: center;
  282. justify-content: space-between;
  283. width: 702rpx;
  284. height: 140rpx;
  285. background-image: url('../static/white-map.png');
  286. background-repeat: repeat;
  287. background-size: 100% 140rpx;
  288. // background: linear-gradient( 101deg, rgba(246,246,246,0.89) 0%, #FFFFFF 100%);
  289. border-radius: 16rpx 16rpx 16rpx 16rpx;
  290. padding: 0 24rpx;
  291. box-sizing: border-box;
  292. margin-top: 20rpx;
  293. .address{
  294. font-weight: 600;
  295. font-size: 24rpx;
  296. color: #222222;
  297. width: 490rpx;
  298. white-space: nowrap;
  299. overflow: hidden;
  300. text-overflow: ellipsis;
  301. }
  302. .btn{
  303. width: 120rpx;
  304. height: 52rpx;
  305. line-height: 52rpx;
  306. text-align: center;
  307. background: #E2ECFF;
  308. border-radius: 26rpx 26rpx 26rpx 26rpx;
  309. font-weight: 300;
  310. font-size: 28rpx;
  311. color: #3879F9;
  312. }
  313. }
  314. .sub-title{
  315. font-weight: 600;
  316. font-size: 32rpx;
  317. color: #222222;
  318. margin: 20rpx 0;
  319. }
  320. .intro{
  321. font-weight: 300;
  322. font-size: 24rpx;
  323. color: #AAAAAA;
  324. line-height: 40rpx;
  325. padding-bottom: 24rpx;
  326. }
  327. .border-bottom{
  328. border-bottom: 1rpx solid #F0F0F0!important;
  329. }
  330. .list{
  331. .item{
  332. .ticket-list{
  333. background: #F9F9F9;
  334. border-radius: 16rpx 16rpx 16rpx 16rpx;
  335. padding: 0 24rpx;
  336. .ticket-item{
  337. padding: 28rpx 0;
  338. .top{
  339. display: flex;
  340. align-items: center;
  341. justify-content: space-between;
  342. .title{
  343. font-weight: 400;
  344. font-size: 28rpx;
  345. color: #222222;
  346. overflow: hidden;
  347. text-overflow: ellipsis;
  348. /* 弹性伸缩盒子模型显示 */
  349. display: -webkit-box;
  350. /* 限制在一个块元素显示的文本的行数 */
  351. -webkit-line-clamp: 2;
  352. /* 设置或检索伸缩盒对象的子元素的排列方式 */
  353. -webkit-box-orient: vertical;
  354. }
  355. .price-box{
  356. display: flex;
  357. align-items: flex-end;
  358. margin-top: 12rpx;
  359. .unit{
  360. font-weight: 600;
  361. font-size: 20rpx;
  362. color: $uni-color-primary;
  363. }
  364. .price{
  365. font-weight: 600;
  366. font-size: 32rpx;
  367. color: $uni-color-primary;
  368. }
  369. .text{
  370. font-weight: 300;
  371. font-size: 24rpx;
  372. color: #AAAAAA;
  373. margin-left: 6rpx;
  374. }
  375. }
  376. }
  377. .bottom{
  378. display: flex;
  379. align-items: center;
  380. justify-content: space-between;
  381. margin-top: 20rpx;
  382. .left{
  383. display: flex;
  384. align-items: center;
  385. font-weight: 300;
  386. font-size: 24rpx;
  387. color: #AAAAAA;
  388. .notice-box{
  389. display: flex;
  390. align-items: center;
  391. .more{
  392. width: 48rpx;
  393. height: 48rpx;
  394. }
  395. }
  396. }
  397. .btn{
  398. width: 120rpx;
  399. height: 52rpx;
  400. line-height: 52rpx;
  401. text-align: center;
  402. background: #EE4320;
  403. border-radius: 26rpx 26rpx 26rpx 26rpx;
  404. font-weight: 400;
  405. font-size: 24rpx;
  406. color: #FFFFFF;
  407. }
  408. }
  409. }
  410. }
  411. }
  412. }
  413. }
  414. .u-popup__content{
  415. padding: 0 24rpx 28rpx;
  416. position: relative;
  417. .popup-title{
  418. font-weight: 600;
  419. font-size: 32rpx;
  420. color: #222222;
  421. padding: 28rpx 0;
  422. border-bottom: 1rpx solid #F0F0F0;
  423. }
  424. .box{
  425. max-height: 70vh;
  426. overflow: auto;
  427. .sub-title{
  428. font-weight: 600;
  429. font-size: 28rpx;
  430. color: #222222;
  431. margin: 20rpx 0;
  432. }
  433. .intro{
  434. font-weight: 300;
  435. font-size: 24rpx;
  436. color: #AAAAAA;
  437. line-height: 40rpx;
  438. padding-bottom: 24rpx;
  439. }
  440. .border-bottom{
  441. border-bottom: 1rpx solid #F0F0F0!important;
  442. }
  443. }
  444. .btn-box{
  445. // position: absolute;
  446. left: 0%;
  447. bottom: env(safe-area-inset-bottom);
  448. width: 100%;
  449. padding: 10rpx 24rpx;
  450. box-sizing: border-box;
  451. border-top: 1rpx solid #EEEEEE;
  452. display: flex;
  453. align-items: center;
  454. justify-content: space-between;
  455. .left{
  456. display: flex;
  457. align-items: flex-end;
  458. .num{
  459. font-weight: 300;
  460. font-size: 24rpx;
  461. color: #AAAAAA;
  462. }
  463. .total{
  464. font-weight: 300;
  465. font-size: 24rpx;
  466. color: #222222;
  467. display: flex;
  468. align-items: flex-end;
  469. margin-left: 6rpx;
  470. .price-box{
  471. display: flex;
  472. align-items: flex-end;
  473. font-weight: 400;
  474. font-size: 32rpx;
  475. color: #222222;
  476. .unit{
  477. font-size: 20rpx;
  478. }
  479. }
  480. }
  481. }
  482. .buy-btn{
  483. width: 240rpx;
  484. height: 80rpx;
  485. line-height: 80rpx;
  486. text-align: center;
  487. background: #EE4320;
  488. border-radius: 40rpx 40rpx 40rpx 40rpx;
  489. font-weight: 600;
  490. font-size: 28rpx;
  491. color: #FFFFFF;
  492. }
  493. }
  494. }
  495. }
  496. </style>