// 获取路径参数 import Vue from "vue"; // 格式化富文本 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.passportValid = (val) => { return /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/.test(val); } // 港澳通行证正则 Vue.prototype.passportValid = (val) => { return /^([A-Z]\d{6,10}(\(\w{1}\))?)$/.test(val); } // 外国人永久居留证正则 Vue.prototype.passportValid = (val) => { return /(^[A-Za-z]{3})([0-9]{12}$)/.test(val); } // 军官证正则 Vue.prototype.passportValid = (val) => { return /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/.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.IsMail = code => { var pattern = /^\w+@[a-z0-9]+\.[a-z]+$/i; return pattern.test(code); } // 图片显示判断 Vue.prototype.showImg = img => { if(!img) return; if (img.indexOf('https://') != -1 || img.indexOf('http://') != -1) { return img; } else { return 'https://tongli.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.getHeadImg = type => { return Vue.prototype.Post( { type, }, '/api/scene/getKumgangHeadImgList' ).then(res => { return res.data[0].image }); } // 路由页面跳转 Vue.prototype.gotoPath = path => { uni.navigateTo({ url: path }) } // 返回上一页 Vue.prototype.goBack = () => { console.log(getCurrentPages()) var pages = getCurrentPages(); var page = pages[pages.length - 1]; if(page.route == 'subPackages/techan/techanList') { uni.switchTab({ url: '/pages/index/index' }) return; } 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.goDetail = (item,type) => { if(item.link_type == 0) { // 本小程序页面 uni.navigateTo({ url: '/subPackages/detail/detail?type=' + type + '&id=' + item.id }) }else if(item.link_type == 1) { // 外部小程序 uni.navigateToMiniProgram({ shortLink: item.ext_link }) }else { // 外部H5 uni.navigateTo({ url: '/subPackages/webPage/webPage?url=' + item.ext_link }); } } // 拨打电话 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; } // 获取最大优惠券 params:{money:100,sku_ids:1,2} Vue.prototype.getMaxCoupon = async function (param) { let res = await this.Post(param, "/api/coupon/use_max_coupon_list") if (res.code == 1 && res.data.id) { this.$store.commit("choseCoupon",res.data); } return res.data } // 判断是否去外部链接 Vue.prototype.goOtherDetail = (item,type) => { if(item.link_type == 1) { // 外部小程序 uni.navigateToMiniProgram({ shortLink: item.ext_link }) return }else if(item.link_type == 2){ // 外部H5 uni.navigateTo({ url: '/subPackages/webPage/webPage?url=' + item.ext_link }); return } } // 根据类型判断详情页 Vue.prototype.goDetailByType=(item)=>{ let urlData = [ {name:'景区门票', url: '/subPackages/ticketBooking/detail',genre:'ticket'}, {name:'酒店民宿',url:'/subPackages/hotelHomestay/detail',genre:'hotel'}, {name:'餐饮美食',url:'/subPackages/food/foodDetail',genre:'food'}, {name:'文创特产',url:'/subPackages/techan/detail',genre:'pgoods'}, {name:'线路推荐',url:'/subPackages/line/detail',genre:'line'}, {name:'游记攻略',url:'/subPackages/travelGuide/detail',genre:'article'}, // {name:'游玩公告',url:'/subPackages/notice/noticeDetail'}, {name:'活动日历',url:'/subPackages/eventCalendar/detail',genre:'activity'} ] let detailData = urlData.find(v=>v.genre == item.genre) if (detailData) { let param = "" uni.navigateTo({ url: `${detailData.url}?id=${(['ticket','hotel'].includes(detailData.genre)?item.scenic_id:item.id)}` }) } }