vue常用的小方法(方便实用)
1.判断对象里面是否为空
const isEmptys = (obj) => { for(let key in obj){ return false } return true }; isEmptys ({}); //true //这里你记得分两次打印,return false 后面都不走了 isEmptys ({csdn: 'Ocean'}); // false
2.获取百分数
// 数组对象求和 export function getCountTotal(arr, keyName) { let sum = 0; sum = arr.reduce(function(total, currentValue, currentIndex, arr) { return currentValue[keyName] ? (total + Number(currentValue[keyName])) : total; }, 0); return sum; }
3.数组对象指定键值求和
// 数组对象求和 export function getCountTotal(arr, keyName) { let $total = 0; $total = arr.reduce(function(total, currentValue, currentIndex, arr) { return currentValue[keyName] ? (total + Number(currentValue[keyName])) : total; }, 0); return $total; }
4.时间戳(13位)转时间格式
//时间戳转化成时间格式 export function timeFormat(timestamp) { //timestamp是整数,否则要parseInt转换,不会出现少个0的情况 //如果timestamp是10位数的需要 timestamp* 1000 var time = new Date(timestamp); var year = time.getFullYear(); var month = time.getMonth() + 1; var date = time.getDate(); var hours = time.getHours(); var minutes = time.getMinutes(); var seconds = time.getSeconds(); month = month < 10 ? '0' + month : month; date = date < 10 ? '0' + date : date; hours = hours < 10 ? '0' + hours : hours; minutes = minutes < 10 ? '0' + minutes : minutes; seconds = seconds < 10 ? '0' + seconds : seconds; return year + '-' + month + '-' + date + ' ' + hours + ':' + minutes + ':' + seconds; }
5.根据日期(YYYY-MM-DD)获取星期几
export function getWeekByDate(dateString) { var date; if (!dateString) { date = new Date(); } else { var dateArray = dateString.split("-"); date = new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]); } return "星期" + "日一二三四五六".charAt(date.getDay()); }
6.百度地图坐标和腾讯地图坐标互转
/** * 坐标转换,百度地图坐标转换成腾讯地图坐标 * lng 腾讯经度(pointy) * lat 腾讯纬度(pointx) * 经度>纬度 */ bMapToQQMap(lng, lat) { if (lng == null || lng == '' || lat == null || lat == '') return [lng, lat]; var x_pi = 3.14159265358979324; var x = parseFloat(lng) - 0.0065; var y = parseFloat(lat) - 0.006; var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi); var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi); var lng = (z * Math.cos(theta)).toFixed(7); var lat = (z * Math.sin(theta)).toFixed(7); return [lng, lat]; }, /** * 坐标转换,腾讯地图转换成百度地图坐标 * lng 腾讯经度(pointy) * lat 腾讯纬度(pointx) * 经度>纬度 */ qqMapToBMap(lng, lat) { if (lng == null || lng == '' || lat == null || lat == '') return [lng, lat]; var x_pi = 3.14159265358979324; var x = parseFloat(lng); var y = parseFloat(lat); var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi); var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi); var lng = (z * Math.cos(theta) + 0.0065).toFixed(5); var lat = (z * Math.sin(theta) + 0.006).toFixed(5); return [lng, lat]; },
7.全局时间格式封装
export function getSystemDate(param, dateVal) { let systemDate = dateVal ? new Date(dateVal) : new Date(), year = systemDate.getFullYear(), month = systemDate.getMonth() + 1, date = systemDate.getDate(), hours = systemDate.getHours(), minutes = systemDate.getMinutes(), seconds = systemDate.getDate(), milliseconds = systemDate.getMilliseconds(); month = month < 10 ? '0' + month : month; date = date < 10 ? '0' + date : date; hours = hours < 10 ? '0' + hours : hours; minutes = minutes < 10 ? '0' + minutes : minutes; seconds = seconds < 10 ? '0' + seconds : seconds; if (param == 0) { return year + '-' + month + '-' + date; } else if (param == 1) { return year + '-' + month + '-' + date + " " + hours + ":" + minutes + ":" + seconds; } else if (param == 2) { return year + '-' + month + '-' + date + " " + hours + ":" + minutes + ":" + seconds + '.' + milliseconds; } else if (param == 3) { return year + '-' + month; } else if (param == 4) { return year } }
8.判断object类型
//判断Object数据类型 export function isType(obj) { var type = Object.prototype.toString.call(obj); if (type == '[object Array]') { return 'Array'; } else if (type == '[object Object]') { return "Object" } else { return 'param is no object type'; } }
9.判断浏览器类型
/** * 判断浏览器的类型 */ export function browserType() { var userAgent = navigator.userAgent.toLowerCase(); var testCenter = { ie: function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) return true; else return false; }, edge: () => { return /dge/.test(userAgent) }, chrome: () => { return /chrome/.test(userAgent) }, safari: () => { return /safari/.test(userAgent) && !(/chrome/.test(userAgent)) }, opera: () => { return /opera/.test(userAgent) }, msie: () => { return /msie/.test(userAgent) && !/opera/.test(userAgent) }, mozilla: () => { return /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent) } }; var browserObj = {}; for (var k in testCenter) { var result = testCenter[k](); var version = (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1]; if (result) { browserObj.browser = k; browserObj.version = version; return browserObj; } } }
10.获取指定位置的天气信息
//获取天气信息 getWeather() { axios .get('https://geoapi.qweather.com/v2/city/lookup', { params: { location: '杭州市', key: '', _t: new Date().getTime() }, }) .then(({ data: res }) => { // console.log(res); if (res.code != 200) { return this.$message.error('获取地理位置定位ID(locationID)失败'); } if (res.location.length > 0) { axios .get('https://devapi.qweather.com/v7/weather/now', { params: { location: res.location[0].id, key: '', _t: new Date().getTime() }, }) .then(({ data: res1 }) => { // console.log('res1', res1); if (res1.status != 0) { return this.$message.error('获取天气信息失败'); } this.$set(this.weatherInfo, 'wea', res1.now.text); this.$set(this.weatherInfo, 'tem', res1.now.temp); this.$set(this.weatherInfo, 'wea_img', res1.fxLink); }) .catch((error) => { console.log(error); return false; }); } else { return this.$message.error('无法获取地理位置定位ID(locationID)'); } }) .catch((e) => { console.log(e); return false; }); },
11.判断数据是否是json
//判断数据源是不是json数据 isJsonString(str) { try { if (typeof JSON.parse(str) == 'object') { return true; } } catch (e) { console.log('e', e); } return false; },
12.获取时间(一般时间选择器默认时间用到)
//获取当前时间,day为number,getDay(-1):昨天的日期;getDay(0):今天的日期;getDay(1):明天的日期; getDay(day) { let today = new Date(), targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day; today.setTime(targetday_milliseconds); let tYear = today.getFullYear(), tMonth = today.getMonth(), tDate = today.getDate(), tHour = today.getHours(), tMinute = today.getMinutes(), tSeconds = today.getSeconds(); tMonth = this.doHandleMonth(tMonth + 1); tDate = this.doHandleMonth(tDate); tHour = this.doHandleMonth(tHour); tMinute = this.doHandleMonth(tMinute); tSeconds = this.doHandleMonth(tSeconds); return tYear + '-' + tMonth + '-' + tDate + ' ' + tHour + ':' + tMinute + ':' + tSeconds; },
分类:
零碎的知识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix