123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541 |
- export default {
- //根据年份和月份获取当月天数
- getDaysByYearAndMonth(year, month) {
- switch (month) {
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- return 31;
- case 4:
- case 6:
- case 9:
- case 11:
- return 30;
- case 2:
- return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 29 : 28;
- default:
- return 0;
- }
- },
-
- // 删除url中的参数
- funcUrlDel: function(name){
- var loca = window.location
- var baseUrl = loca.origin + loca.pathname + "?"
- var query = loca.search.substr(1)
- if(query.indexOf(name)>-1){
- var obj = {}
- var arr = query.split("&")
- for(var i = 0;i<arr.length;i++){
- arr[i] = arr[i].split("=")
- obj[arr[i][0]] = arr[i][1]
- }
- delete obj[name]
- var url = baseUrl+JSON.stringify(obj).replace(/[\"\{\}]/g,"").replace(/\:/g,"=").replace(/\,/g,"&")
- return url
- }
- },
- //获取当前时间UNIX时间缀
- GetUnixTime: function() {
- var timestamp = Date.parse(new Date()) / 1000;
- return timestamp;
- },
- //年月日时间比较
- dateCompare: function(start, end) {
- let time1 = Date.parse(new Date(start)) / 1000
- let time2 = Date.parse(new Date(end)) / 1000
- let result = time1 - time2
- if (result < 0) {
- return true
- } else if (result >= 0) {
- return false
- }
- },
- //unix时间戳转换成普通时间
- MyDate: function(time, type = 0) {
- if (time <= 0) {
- var d = new Date();
- } else {
- var d = new Date(time * 1000);
- }
- var Y = d.getFullYear();
- var M = d.getMonth() + 1;
- var D = d.getDate();
- var H = d.getHours();
- var Mi = d.getMinutes();
- var S = d.getSeconds();
- if (M < 10) {
- M = '0' + M;
- };
- if (D < 10) {
- D = '0' + D;
- };
- if (H < 10) {
- H = '0' + H;
- };
- if (Mi < 10) {
- Mi = '0' + Mi;
- };
- if (S < 10) {
- S = '0' + S;
- };
- if (type == 0) {
- return Y + '-' + M + '-' + D + ' ' + H + ':' + Mi + ':' + S;
- } else if (type == 1) {
- return Y + '.' + M + '.' + D;
- } else if (type == 2) {
- return H + ':' + Mi + ':' + S;
- } else if (type == 3) {
- return H + ':' + Mi
- } else if (type == 4) {
- return M + '/' + D
- } else if (type == 5) {
- return Y + '-' + M + '-' + D;
- }
- },
- GetWeek() {
- var d = new Date()
- var ww = d.getDay();
- if (ww == 0) ww = "星期日";
- if (ww == 1) ww = "星期一";
- if (ww == 2) ww = "星期二";
- if (ww == 3) ww = "星期三";
- if (ww == 4) ww = "星期四";
- if (ww == 5) ww = "星期五";
- if (ww == 6) ww = "星期六";
- return ww;
- },
- //获得随机数
- GetRandom: function(max) {
- return Math.floor(Math.random() * max);
- },
- /**
- * 随机生成字符串
- * len 指定生成字符串长度
- */
- getRandomString(len) {
- let _charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789',
- min = 0,
- max = _charStr.length - 1,
- _str = ''; //定义随机字符串 变量
- //判断是否指定长度,否则默认长度为15
- len = len || 15;
- //循环生成字符串
- for (var i = 0, index; i < len; i++) {
- index = (function(randomIndexFunc, i) {
- return randomIndexFunc(min, max, i, randomIndexFunc);
- })(function(min, max, i, _self) {
- let indexTemp = Math.floor(Math.random() * (max - min + 1) + min),
- numStart = _charStr.length - 10;
- if (i == 0 && indexTemp >= numStart) {
- indexTemp = _self(min, max, i, _self);
- }
- return indexTemp;
- }, i);
- _str += _charStr[index];
- }
- return _str;
- },
- //判断手机号
- IsMobile: function(mobile) {
- let preg = "^(0|86|17951)?(16[0-9]|17[0-9]|13[0-9]|15[012356789]|18[0-9]|19[0-9]|14[57])[0-9]{8}$";
- let valid = new RegExp(preg, "gim").test(mobile);
- return valid;
- },
- //判断联系方式是否是手机号码或座机号码
- CheckContact: function(number) {
- let valid = false
- let tel = /^0\d{2,3}-?\d{7,8}$/;
- let phone = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
- if (number.length == 11) { //手机号码
- if (phone.test(number)) {
- valid = true
- }
- } else if (number.indexOf("-") != -1) { //电话号码
- if (tel.test(number)) {
- valid = true
- }
- } else if (number.indexOf("-") == -1 && number.length == 7) {
- valid = true
- }
- return valid
- },
- //判断座机号
- IsLandline: function(number) {
- let preg = "/^0\d{2,3}-?\d{7,8}$/"
- let valid = new RegExp(preg).test(number)
- return valid
- },
- //验证身份证号码
- IsIDcard: function(num) {
- num = num.toUpperCase();
- var len, re;
- len = num.length;
- if (len == 0) return true;
- //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
- if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
- return false;
- }
- //验证前两位地区是否有效
- var aCity = {
- 11: "北京",
- 12: "天津",
- 13: "河北",
- 14: "山西",
- 15: "内蒙古",
- 21: "辽宁",
- 22: "吉林",
- 23: "黑龙江",
- 31: "上海",
- 32: "江苏",
- 33: "浙江",
- 34: "安徽",
- 35: "福建",
- 36: "江西",
- 37: "山东",
- 41: "河南",
- 42: "湖北",
- 43: "湖南",
- 44: "广东",
- 45: "广西",
- 46: "海南",
- 50: "重庆",
- 51: "四川",
- 52: "贵州",
- 53: "云南",
- 54: "西藏",
- 61: "陕西",
- 62: "甘肃",
- 63: "青海",
- 64: "宁夏",
- 65: "新疆",
- 71: "台湾",
- 81: "香港",
- 82: "澳门",
- 91: "国外"
- }
- if (aCity[parseInt(num.substr(0, 2))] == null) {
- return false;
- }
- //当身份证为15位时的验证出生日期。
- if (len == 15) {
- re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
- var arrSplit = num.match(re);
- //检查生日日期是否正确
- var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
- var bGoodDay;
- bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[
- 3])) && (
- dtmBirth.getDate() == Number(arrSplit[4]));
- if (!bGoodDay) {
- return false;
- }
- }
- //当身份证号为18位时,校验出生日期和校验位。
- if (len == 18) {
- re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
- var arrSplit = num.match(re);
- //检查生日日期是否正确
- var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
- var bGoodDay;
- bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(
- arrSplit[3])) &&
- (dtmBirth.getDate() == Number(arrSplit[4]));
- if (!bGoodDay) {
- return false;
- } else {
- //检验18位身份证的校验码是否正确。
- //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
- var valnum;
- var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
- var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
- var nTemp = 0,
- i;
- for (i = 0; i < 17; i++) {
- nTemp += num.substr(i, 1) * arrInt[i];
- }
- valnum = arrCh[nTemp % 11];
- if (valnum != num.substr(17, 1)) {
- return false;
- }
- }
- }
- return true;
- },
- //浮点数判断,货币判断len1小数点前位数len2小数点后位数
- IsFloat: function(float, len1, len2) {
- var preg = "^([0-9]{1," + len1 + "}\.{0,1}[0-9]{0," + len2 + "})$";
- var valid = new RegExp(preg, "gim").test(float);
- return valid;
- },
- //邮箱判断
- IsEmail: function(email) {
- var preg = "^\\w+((-\\w+)|(\.\\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$";
- var valid = new RegExp(preg, "gim").test(email);
- return valid;
- },
- //判断正常名称类的字符串
- IsStrName: function(str, len1, len2) {
- var preg = "^(\\w|[\\u4E00-\\u9FA5\\uF900-\\uFA2D]|[\\uFF00-\\uFFEF]){" + len1 + "," + len2 + "}$";
- var valid = new RegExp(preg, "gim").test(str);
- return valid;
- },
- //判断中文字符串
- IsStrZH: function(str, len1, len2) {
- var preg = "^([\\u4E00-\\u9FA5\\uF900-\\uFA2D]|[\\uFF00-\\uFFEF]){" + len1 + "," + len2 + "}$";
- var valid = new RegExp(preg, "gim").test(str);
- return valid;
- },
- //判断英文字符串
- IsStrEN: function(str, len1, len2) {
- var preg = "^([A-Za-z0-9]){" + len1 + "," + len2 + "}$";
- var valid = new RegExp(preg, "gim").test(str);
- return valid;
- },
- //判断整型数字
- IsNumeric: function(num, min, max) {
- var preg = "^(\\d){" + min + "," + max + "}$";
- var valid = new RegExp(preg, "gim").test(num);
- return valid;
- },
- //去左右空格;
- Trim: function(s) {
- return s.replace(/(^\s*)|(\s*$)/g, "");
- },
- //提取字符串中的img标签 生成自适应图片的字符串
- getImgSrcfromString: function(str) {
- let new_str = str
- let img_reg = /<img.*?(?:>|\/>)/gi
- let src_reg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i
- let imgs = str.match(img_reg)
- if (imgs != null) {
- for (let i = 0; i < imgs.length; i++) {
- let src = imgs[i].match(src_reg)[1]
- new_str = new_str.replace(imgs[i],
- `<img style="width:100%;height:auto;margin:10px 0;" src=${src} />`)
- }
- }
- return new_str
- },
- //获得今天的日期
- GetNowTime: function() {
- var now = new Date();
- var year = now.getFullYear();
- var month = now.getMonth() + 1;
- var day = now.getDate();
- if (month < 10) {
- month = '0' + month;
- };
- if (day < 10) {
- day = '0' + day;
- };
- // 如果需要时分秒,就放开
- // var h = now.getHours();
- // var m = now.getMinutes();
- // var s = now.getSeconds();
- var formatDate = year + '-' + month + '-' + day;
- return formatDate;
- },
- //获得当前月份
- GetNowMonth: function() {
- var now = new Date();
- var year = now.getFullYear();
- var month = now.getMonth() + 1;
- if (month < 10) {
- month = '0' + month;
- };
- var formatDate = year + '-' + month;
- return formatDate;
- },
- //获得当前时间加指定秒数
- GetTimeAdd: function(second) {
- // 如果需要时分秒,就放开
- var now = new Date();
- var time = now.getTime() + 1000 * second;
- var n2 = new Date(time);
- return n2.getHours() + ':' + n2.getMinutes();
- },
- //获得多少天以后的日期
- GetDateStr: function(addDayCount) {
- var dd;
- dd = new Date();
- dd.setDate(dd.getDate() + addDayCount); //获取AddDayCount天后的日期
- var y = dd.getFullYear();
- var m = dd.getMonth() + 1; //获取当前月份的日期
- var d = dd.getDate();
- if (m < 10) {
- m = '0' + m;
- };
- if (d < 10) {
- d = '0' + d;
- };
- return y + "-" + m + "-" + d;
- },
- //数组中重复元素删除
- RepeatArrayClear: function(array) {
- var arr = [];
- for (var i = 0; i < array.length; i++) {
- if (arr.indexOf(array[i]) == -1) {
- arr.push(array[i]);
- }
- }
- return arr;
- },
- //提示信息框
- Toast: function(title, duration = 2000) {
- uni.showToast({
- icon: 'none',
- title: title,
- duration: duration
- });
- },
- //显示模态框
- Modal(title, content, type) {
- var promise = new Promise(function(resolve, reject) {
- if (type == 1) {
- uni.showModal({
- showCancel: false,
- title: title,
- content: content,
- success: function(e) {
- if (e.confirm) {
- resolve(true);
- } else {
- resolve(false);
- }
- }
- });
- } else {
- uni.showModal({
- title: title,
- content: content,
- success: function(e) {
- if (e.confirm) {
- resolve(true);
- } else {
- resolve(false);
- }
- }
- });
- }
- });
- return promise;
- },
- /**获取url地址中的指定参数值*/
- getUrlParams(name) {
- return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [,
- ''])[1].replace(/\+/g, '%20')) || null
- },
- // 打电话
- call(num) {
- uni.makePhoneCall({
- phoneNumber: num
- });
- },
- // 导航
- toMap(info,name='') {
- // uni.getLocation({
- // type: 'wgs84', //返回可以用于uni.openLocation的经纬度
- // // 用户允许获取定位
- // success: function(res) {
- // console.log('getLocation', res)
- // if (res.errMsg == "getLocation:ok") {
- uni.openLocation({
- // 传入你要去的纬度
- latitude: Number(info['lat']),
- // 传入你要去的经度
- longitude: Number(info['lng']),
- // 要去位置的名称
- name:name,
- // 缩放大小
- scale: 18,
- success: function() {
- console.log('成功的回调success');
- }
- });
- // }
- // },
- // // 用户拒绝获取定位后 再次点击触发
- // fail: function(res) {
- // console.log(res)
- // if (res.errMsg == "getLocation:fail auth deny") {
- // uni.showModal({
- // content: '检测到您没打开获取信息功能权限,是否去设置打开?',
- // confirmText: "确认",
- // cancelText: '取消',
- // success: (res) => {
- // if (res.confirm) {
- // uni.openSetting({
- // success: (res) => {
- // console.log('确定');
- // }
- // })
- // } else {
- // return false;
- // }
- // }
- // })
- // }
- // }
- // });
- },
- // 设置自定义导航栏 页面滚动调整导航的透明度
- // e 滚动事件对象, headerStatus 是否显示自定义导航栏背景色
- initOnPageScroll(e, _this, headerStatus = true) {
- if (e.scrollTop > 100) {
- _this.backButtonStyle = 'color:#323232;';
- _this.headerStyle = headerStatus ? 'background-color:rgba(255,255,255,0.9)' :
- 'background-color:rgba(255,255,255,0)';
- _this.titleStyle = 'opacity:1';
- // 设置页面导航栏颜色
- uni.setNavigationBarColor({
- frontColor: '#000000',
- backgroundColor: 'rgba(255,255,255,0)'
- })
- } else {
- _this.backButtonStyle = 'color:#FFFFFF;',
- _this.headerStyle = 'background-color:rgba(255,255,255,0)';
- _this.titleStyle = 'opacity:0';
- // 设置页面导航栏颜色
- uni.setNavigationBarColor({
- frontColor: '#ffffff',
- backgroundColor: 'rgba(255,255,255,0)'
- })
- }
- },
- // 加载自定义字体文件
- getFontFamily() {
- uni.loadFontFace({
- family: 'ysbth',
- source: 'url("/static/font/ysbth.ttf")',
- success() {
- console.log('字体加载成功')
- },
- fail(err) {
- console.log('字体加载失败',err)
- }
- })
- },
- }
|