qlg.frontend/js/shundaijian.js

242 lines
6.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var arr = [];
mui.plusReady(function(){
var maps = [{
pname: 'com.baidu.BaiduMap',
action: 'baidumap',
name: '百度地图'
}, {
pname: 'com.autonavi.minimap',
action: 'iosamap',
name: '高德地图'
}
// , {
// pname: 'com.google.android.apps.maps',
// action: 'com.google.android.apps.maps',
// name: '谷歌地图'
// }
// , {
// pname: 'com.tencent.map',
// action: 'com.google.android.apps.maps',
// name: '腾讯地图'
// },
]
// checkApp("com.baidu.BaiduMap", "baidumap", "百度地图")
// checkApp("com.autonavi.minimap", "iosamap", "高德地图")
// checkApp("com.google.android.apps.maps", "com.google.android.apps.maps", "谷歌地图")
// 判断地图软件是否安装
// maps= toJson(maps)
// //console.log(maps)
$.each(maps, function(i, v) {//不能写进点击事件函数里 不然点击一次增加一个title
var that = this
checkApp(that.pname, that.action, that.name)
})
function checkApp(pn, ac, name) { // pnameandroid 包名 actionios包名 name用作底部弹出
if (plus.runtime.isApplicationExist({
pname: pn, //包名
action: ac //ios包名
})) {
// //console.log("微信应用已安装");
title = {
title: name
};
arr.push(title)
} else {
}
}
var viewportHeight = $(window).height();
$(document).on('scroll', function() {
var scrollTop = $(window).scrollTop();
var x = scrollTop + viewportHeight - $("#apear").position().top;
if (x > 0)
{
app.loadNextPage();
}
})
})
function copyToClip (text) {
var Context = plus.android.importClass("android.content.Context");
var main = plus.android.runtimeMainActivity();
var clip = main.getSystemService(Context.CLIPBOARD_SERVICE);
plus.android.invoke(clip,"setText",text.toString());
mui.toast("复制成功");
}
function invokeNavi(from, destination) {
if (0 == arr.length) {
var startpos= bMapTransQQMap(from[1], from[0])
var endpos = bMapTransQQMap(destination[1], destination[0])
var urlStr = encodeURI('http://uri.amap.com/navigation?from='+startpos.lng+','+startpos.lat+',startpoint&to='+endpos.lng+','+endpos.lat+',endpoint&mode=car&policy=1&src=mypage&coordinate=gaode&callnative=0')
plus.runtime.openURL(urlStr)
return false
} else {
openMapApp(destination)
}
}
function openMapApp(destination) {
function realOpen(idx) {
var shopLat = destination[0];
var shopLng = destination[1];
var title = arr[idx].title;
// var i1 = new Intent();
switch (title) {
case "百度地图":
// if (plus.os.name == "Android") {
// plus.runtime.openURL(
// "baidumap://map/direction?origin=latlng:39.98871,116.43234|name:我的位置&destination=31.236244,121.480239&mode=driving&src=webapp.navi.hanguosoft.yinyijianghu",
// function(error) {
// mui.alert('打开' + title + '失败');
// });
// }
goMaps(
"baidumap://map/direction?origin=我的位置&destination="+shopLat+","+shopLng+"&mode=driving&src=cn.com.zgqlg.app"
)
break;
case "高德地图":
var endpos = bMapTransQQMap(shopLng, shopLat)
// plus.runtime.openURL('androidamap://navi?sourceApplication=nyx_super&lat=' + endpos.lat + '&lon=' + endpos.lng +
// '&mode=driving&region=www&output=html&src="全亮共"',
// function(e) {
// mui.alert('打开' + title + '失败');
// })
goMaps('androidamap://navi?sourceApplication=nyx_super&lat=' + endpos.lat + '&lon=' + endpos.lng +
'&mode=driving&output=html&src="全亮共"')
break;
}
}
//底部弹出选择地图软件
if (arr.length === 1) {
realOpen(0)
}else{
plus.nativeUI.actionSheet({
title: "请选择导航使用的地图",
cancel: "取消",
buttons: arr
}, function(e) {
realOpen(e.index - 1)
})
}
}
function goMaps(url) {
var mContext = plus.android.runtimeMainActivity();
var Uri = plus.android.importClass('android.net.Uri');
var Intent = plus.android.importClass('android.content.Intent');
var intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
mContext.startActivity(intent);
}
const waiting = plus.nativeUI.showWaiting("正在加载")
const app = new Vue({
el: '#app',
data() {
return {
orderList: [
],
location: [0,0],
highlightText: "",
currentPage: 1,
isLoading: false,
}
},
methods: {
getDistance(from, to) {
var radLat1 = from[0]*Math.PI / 180.0;
var radLat2 = to[0]*Math.PI / 180.0;
var a = radLat1 - radLat2;
var b = from[0]*Math.PI / 180.0 - to[0]*Math.PI / 180.0;
var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
s = s *6378.137 ;// EARTH_RADIUS;
if (s < 1.5) {
return `${s * 1000}m`;
}
if (s > 50) {
return `>50km`;
}
return `${s.toFixed(2)}km`;
},
loadNextPage() {
if (this.isLoading) return;
this.isLoading = true;
$.ajax({
url: qlgUrl("app/orders/shundaiList"),
method: "GET",
data: {
page: this.currentPage+1,
},
dataType: 'json',
success: (res) => {
this.isLoading = false;
if(res.status == 1){
this.currentPage += 1;
$.each(res.data, (k, i)=>{
this.orderList.push(i)
});
}else{
mui.alert(res.msg);
}
},
error: function(err){
mui.alert("请求失败");
this.isLoading = false;
}
});
},
copyText() {
copyToClip(this.highlightText)
},
dismissHighLight() {
this.highlightText = "";
},
setHighLightText(text){
this.highlightText = text;
},
navi(destination) {
invokeNavi(this.location, destination);
},
loadData() {
$.ajax({
url: qlgUrl("app/orders/shundaiList"),
method: "GET",
data: {
page: this.currentPage,
},
dataType: 'json',
success: (res) => {
waiting.close();
if(res.status == 1){
this.orderList = res.data;
}else{
mui.alert(res.msg);
}
},
error: function(err){
waiting.close();
mui.alert("请求失败");
self.back();
}
});
},
},
created() {
plus.geolocation.getCurrentPosition((p) => {
console.log(p.coords.latitude);
console.log(p.coords.longitude);
this.location=[p.coords.latitude, p.coords.longitude];
this.loadData();
},function (err) {
mui.alert('获取当前位置失败')
waiting.close();
})
},
})