var dictUtils = { // 处理状态 dealStateStr: { 0: "尚未处理", 1: "处理成功", 2: "处理失败" }, getDealStateStr: function(state) { return this.dealStateStr[state] } } function formatTime(time, showHour=true) { if (typeof time !== 'number' || time < 0) { return time } var timeArr = [] var hour = '' if (showHour) { hour = parseInt(time / 3600) time = time % 3600 timeArr.push(hour) } var minute = parseInt(time / 60) timeArr.push(minute) time = time % 60 var second = time timeArr.push(second) return (timeArr).map(function(n) { n = n.toString() return n[1] ? n : '0' + n }).join(':') } function formatLocation(longitude, latitude) { if (typeof longitude === 'string' && typeof latitude === 'string') { longitude = parseFloat(longitude) latitude = parseFloat(latitude) } longitude = longitude.toFixed(2) latitude = latitude.toFixed(2) return { longitude: longitude.toString().split('.'), latitude: latitude.toString().split('.') } } var dateUtils = { UNITS: { '年': 31557600000, '月': 2629800000, '天': 86400000, '小时': 3600000, '分钟': 60000, '秒': 1000 }, humanize: function(milliseconds) { var humanize = ''; for (var key in this.UNITS) { if (milliseconds >= this.UNITS[key]) { humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前'; break; } } return humanize || '刚刚'; }, format: function(dateStr) { var date = this.parse(dateStr) var diff = Date.now() - date.getTime(); if (diff < this.UNITS['天']) { return this.humanize(diff); } var _format = function(number) { return (number < 10 ? ('0' + number) : number); }; return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDate()) + '-' + _format(date.getHours()) + ':' + _format(date.getMinutes()); }, parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象 var a = str.split(/[^0-9]/); return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]); } }; var mobileUtils = { // 移动 isChinaMobile: /^134[0-8][0-9]{7}$|^(13[5-9]|14[4|7|8]|15[0|1|2|4|7|8|9]|16[5]|17[8]|18[2|3|4|7|8]|19[5|8])[0-9]{8}$/, // 联通 isChinaUnion: /^(13[0-2]|14[0|5|6]|15[5-6]|16[6-7]|17[5-6]|18[5-6])[0-9]{8}$/, // 电信 isChinaTelcom: /^(133|14[1|9]|15[3]|16[2]|17[3|7]|18[0|1|9]|19[1|3|9])[0-9]{8}|(1349)[0-9]{7}$/, // 虚拟运营商 isVNO: /^(17[0-1])[0-9]{8}$/, checkMobile: function(telphone) { if (telphone.length > 0) { telphone = telphone.trim(); } else { return this.setReturnJson(false, '请输入手机号'); } if (telphone.length !== 11) { return this.setReturnJson(false, '手机号码长度不符'); } if (this.isChinaMobile.test(telphone)) { return this.setReturnJson(true, '移动', { name: 'ChinaMobile' }); } else if (this.isChinaUnion.test(telphone)) { return this.setReturnJson(true, '联通', { name: 'ChinaUnion' }); } else if (this.isChinaTelcom.test(telphone)) { return this.setReturnJson(true, '电信', { name: 'ChinaTelcom' }); } else if (this.isVNO.test(telphone)) { return this.setReturnJson(true, '虚拟运营商', { name: 'VNO' }); } else { return this.setReturnJson(false, '手机号码不正确'); } }, setReturnJson: function(status, msg, data) { if (typeof status !== 'boolean' && typeof status !== 'number') { status = false; } if (typeof msg !== 'string') { msg = ''; } return { 'status': status, 'msg': msg, 'data': data }; } }; var fileUtils = { // 获取(路径+)文件名后缀 getFileExt(fileName) { if (fileName == '') return '' var index= fileName.lastIndexOf(".") // 获取最后一个.的位置 if (index >= 0) return fileName.substring(index + 1) else return '' }, isTypeImage(fileName) { let ext = this.getFileExt(fileName) if (ext == '') return false return [ 'png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff' ].indexOf(ext.toLowerCase()) !== -1; }, // 判断是否是地图图片的地理参考文件 isTypeGISConfig(fileName) { let ext = this.getFileExt(fileName) if (ext == '') return false return [ 'jgw', 'pgw', 'tfw', 'bpw' ].indexOf(ext.toLowerCase()) !== -1; } } export { dictUtils, formatTime, formatLocation, dateUtils, mobileUtils, fileUtils }