import loginApi from '@/api/login.js'; // 引入 import learnDriveApi from '@/api/learnDrive.js'; // 引入 import store from '@/store'; const install = (Vue, vm) => { const callPhone = (phone)=> { phone = phone.trim() if(!phone) { uni.showToast({ title: '暂无联系方式', icon: 'none' }); return } uni.showModal({ content: '确定要拨打:'+phone+'?' , success: function (res) { if (res.confirm) { uni.makePhoneCall({ phoneNumber: phone //仅为示例 }); } else if (res.cancel) { console.log('用户点击取消'); } } }); } // 打开地图 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)}` } var lastTime = 0 var audioContext = uni.createInnerAudioContext() // 播放音频的 let shakeFn = (res)=>{ if(!store.state.havePay) return false let nowTimer = new Date().getTime() if (nowTimer - lastTime < 1000) return lastTime = nowTimer // 自己根据自己的力度调节 变量大小 满足自己设定的值后触发自己的逻辑 if ((Math.abs(res.x) > 20 || Math.abs(res.y) > 20 || Math.abs(res.z) > 20) ) { console.log('yayaoyaoya6666666666666666') // 进入判断后 相当于摇一摇成功 audioContext.src = 'https://lg-fe2b58o2-1255788064.cos.ap-shanghai.myqcloud.com/shark.mp3' // 播放音频 audioContext.play() // 播放 uni.navigateTo({ url: '/pages/user/studentIdImg/studentIdImg' }) } } vm.$u.utils={ callPhone, openMap, getLocation, getOwnerAccountBase, checkOrderPay, priceTo, distanceLatLng, distanceFn, getDate, shakeFn } } export default { install }