|
|
import loginApi from '@/api/login.js'; // 引入
import learnDriveApi from '@/api/learnDrive.js'; // 引入
import store from '@/store';
const install = (Vue, vm) => {
// 打开地图
const openMap = (lat, lng) => { uni.openLocation({ latitude: lat, longitude: lng }) }
// 距离换算
const distanceFn = (val) => { if (val * 1 < 1000) { return val + '米' } else { return (val / 1000).toFixed(2) + '公里' } } // 价格计算
const priceTo = (price = 0) => { // return (price / 100).toFixed(2)
return (parseInt(price * 100) / 100 / 100).toFixed(2)
}
const distanceLatLng = (lat1, lng1) => { var that = this; let lat2 = store.state.latLng.lat; let lng2 = store.state.latLng.lng; let rad1 = lat1 * Math.PI / 180.0; let rad2 = lat2 * Math.PI / 180.0; let a = rad1 - rad2; let b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0; let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos( rad2) * Math.pow( Math.sin(b / 2), 2))); s = s * 6378.137; s = Math.round(s * 10000) / 10000; s = s.toString(); s = s.substring(0, s.indexOf('.') + 2); return s
}
const getLocation = () => { return new Promise((resolve, reject) => { uni.getLocation({ type: 'wgs84', success: function(res) { console.log('当前位置的经度:' + res.longitude); console.log('当前位置的纬度:' + res.latitude); let obj = { lat: res.latitude, lng: res.longitude } store.commit('updateLatLng', obj) resolve(obj) } }); }).catch((e) => {}) }
// 查询用户信息
let getOwnerAccountBase = async () => { const [err, data] = await loginApi.getOwnerAccountBase(); if (data.code != 0) { uni.removeStorageSync('Authorization') uni.setStorageSync('userInfo', {}); return {} } uni.setStorageSync('userInfo', data.data); return data.data; }
// 查看是否有未支付订单
let checkOrderPay = async () => { // 这一步判断是否有实名,避免接口报错
let userInfo = await getOwnerAccountBase()
uni.setStorageSync('userInfo', userInfo); if (!userInfo || !userInfo.idcard) return false
// 1查询报名驾校
const [nulls, res] = await learnDriveApi.queryTrainingApplyByOwner() if (!res.data) return false let trainingApplyId = res.data[0].trainingApplyId let transfer = res.data[0].transfer if (!trainingApplyId) { return {} }
// 2查询订单id
let [err, res2] = await learnDriveApi.getTrainingApplyDetails({ trainingApplyId: trainingApplyId }) let detail = res2.data if (!detail.trainingOrderId) { return {} }
// 查询订单详情
let [err3, res3] = await learnDriveApi.getOwnerStudentStatus({ trainingOrderId: detail.trainingOrderId })
console.log('详情') console.log(res3.data) res3.data.trainingOrderId = detail.trainingOrderId
// 有同城转样没有完成 用这个?transferStatus 还是用transfer
if (res3.haveTransfer == 2) { uni.showModal({ content: '您有转校入学申请等完成', confirmText: '去完成', success: function(res) { if (res.confirm) { uni.navigateTo({ url: '/pages/user/businessHandling/transferAppliRecord/transferAppliRecord' }) } } }); } return res3.data
}
function addZeroPrefix(number) { return number < 10 ? `0${number}` : number }
let getDate = (date, splitor = '-') => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() return `${year}${splitor}${addZeroPrefix(month)}${splitor}${addZeroPrefix(day)}` }
const browser = { versions: function() { const u = navigator.userAgent; return { ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
} }() };
//调⽤APP交互
//apiName:⽅法名称
//parameter:参数
function appPostMessage(apiName, parameter) { // console.log(browser.versions)
if (browser.versions.ios) { //判读iOS或安卓
try { //参数类型可以为对象类型
var par = { "type": apiName, "callBack": { //回调函数⾃定义参数
"callBackName": 'arouseNativeMsg', }, "postParameter": parameter }; //iOS调⽤格式
window.webkit.messageHandlers.requestApp.postMessage(par); return "ios" } catch (err) { // on catch
} } else if (browser.versions.android) { try { //par参数格式为json字符串
var par = { "type": apiName, "callBack": { //
"callBackName": "arouseNativeMsg", //固定参数arouseNativeMsg
"callBackParms": parameter } }; //转jsonString
var parString = JSON.stringify(par); //Android调⽤格式window.forJs.requestApp(par);
window.forJs.requestApp(parString); return "android" } catch (err) { // on catch
} } else { alert("不是安卓或者IOS") } }
vm.$u.utils = { openMap, getLocation, getOwnerAccountBase, checkOrderPay, priceTo, distanceLatLng, distanceFn, getDate, appPostMessage } }
export default { install }
|