You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
3.0 KiB
148 lines
3.0 KiB
1 year ago
|
// 获取路径参数
|
||
|
import Vue from "vue";
|
||
|
|
||
|
// 格式化富文本
|
||
|
Vue.prototype.formateRichText = str => {
|
||
|
if (!str) return "";
|
||
|
var reg = new RegExp("<img", "g");
|
||
|
str = str.replace(reg, "<img class='sz-xcx-fwb-img' width='100%'")
|
||
|
reg = new RegExp("<IMG", "g");
|
||
|
str = str.replace(reg, "<img class='sz-xcx-fwb-img' width='100%'")
|
||
|
reg = new RegExp(" ", "g");
|
||
|
str = str.replace(reg, '<span style="width: 8rpx;display: inline-block;"></span>')
|
||
|
reg = new RegExp("section", "g");
|
||
|
str = str.replace(reg, 'div');
|
||
|
reg = new RegExp("↵", "g");
|
||
|
str = str.replace(reg, '<br />');
|
||
|
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.IsTel = tel => {
|
||
|
var pattern = /^1\d{10}$/;
|
||
|
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.indexOf('https://') != -1 || img.indexOf('http://') != -1) {
|
||
|
return img;
|
||
|
} else {
|
||
|
return 'https://static.ticket.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 = () => {
|
||
|
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
|
||
|
})
|
||
|
}
|