17 changed files with 1076 additions and 118 deletions
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1 @@ |
|||||
|
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>地图</title><script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&key=YVOBZ-MWJ3Z-34IXK-7J2GL-O33US-QLF5X"></script><script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script><script src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script><script defer="defer" src="/static/js/chunk-vendors.c33f6caf.js"></script><script defer="defer" src="/static/js/app.5a057ce3.js"></script><link href="/static/css/chunk-vendors.befb54be.css" rel="stylesheet"><link href="/static/css/app.0cd07668.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but taihulake doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html> |
@ -0,0 +1 @@ |
|||||
|
.bg[data-v-e0228542]{width:100%;min-height:100vh;background:#f7f7f7;padding-top:.41333rem}.top-box[data-v-e0228542]{width:9.29333rem;padding:.4rem;margin:0 auto;font-weight:700;font-size:.53333rem;color:#000}.top-box .top-btn[data-v-e0228542]{width:1.82667rem;line-height:.8rem;border-radius:.4rem;border:1px solid #ccc;text-align:center;font-weight:400;font-size:.36rem;color:#000}.item[data-v-e0228542]{width:9.29333rem;height:3.2rem;background:#fff;box-shadow:0 1px .21333rem 0 hsla(0,0%,60%,.35);border-radius:.26667rem;margin:0 auto .44rem;padding:.17333rem;display:flex;justify-content:space-between}.item img[data-v-e0228542]{-o-object-fit:cover;object-fit:cover;width:2.84rem;height:2.84rem;border-radius:.17333rem}.item .content[data-v-e0228542]{padding:.2rem 0;width:5.46667rem}.item .content .title[data-v-e0228542]{font-weight:700;font-size:.44rem;color:#111}.item .content .subtitle[data-v-e0228542]{margin-top:8px;font-weight:500;font-size:.36rem;color:#666}.item .contents[data-v-e0228542]{width:4.53333rem}.item .delLine[data-v-e0228542]{width:.66667rem}.item .delLine img[data-v-e0228542]{width:.4rem;height:.45333rem} |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
|||||
|
"use strict";(self["webpackChunktaihulake"]=self["webpackChunktaihulake"]||[]).push([[46],{46:function(t,e,s){s.r(e),s.d(e,{default:function(){return r}});var i=function(){var t=this,e=t._self._c;return e("div",{staticClass:"bg"},[t.type?e("div",{staticClass:"top-box flex-between"},[e("div",[t._v("我的行程")]),e("div",{staticClass:"top-btn",on:{click:t.addLine}},[t._v("+添加")])]):t._e(),t._l(t.list,(function(s,i){return e("div",{key:i,staticClass:"item",on:{click:function(e){return t.viewDetail(s)}}},[e("img",{attrs:{src:t.util.showImg(s.image),alt:""}}),e("div",{class:["content",{contents:t.type}]},[e("div",{staticClass:"title"},[t._v(t._s(s.name))]),t.type?e("div",{staticClass:"subtitle text-overflowRows",staticStyle:{display:"flex"}},t._l(s.points,(function(i,n){return e("div",{key:n},[t._v(t._s(i.name)),n+1!=s.points.length?e("span",[t._v("-")]):t._e()])})),0):e("div",{staticClass:"subtitle"},[t._v(t._s(s.points.length)+"个景点")]),t.type?e("div",{staticClass:"subtitle"},[t._v(t._s(s.date))]):t._e()]),t.type?e("div",{staticClass:"delLine flex-center"},[e("img",{attrs:{src:"https://static.ticket.sz-trip.com/yandu/images/map/delLine.png",alt:""},on:{click:function(e){return t.delLine(i)}}})]):t._e()])}))],2)},n=[],a=(s(7658),{data(){return{list:[],type:this.$route.query.type}},mounted(){this.getList()},methods:{getList(){this.post({type:this.$route.query.type?1:"",code:this.$route.query.code},"/api/emap/getLineByCode").then((t=>{this.list=t.data}))},viewDetail(t){sessionStorage.setItem("lineDetail",JSON.stringify(t)),this.$router.push("/")},addLine(){this.$router.push("/")}}}),l=a,u=s(1001),c=(0,u.Z)(l,i,n,!1,null,"e0228542",null),r=c.exports}}]); |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,315 @@ |
|||||
|
<template> |
||||
|
<div class="bg"> |
||||
|
<!-- 景点详情 --> |
||||
|
<div class="info" v-if="info"> |
||||
|
<img :src="util.showImg(info.image)" class="info-img"> |
||||
|
<div class="info-content"> |
||||
|
<div class="title text-overflow">{{info.title}}</div> |
||||
|
<div class="subtitle text-overflow">营业时间:{{info.open_time}}-{{info.close_time}}</div> |
||||
|
<div class="subtitle text-overflow">地址:{{info.address}}</div> |
||||
|
<div class="location" @click="util.openMap(info)"> |
||||
|
<img src="https://static.ticket.sz-trip.com/yandu/images/map/lineLocation.png" alt=""> |
||||
|
导航 |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="title">{{detail.name}}</div> |
||||
|
<div class="subtitle">{{detail.points.length}}个景点</div> |
||||
|
|
||||
|
<!-- 线路列表 --> |
||||
|
<div class="box"> |
||||
|
<div class="item" v-for="(item,index) in detail.points" :key="index"> |
||||
|
<div :class="['line',{'lineF': index == 0, 'lineE': index+1 == detail.points.length, 'lineS': index == selectIndex}]"></div> |
||||
|
<div :class="['num',{'numS': index == selectIndex, 'numE': index+1 == detail.points.length}]"> |
||||
|
{{index == 0 ? '起' : ((index+1 == detail.points.length) ? '终' : index + 1)}} |
||||
|
</div> |
||||
|
<div :class="['content', {'contents': selectIndex == index}]" @click="choosePoint(item, index)"> |
||||
|
{{item.name}} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<!-- 推荐攻略 --> |
||||
|
<div> |
||||
|
<div class="title">推荐攻略</div> |
||||
|
<div class="strategy-info" @click="util.gotoDetailMini(strategyInfo)"> |
||||
|
<img :src="util.showImg(strategyInfo.image)" class="strategy-img"> |
||||
|
|
||||
|
<div class="strategy-content flex-between"> |
||||
|
<div class="strategy-title text-overflowRows">{{strategyInfo.title}}</div> |
||||
|
<div class="strategy-subtitle flex-between"> |
||||
|
<div> |
||||
|
<img :src="util.showImg(strategyInfo.author_img)" alt=""> |
||||
|
{{strategyInfo.author}} |
||||
|
</div> |
||||
|
<div> |
||||
|
<img src="https://static.ticket.sz-trip.com/yandu/images/map/eye.png" alt=""> |
||||
|
{{strategyInfo.view}} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
detail: {}, |
||||
|
selectIndex: null, |
||||
|
info: null, |
||||
|
strategyInfo: {} |
||||
|
} |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.detail = JSON.parse(sessionStorage.getItem('lineDetail')) |
||||
|
|
||||
|
// 获取攻略详情 |
||||
|
this.get({ |
||||
|
id: this.detail.article_id |
||||
|
},'/api/article/getArticleById').then(res => { |
||||
|
this.strategyInfo = res.data |
||||
|
}) |
||||
|
}, |
||||
|
methods: { |
||||
|
// 选中景点 |
||||
|
choosePoint(item,index) { |
||||
|
if(this.selectIndex == index) { |
||||
|
this.info = null |
||||
|
this.selectIndex = null |
||||
|
return; |
||||
|
} |
||||
|
this.selectIndex = index |
||||
|
if(['ticket', 'hotel'].includes(item.goods.genre)) { |
||||
|
// 景点酒店 |
||||
|
this.get({ |
||||
|
id: item.goods.scenic_id |
||||
|
},'/api/scenic/getScenicById').then(res => { |
||||
|
if(res.data) { |
||||
|
this.info = res.data |
||||
|
this.$emit('changeCenter', item.lonlat) |
||||
|
} |
||||
|
}) |
||||
|
}else if(item.goods.genre == 'food') { |
||||
|
this.get({ |
||||
|
goods_id: item.goods.id |
||||
|
},'/api/goods/getGoodDetail').then(res => { |
||||
|
if(res.data) { |
||||
|
this.info = res.data |
||||
|
this.$emit('changeCenter', item.lonlat) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.bg { |
||||
|
width: 750px; |
||||
|
max-height: 60vh; |
||||
|
overflow-x: hidden; |
||||
|
overflow-y: auto; |
||||
|
padding: 43px 0 96px 27px; |
||||
|
position: relative; |
||||
|
overflow: visible; |
||||
|
} |
||||
|
|
||||
|
.title { |
||||
|
font-weight: bold; |
||||
|
font-size: 37px; |
||||
|
color: #111111; |
||||
|
} |
||||
|
|
||||
|
.subtitle { |
||||
|
font-weight: 500; |
||||
|
font-size: 24px; |
||||
|
color: #666666; |
||||
|
margin-top: 15px; |
||||
|
} |
||||
|
|
||||
|
.box { |
||||
|
margin-top: 49px; |
||||
|
|
||||
|
.item { |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
padding-left: 41px; |
||||
|
height: 116px; |
||||
|
position: relative; |
||||
|
padding-bottom: 19px; |
||||
|
|
||||
|
.line { |
||||
|
width: 0px; |
||||
|
height: 100%; |
||||
|
border-left: 3px dashed #71B580; |
||||
|
position: absolute; |
||||
|
top: 0; |
||||
|
left: 64px; |
||||
|
} |
||||
|
|
||||
|
.lineF { |
||||
|
height: 50%; |
||||
|
top: auto; |
||||
|
bottom: 5px; |
||||
|
} |
||||
|
|
||||
|
.lineE { |
||||
|
height: 50%; |
||||
|
top: 5px; |
||||
|
} |
||||
|
|
||||
|
.num { |
||||
|
width: 53px; |
||||
|
height: 53px; |
||||
|
line-height: 53px; |
||||
|
background: #FFFFFF; |
||||
|
border-radius: 50%; |
||||
|
border: 2px solid #71B580; |
||||
|
text-align: center; |
||||
|
font-weight: bold; |
||||
|
font-size: 32px; |
||||
|
color: #71B580; |
||||
|
position: relative; |
||||
|
} |
||||
|
|
||||
|
.numS { |
||||
|
background: #71B580; |
||||
|
color: #FFFFFF; |
||||
|
} |
||||
|
|
||||
|
.content { |
||||
|
width: 597px; |
||||
|
height: 97px; |
||||
|
background-image: url('https://static.ticket.sz-trip.com/yandu/images/map/lineBg.png'); |
||||
|
background-size: 100% 100%; |
||||
|
font-weight: 500; |
||||
|
font-size: 28px; |
||||
|
color: #333333; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
padding-left: 50px; |
||||
|
} |
||||
|
.contents { |
||||
|
background-image: url('https://static.ticket.sz-trip.com/yandu/images/map/lineBgs.png'); |
||||
|
color: #FFFFFF; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.info { |
||||
|
width: 573px; |
||||
|
height: 202px; |
||||
|
background: #FFFFFF; |
||||
|
box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.3); |
||||
|
border-radius: 13px; |
||||
|
position: absolute; |
||||
|
top: -400px; |
||||
|
left: 88px; |
||||
|
padding: 5px; |
||||
|
display: flex; |
||||
|
|
||||
|
.info-img { |
||||
|
width: 187px; |
||||
|
height: 187px; |
||||
|
border-radius: 7px; |
||||
|
object-fit: cover; |
||||
|
} |
||||
|
|
||||
|
.info-content { |
||||
|
padding: 7px 0 3px; |
||||
|
margin-left: 15px; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
justify-content: space-between; |
||||
|
width: 344px; |
||||
|
|
||||
|
.title { |
||||
|
font-weight: bold; |
||||
|
font-size: 29px; |
||||
|
color: #333333; |
||||
|
width: 344px; |
||||
|
} |
||||
|
|
||||
|
.subtitle { |
||||
|
font-weight: 500; |
||||
|
font-size: 23px; |
||||
|
color: #666666; |
||||
|
width: 344px; |
||||
|
margin-top: 0; |
||||
|
} |
||||
|
|
||||
|
.location { |
||||
|
font-weight: bold; |
||||
|
font-size: 23px; |
||||
|
color: #71B580; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
margin-left: auto; |
||||
|
|
||||
|
img { |
||||
|
width: 32px; |
||||
|
height: 32px; |
||||
|
margin-right: 5px; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.strategy-info { |
||||
|
width: 697px; |
||||
|
height: 213px; |
||||
|
background: #FFFFFF; |
||||
|
box-shadow: 0px 1px 16px 0px rgba(153,153,153,0.35); |
||||
|
border-radius: 20px; |
||||
|
margin-top: 25px; |
||||
|
padding: 13px; |
||||
|
display: flex; |
||||
|
|
||||
|
.strategy-img { |
||||
|
object-fit: cover; |
||||
|
width: 187px; |
||||
|
height: 187px; |
||||
|
border-radius: 13px; |
||||
|
} |
||||
|
|
||||
|
.strategy-content { |
||||
|
width: 455px; |
||||
|
margin-left: 18px; |
||||
|
flex-direction: column; |
||||
|
padding: 5px 0; |
||||
|
|
||||
|
.strategy-title { |
||||
|
font-weight: bold; |
||||
|
font-size: 31px; |
||||
|
color: #111111; |
||||
|
} |
||||
|
|
||||
|
.strategy-subtitle { |
||||
|
font-weight: 500; |
||||
|
font-size: 27px; |
||||
|
color: #888888; |
||||
|
width: 100%; |
||||
|
|
||||
|
div { |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
} |
||||
|
|
||||
|
img { |
||||
|
width: 27px; |
||||
|
margin-right: 5px; |
||||
|
} |
||||
|
|
||||
|
.strategy-userImg { |
||||
|
width: 37px !important; |
||||
|
height: 37px !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue