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.
187 lines
3.9 KiB
187 lines
3.9 KiB
2 years ago
|
<template>
|
||
|
<view class="footer_body">
|
||
|
<view @click="$emit('reset')" class="myPosition">
|
||
|
<image src="@/static/img/myPosition.png"></image>
|
||
|
</view>
|
||
|
<view v-if="!details" class="selector">
|
||
|
<view class="selector_left" >
|
||
|
<view class="selector_left_d">
|
||
|
<view v-if="isShow.km" class="selector_left_d_popup">
|
||
|
<view @click="seleKm(index)" :style="{color:seleIndex==index?'':'#bbbbbb'}" v-for="(item,index) in kmData" :key="index">{{item.lable}}</view>
|
||
|
</view>
|
||
|
<image style="width: 50rpx;height: 50rpx;" src="../../../static/img/price.png"></image>
|
||
|
<text style="margin: 0 20rpx;" @click="isShow.km=!isShow.km">
|
||
|
{{kmData[seleIndex].lable}}
|
||
|
</text>
|
||
|
<image style="width: 40rpx;height: 25rpx;transform: rotate(180deg);" src="../../../static/img/chevron-up.png"></image>
|
||
|
</view>
|
||
|
</view>
|
||
|
<view @click="upScale" class="screen_bottom">全站 / 区域</view>
|
||
|
</view>
|
||
|
<serviceStation v-if="details" @openMapApp='openMapApp' @dragMap='dragMap' :details='details'></serviceStation>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import serviceStation from '../../newRoutePlanning/components/serviceStation.vue'
|
||
|
export default{
|
||
|
components:{
|
||
|
serviceStation
|
||
|
},
|
||
|
props:{
|
||
|
value:{
|
||
|
type:Number,
|
||
|
default:2000
|
||
|
},
|
||
|
mapScale:{
|
||
|
type:Number,
|
||
|
default:9
|
||
|
},
|
||
|
spareMapScale:{
|
||
|
type:Number,
|
||
|
default:9
|
||
|
},
|
||
|
details:{
|
||
|
type:Object,
|
||
|
default:()=>{
|
||
|
return null
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
isShow:{
|
||
|
km:false
|
||
|
},
|
||
|
seleIndex:0,
|
||
|
kmData:[
|
||
|
{
|
||
|
lable:'20KM',
|
||
|
value:20000
|
||
|
},
|
||
|
{
|
||
|
lable:'30KM',
|
||
|
value:30000
|
||
|
},
|
||
|
{
|
||
|
lable:'50KM',
|
||
|
value:50000
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
methods:{
|
||
|
close(){
|
||
|
this.isShow.km=false
|
||
|
},
|
||
|
seleKm(e){
|
||
|
this.seleIndex = e;
|
||
|
setTimeout(()=>{
|
||
|
this.isShow.km=false;
|
||
|
},500);
|
||
|
this.$emit('input',this.kmData[this.seleIndex].value);
|
||
|
},
|
||
|
upScale(){
|
||
|
this.$emit('upScale')
|
||
|
},
|
||
|
openMapApp(){
|
||
|
console.log('导')
|
||
|
let that = this
|
||
|
wx.openLocation({
|
||
|
latitude: that.details.latitude, // 纬度
|
||
|
longitude: that.details.longitude, // 经度
|
||
|
name: that.details.siteName, // 地址名称
|
||
|
address: that.details.siteName, // 详细地址
|
||
|
success: function(r) {
|
||
|
console.log(r)
|
||
|
},
|
||
|
fail: function(res) {
|
||
|
console.log('拉起失败啦', res)
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
dragMap(e,w){
|
||
|
this.$emit('dragMap',e,w)
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style scoped>
|
||
|
.selector_left_d_popup{
|
||
|
position: absolute;
|
||
|
width: 100%;
|
||
|
background-color: #FFFFFF;
|
||
|
height: 200rpx;
|
||
|
overflow-y: auto;
|
||
|
top: -220rpx;
|
||
|
border-radius: 10px;
|
||
|
display: flex;
|
||
|
justify-content: space-around;
|
||
|
align-items: center;
|
||
|
flex-direction: column;
|
||
|
}
|
||
|
.selector_left_d{
|
||
|
font-size: 36rpx;
|
||
|
color: #666666;
|
||
|
font-weight: 600;
|
||
|
/* gap:20rpx; */
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
height: 100%;
|
||
|
width: max-content;
|
||
|
position: relative;
|
||
|
}
|
||
|
.selector_left{
|
||
|
flex: 1;
|
||
|
}
|
||
|
.screen_bottom {
|
||
|
width: 240rpx;
|
||
|
height: 80rpx;
|
||
|
background: #FF6700;
|
||
|
border-radius: 16px;
|
||
|
display: flex;
|
||
|
align-items: center;
|
||
|
justify-content: center;
|
||
|
color: #FFFFFF;
|
||
|
font-size: 36rpx;
|
||
|
font-weight: 600;
|
||
|
}
|
||
|
.myPosition{
|
||
|
display: flex;
|
||
|
background-color: #ffffff;
|
||
|
width: 70rpx;
|
||
|
height: 70rpx;
|
||
|
display: flex;
|
||
|
justify-content: center;
|
||
|
align-items: center;
|
||
|
border-radius: 10px;
|
||
|
margin-left: 85%;
|
||
|
margin-bottom: 20rpx;
|
||
|
}
|
||
|
.myPosition image{
|
||
|
/* background-color: #FFFFFF; */
|
||
|
width: 45rpx;
|
||
|
height: 45rpx;
|
||
|
}
|
||
|
.selector{
|
||
|
width: calc(80% + 50rpx);
|
||
|
background-color: #FFFFFF;
|
||
|
border-radius: 10px;
|
||
|
margin: 0 auto;
|
||
|
margin-bottom: env(safe-area-inset-bottom);
|
||
|
display: flex;
|
||
|
justify-content: flex-end;
|
||
|
padding: 10rpx 25rpx;
|
||
|
|
||
|
}
|
||
|
.footer_body{
|
||
|
position: absolute;
|
||
|
z-index: 999999;
|
||
|
bottom: 0;
|
||
|
width: 100%;
|
||
|
color: #000000;
|
||
|
width: 100vw;
|
||
|
}
|
||
|
</style>
|