// 获取路径参数 import Vue from "vue"; import store from '@/store'; // 格式化富文本 Vue.prototype.formateRichText = str => { if (!str) return ""; var reg = new RegExp("') reg = new RegExp("section", "g"); str = str.replace(reg, 'div'); reg = new RegExp("↵", "g"); str = str.replace(reg, '
'); return str; } // 获取路径参数 Vue.prototype.getUrlPara = url => { let arrUrl = url.split("?"); let para = arrUrl[1]; return para ? para.split('&') : false; } // 中文姓名规则 Vue.prototype.idChinaName = (val) => { var pattern = /^[\u4E00-\u9FA5]{2,4}$/ return pattern.test(val); } // 身份证验证规则 Vue.prototype.idCardNumber = (val) => { var pattern = /^\d{17}(\d{1}|[X|x])$/ return pattern.test(val); } // 护照验证正则 Vue.prototype.passportValid = (val) => { return /^([a-zA-z]|[0-9]){5,17}$/.test(val); } // 台胞证正则 Vue.prototype.taiwanValid = (val) => { return /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/.test(val); } // 港澳通行证正则 Vue.prototype.gangaoValid = (val) => { return /^([A-Z]\d{6,10}(\(\w{1}\))?)$/.test(val); } // 外国人永久居留证正则 Vue.prototype.foreignerValid = (val) => { return /(^[A-Za-z]{3})([0-9]{12}$)/.test(val); } // 军官证正则 Vue.prototype.officerValid = (val) => { return /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/.test(val); } // 邮箱验证正则 Vue.prototype.emailValid = (val) => { return /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(val) } //判断电话号码格式 Vue.prototype.IsTel = tel => { var pattern = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/; return pattern.test(tel); } //判断澳门电话号码格式 Vue.prototype.IsTelMacau = tel => { var pattern = /^\d{8}$/; return pattern.test(tel); } //验证码格式 Vue.prototype.IsCode = code => { var pattern = /^\d{6}$/; return pattern.test(code); } // 图片显示判断 Vue.prototype.showImg = img => { if (!img) return; if (img.indexOf('https://') != -1 || img.indexOf('http://') != -1) { return img; } else { return Vue.prototype.NEWAPIURL + img; } } Vue.prototype.showImgs = img => { if (!img) return; if (img.indexOf('https://') != -1 || img.indexOf('http://') != -1) { return img; } else { return 'https://api.cloud.sz-trip.com' + img; } } // 获取经纬度 Vue.prototype.getLocation = () => { uni.startLocationUpdate({ success: res => { uni.onLocationChange(data => { uni.setStorageSync('location', { lat: data.latitude, lon: data.longitude }); }) } }) } // 路由页面跳转 Vue.prototype.gotoPath = path => { uni.navigateTo({ url: path }) } // 返回上一页 Vue.prototype.goBack = () => { getCurrentPages().length > 1 ? uni.navigateBack({}) : uni.switchTab({ url: '/pages/index/index' }) } // 打开地图 Vue.prototype.openLocation = (lat, lon) => { uni.openLocation({ latitude: Number(lat), longitude: Number(lon), success: function() { console.log('success'); } }); } // 拨打电话 Vue.prototype.clickPhone = (phone) => { uni.makePhoneCall({ phoneNumber: phone }) } //周几 Vue.prototype.ShowDateDay = day => { let stateTxt = ""; switch (day) { case 0: stateTxt = '周日' break; case 1: stateTxt = '周一' break; case 2: stateTxt = '周二' break; case 3: stateTxt = '周三' break; case 4: stateTxt = '周四' break; case 5: stateTxt = '周五' break; case 6: stateTxt = '周六' break; } return stateTxt } Date.prototype.Format = function(fmt) { //author: meizz var o = { "Y+": this.getFullYear(), //月份 "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]) .length))); return fmt; } // 是否接收订阅消息 Vue.prototype.getSubscribeMessage = () => { const templateIds = [ // 退款成功通知 'hRZoiEES2BWtKb6Xgsnn8khLQH9un5j_11qu0bwlhfE', // 订单核销通知 // '7D-JP7o0nQ_NiQk2w8mBs8jdT1_7ofvyBN-G9NLY2Zk', // 订单支付成功通知 // '6cHez9KDlCDp1_nWUlUSV7qEaahIQWmYVlOCE-J6ODQ', // 出票失败提醒 // 'G-N85zK2gPwgTRZWQrtHZo_-5TFcdAqBxSk4qsqcvVc', // 出票结果通知 'YyTCUIYBnrj9CyKks8cOjNX_Rk8a4yVdswMP-zXVbhc' ] uni.requestSubscribeMessage({ tmplIds: templateIds, complete(res) { uni.navigateTo({ url: '/subPackages/order/trades' }) } }) } // 金刚区头图 Vue.prototype.getHeadImg = type => { return Vue.prototype.Post({ type, }, '/api/public_service/getKumgangHeadImgList' ).then(res => { return Vue.prototype.NEWAPIURL + res.data[0].image }); } // 判断君到苏州token是否生效 Vue.prototype.checkIsLoginJdsz = () => { return new Promise((resolve, reject) => { uni.request({ method: 'POST', url: 'https://api.cloud.sz-trip.com/api/uservice/user/getMyInfo', header: { 'content-type': 'application/json', 'token': uni.getStorageSync('jdszToken') || '' }, data: {}, success: res => { console.log(16516651,res) if (res.data.code == 1) { resolve(res.data.data.token) } else if (res.data.code == 401) { // 重新登陆 Vue.prototype.Post({}, '/api/user/getAuthCode').then(res => { if (res.code && res.code == 200 && res.data) { uni.request({ method: 'POST', url: 'https://api.cloud.sz-trip.com/api/uservice/user/loginByChangshu', header: { 'content-type': 'application/json' }, data: { code: res.data }, success: res => { if(res.data.code == 401) { store.commit('changeLoginPath'); resolve('') return; } if(res.data.code == 0) { uni.showToast({ title: res.data.msg, icon: 'none' }) return; } uni.setStorageSync('jdszToken', res.data.data.token) resolve(res.data.data.token) } }) } }).catch(res => { if (res.data.code == 201) { uni.showToast({ title: '未授权手机号', icon: 'none' }) // 去登录页面授权 setTimeout(()=>{ uni.navigateTo({ url: '/pages/login/login?needAuth=1' }) },400) } }) } } }) }) } // 跳转君到苏州详情 Vue.prototype.gotoDetailByTypeToJdsz = item => { let httpUrl = 'https://test.m.cloud.sz-trip.com/' let url = '' // 酒景套餐 if (item.is_package) { url = httpUrl + 'MailMerchandiseDetail?id=' + item.id } switch (item.type) { case 'ticket': // 是产品的 票务 url = httpUrl + 'ScenicDetail?id=' + item.scene_id || item.id break; case 'hotel': // 是产品的 酒店 url = httpUrl + 'HotelDetail?id=' + item.scene_id || item.id break; case 'post': // 是产品的 邮寄 url = httpUrl + 'MailMerchandiseDetail?id=' + item.id break; case 'line': // 是产品的 线路 url = httpUrl + 'LineDetail?id=' + item.id break; case 'coupon': // 是产品的 卡券 url = httpUrl + 'CardDetail?id=' + item.id break; case 'show': // 是产品的 演出 url = httpUrl + 'PerformDetail?id=' + item.id break; case 'food': // 是产品的 食品 url = httpUrl + 'FoodDetail?id=' + item.id break; case 'activity': // 是产品的 活动 todo 这里要弄成是活动的id去跳转的,特别是从 江苏夜游过去的 url = httpUrl + 'AppointmentDetail?id=' + item.act_calendar_id || item.id break; case 'calendar': // ai入口活动日历 url = httpUrl + 'AppointmentDetail?id=' + item.id break; case 'movie': // 是产品的 电影 url = httpUrl + 'MovieDetail?id=' + item.third_id || item.id break; case 'scenic': // 是场景的 景点 url = httpUrl + 'ScenicDetail?id=' + item.id break; case 'room': // 是场景的 酒店 url = httpUrl + 'HotelDetail?id=' + item.scene_id || item.id break; case 'restaurant': // 是场景 美食 url = httpUrl + 'RestaurantDetail?id=' + item.id break; case 'tenscenic': // 是场景 十景 url = httpUrl + 'TenScenicDetail?id=' + item.id break; case 'venue': // 是场景的 场馆 url = httpUrl + 'PavilionDetail?id=' + item.scene_id || item.id break; case 'cinema': // 是场景的 影院 url = httpUrl + 'CinemaDetail?id=' + item.third_id || item.id break; case 'relic': // 文物 url = httpUrl + 'ProtectionUnitsInfo?id=' + item.id break; case 'units': // 文化单位 url = httpUrl + 'CulturalUnitInfo?id=' + item.id break; case 'red_map': // 红色地图 url = httpUrl + 'RedTouristInfo?id=' + item.id break; case 'travels': // 红色地图 url = httpUrl + 'TravelNotesIntroductionInfo?id=' + item.id break; } Vue.prototype.checkIsLoginJdsz().then(res => { if(res) { uni.navigateTo({ url: '/subPackages/webPage/webPage?url=' + encodeURIComponent(url + '&token=' + res) }); } }) } Vue.prototype.exploit = () => { uni.showToast({ title: '开发中', icon: 'none' }) } // 周边特惠活动跳转详情 Vue.prototype.gotoWebUrl = item => { if(item.url) { uni.navigateTo({ url: '/subPackages/webPage/webPage?url=' + encodeURIComponent(item.url) }); } }