123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- export default {
- // 日期格式化
- formatDate(datestr, fmt = 'yyyy-MM-dd') {
- let date = new Date(datestr)
- let o = {
- 'M+': date.getMonth() + 1, // 月份
- 'd+': date.getDate(), // 日
- 'h+': date.getHours(), // 小时
- 'm+': date.getMinutes(), // 分
- 's+': date.getSeconds(), // 秒
- 'S': date.getMilliseconds() // 毫秒
- }
- if (/(y+)/.test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (date.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
- },
-
- // 判断期间范围是否在12:00-12:30,20:00-20:30
- duringTime(){
- let nowDate = new Date();
- let hour = nowDate.getHours();
- let minutes = nowDate.getMinutes();
- let seconds = nowDate.getSeconds();
-
- if((hour == 12 && minutes < 30) || (hour == 20 && minutes < 30)){
- return true;
- } else {
- return false;
- }
- },
- // 时间格式化
- formatDateTime(datestr, fmt = 'yyyy-MM-dd hh:mm:ss') {
- let date = new Date(datestr)
- let o = {
- 'M+': date.getMonth() + 1, // 月份
- 'd+': date.getDate(), // 日
- 'h+': date.getHours(), // 小时
- 'm+': date.getMinutes(), // 分
- 's+': date.getSeconds(), // 秒
- 'S': date.getMilliseconds() // 毫秒
- }
- if (/(y+)/.test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (date.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
- },
- // 时间戳转时间倒计时
- formatTime(datestr){
- let day = Math.floor(datestr/1000/60/60/24);
- let hour = Math.floor(datestr/1000/60/60%24);
- let min = Math.floor(datestr/1000/60%60);
- let sec = Math.floor(datestr/1000%60);
- if (hour < 10) {
- hour = "0" + hour;
- }
- if (min < 10) {
- min = "0" + min;
- }
- if (sec < 10) {
- sec = "0" + sec;
- }
- let str = '';
- if(day > 0){
- str = day+'天'+hour + ":" + min + ":" + sec;
- }else{
- str = hour + ":" + min + ":" + sec;
- }
- return str;
- },
-
- // 计算工作年限
- getAge(datestr){
- if(datestr){
- let nowDate = new Date().toLocaleDateString();
- let jobDate = new Date(datestr * 1000).toLocaleDateString();
- let nowYear = Number(nowDate.split('/')[0]);
- let nowMonth = Number(nowDate.split('/')[1]);
- let nowDay = Number(nowDate.split('/')[2]);
-
- let jobYear = Number(jobDate.split('/')[0]);
- let jobMonth = Number(jobDate.split('/')[1]);
- let jobDay = Number(jobDate.split('/')[2]);
-
- let jobAge = nowYear - jobYear - 1;
-
- if(jobMonth < nowMonth || (jobMonth == nowMonth && jobDay <= nowDay)){
- jobAge++;
- }
- return jobAge;
- }else{
- return '-';
- }
- },
- /*
- * 根据Value格式化为带有换行、空格格式的HTML代码
- * @param strValue {String} 需要转换的值
- * @return {String}转换后的HTML代码
- * @example
- * getFormatCode("测\r\n\s试") => “测<br/> 试”
- */
- getFormatCode(strValue) {
- return strValue.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' ');
- },
- // 格式化数字 ‘xx.00’
- formatNum(num, len = 2) {
- if (isNaN(num) || !num) {
- return '0.00';
- } else {
- return parseFloat(num).toFixed(len)
- }
- },
- // 格式化手机号
- formatPhone(cellValue) {
- if (Number(cellValue) && String(cellValue).length === 11) {
- var mobile = String(cellValue)
- var reg = /^(\d{3})\d{4}(\d{4})$/
- return mobile.replace(reg, '$1****$2')
- } else {
- return cellValue
- }
- },
- // 保存到localstorage
- setStorage(key, value) {
- if (value.expire) {
- value.expire = new Date().getTime() + value.expire * 1000;
- }
- uni.setStorage({
- key: key,
- data: JSON.stringify(value),
- success: function () {}
- });
- },
- // 获取localStorage里面到name值
- getStorage(name) {
- try {
- const value = JSON.parse(uni.getStorageSync(name));
- let nowDate = new Date();
- let expireDate = new Date(value.expire);
- if (value) {
- if (value.expire) {
- if (nowDate < expireDate) {
- return value.token
- } else {
- return null;
- }
- } else {
- return value
- }
- } else {
- return null;
- }
- } catch (e) {
- return null;
- }
- },
- //随机key
- getRandom(len) {
- len = len || 32;
- var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
- var maxPos = $chars.length;
- var pwd = '';
- for (var i = 0; i < len; i++) {
- pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
- }
- return pwd;
- },
- // 将返回的时间戳与当前时间戳进行比较,转换成几秒前、几分钟前、几小时前、几天前的形式
- getDateDiff(dateTime) {
- var publishTime = dateTime, //秒
- d_seconds,
- d_minutes,
- d_hours,
- d_days,
- timeNow = parseInt(new Date().getTime() / 1000), //秒
- d,
- date = new Date(publishTime * 1000),
- Y = date.getFullYear(),
- M = date.getMonth() + 1,
- D = date.getDate(),
- H = date.getHours(),
- m = date.getMinutes(),
- s = date.getSeconds();
- //小于10的在前面补0
- if (M < 10) {
- M = '0' + M;
- }
- if (D < 10) {
- D = '0' + D;
- }
- if (H < 10) {
- H = '0' + H;
- }
- if (m < 10) {
- m = '0' + m;
- }
- if (s < 10) {
- s = '0' + s;
- }
- d = timeNow - publishTime;
- d_days = parseInt(d / 86400);
- d_hours = parseInt(d / 3600);
- d_minutes = parseInt(d / 60);
- d_seconds = parseInt(d);
- if (d_days > 0 && d_days < 3) {
- return d_days + '天前';
- } else if (d_days <= 0 && d_hours > 0) {
- return d_hours + '小时前';
- } else if (d_hours <= 0 && d_minutes > 0) {
- return d_minutes + '分钟前';
- } else if (d_seconds < 60) {
- if (d_seconds <= 0) {
- return '刚刚发表';
- } else {
- return d_seconds + '秒前';
- }
- } else if (d_days >= 3 && d_days < 30) {
- return M + '-' + D + ' ' + H + ':' + m;
- } else if (d_days >= 30) {
- return Y + '-' + M + '-' + D + ' ' + H + ':' + m;
- }
- },
- // 去登录
- toLogin(){
- uni.showModal({
- title: '提示',
- content: '登录才可以领取奖励,是否去登录',
- success: function (res) {
- if (res.confirm) {
- uni.navigateTo({
- url: "/pages/login/login"
- })
- } else if (res.cancel) {
-
- }
- }
- })
- },
- //判断微信浏览器
- iswx() {
- let isWeixin = false;
- // #ifdef H5
- var ua = navigator.userAgent.toLowerCase();
- isWeixin = ua.indexOf('micromessenger') != -1;
- // #endif
- return isWeixin;
- },
- // 微信登录跳转
- toWechatlogin(params) {
- this.setStorage('back_url', params);
- if (this.iswx()) {
- let url = encodeURI('https://www.glt365.com/weapp/bind');
- window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3d3fef277795c663&redirect_uri='+url+'&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect';
- } else {
- uni.navigateTo({
- url: '/pages/login/login'
- })
- }
- },
- // 跳转页面 type: switchTab
- toUrl(url, type){
- var reg = /(http|https):\/\/([\w.]+\/?)\S*/ig
- if(url.match(reg)){
- uni.navigateTo({
- url: '/pages/user/webView?url='+url
- })
- } else {
- if(type == 'switchTab'){
- uni.switchTab({
- url: url
- })
- }else{
- uni.navigateTo({
- url: url
- })
- }
-
- }
- },
- //
- formatLocation(res) {
- var regex = /^(北京市|天津市|重庆市|上海市|香港特别行政区|澳门特别行政区)/;
- var REGION_PROVINCE = [];
- var addressBean = {
- REGION_PROVINCE: null,
- REGION_COUNTRY: null,
- REGION_CITY: null,
- ADDRESS: null
- };
-
- function regexAddressBean(address, addressBean) {
- regex = /^(.*?[市]|.*?地区|.*?特别行政区)(.*?[市区县])(.*?)$/g;
- var addxress = regex.exec(address);
- addressBean.REGION_CITY = addxress[1];
- addressBean.REGION_COUNTRY = addxress[2];
- addressBean.ADDRESS = addxress[3] + "(" + res.name + ")";
- // console.log(addxress);
- }
- if (!(REGION_PROVINCE = regex.exec(res.address))) {
- regex = /^(.*?(省|自治区))(.*?)$/;
- REGION_PROVINCE = regex.exec(res.address);
- addressBean.REGION_PROVINCE = REGION_PROVINCE[1];
- regexAddressBean(REGION_PROVINCE[3], addressBean);
- } else {
- addressBean.REGION_PROVINCE = REGION_PROVINCE[1];
- regexAddressBean(res.address, addressBean);
- }
- return addressBean
- },
- // 计算经纬度距离
- distance(location1, location2) {
- let lat1 = location1.lat;
- let lng1= location1.lon;
- let lat2 = location2.lat;
- let lng2= location2.lon;
-
- var radLat1 = lat1 * Math.PI / 180.0;
- var radLat2 = lat2 * Math.PI / 180.0;
- var a = radLat1 - radLat2;
- var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
- var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
- s = s * 6378.137;
- s = Math.round(s * 10000) / 10000;
- return this.formatNum(s) // 单位千米
- }
- }
|