123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <template>
- <view class="flex flex-column vh100 w100">
- <view class="u-flex-1 w100">
- <map style="width: 100%; height: 100%;position: relative;" :scale="13" :latitude="latitude" :longitude="longitude" :markers="covers"
- :polyline="polyline">
- </map>
- </view>
- <dtHujiao :price = "price" @hujiao = "hujiao" style="width: 100%;"></dtHujiao>
- </view>
- </template>
- <script>
- import {mapState} from 'vuex'
- import amapFile from '../../libs/amap-wx.js'
- import {changeTime} from "../../common/common.js"
- export default {
- data() {
- return {
- query: {},
- time: '',
- other: {},
- price:'',
- distance:'',
- // 地图
- latitude: '',
- longitude: '',
- polyline: []
- }
- },
- computed: {
- ...mapState(["start","end"]),
- covers() {
- return [{
- id: 1,
- latitude: this.latitude,
- longitude: this.longitude,
- iconPath: '../../static/now.png',
- title: '当前位置',
- width:25,
- height:25
- }, {
- id: 2,
- latitude: this.start.latitude,
- longitude: this.start.longitude,
- iconPath: '../../static/start.png',
- title: '起点位置',
- width:40,
- height:40
- }, {
- id: 3,
- latitude: this.end.latitude,
- longitude: this.end.longitude,
- iconPath: '../../static/end.png',
- title: '终点位置',
- width:40,
- height:40
- }]
- }
- },
- onLoad(option) {
- this.query = JSON.parse(decodeURIComponent(option.query))
- //console.log(888888, this.query);
-
- // "time": "2020-12-15 00:00",
-
- // "other": {
- // "tel": "16638143447",
- // "name": "小曲"
- // }
- // }
- if(this.query.time == '预约时间'){
- this.time = ''
- }else{
- this.time = changeTime(this.query.time)
- }
- this.other = this.query.other
-
-
- let _this = this
- uni.getLocation({
- type: 'gcj02',
- success: function(res) {
- _this.longitude = res.longitude
- _this.latitude = res.latitude
- _this.polyline = []
- _this.getLine()
- }
- });
- },
- onShow() {
- },
- methods: {
- getLine() {
- var that = this;
- var key = 'bb6f4ed802756f963b37c184ce4e9766';
- var myAmapFun = new amapFile.AMapWX({
- key: key
- });
- this.lineData(myAmapFun, this.start.longitude + ',' + this.start.latitude, this.end.longitude + ',' +
- this.end.latitude,
- "#28d32e")
- },
- lineData(myAmapFun, origin, destination, color) {
- let that = this
-
- console.log(origin)
- console.log(destination)
- myAmapFun.getDrivingRoute({
- origin,
- destination,
- success(data) {
- if (data.paths && data.paths[0] && data.paths[0].steps) {
- var steps = data.paths[0].steps;
- var points = [];
- for (var i = 0; i < steps.length; i++) {
- var poLen = steps[i].polyline.split(';');
- for (var j = 0; j < poLen.length; j++) {
- points.push({
- longitude: parseFloat(poLen[j].split(',')[0]),
- latitude: parseFloat(poLen[j].split(',')[1])
- })
- }
- }
- }
- that.polyline.push({
- points: points,
- color,
- width: 10,
- arrowLine: true,
- })
- if (data.paths[0] && data.paths[0].distance) {
- that.distance = data.paths[0].distance
- that.getPrice(data.paths[0].distance)
- }
- },
- fail(info) {
- console.log(444444, info);
- }
- });
- },
- getPrice(distance){
- this.$http('/addons/ddrive/order/amount', {
- distance,
- }, "POST").then((data) => {
- this.price = data
- })
- },
- //呼叫代驾
- hujiao(){
- this.$http('/addons/ddrive/order/create', {
- start:this.start.name,
- start_city:this.start.city,
- start_address:this.start.address,
- start_latitude:this.start.latitude,
- start_longitude:this.start.longitude,
- end:this.end.name,
- end_city:this.end.city,
- end_address:this.end.address,
- end_latitude:this.end.latitude,
- end_longitude:this.end.longitude,
- distance:this.distance,
- duration:0,
- mobile:this.other.tel?this.other.tel:'',
- appointment_time:this.time,
- }, "POST").then((data) => {
- uni.showToast({
- title:"呼叫成功"
- })
- setTimeout(()=>{
- uni.redirectTo({
- url:'/pages/home/detail?id=' + data.order_id
- })
- },100)
- })
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .navigation {
- position: fixed;
- right: 10rpx;
- top: 100rpx;
- width: 100rpx;
- height: 100rpx;
- }
- </style>
|