/**
* 读取 URL 参数
*/
export function getQuery(key) {
var search = decodeURI(location.search)
if (!search) return
var strSearch = search.split('?')[1]
if (!strSearch) return
var params = strSearch.split('&')
var paramMap = {}
for (var i = 0; i < params.length; i++) {
var arr = params[i].split('=')
paramMap[arr[0]] = arr[1]
}
return paramMap[key]
}
/**
* 获取Hash
* @returns
*/
function getHash(){
var hash = location.hash
return hash && hash.split('#')
}
/**
* 写入URL参数
* @param {*} params
*/
export function setQuery(params) {
var search = location.search
var pathname = location.pathname
var arrParams = []
if (search) {
var strSearch = search.split('?')[1]
arrParams = strSearch.split('&')
}
var paramMap = {}
for (var i = 0; i < arrParams.length; i++) {
var arr = arrParams[i].split('=')
paramMap[arr[0]] = arr[1]
}
var newParams = Object.assign(paramMap, params)
var keys = Object.keys(newParams)
var arrSearch = []
for (var i = 0; i < keys.length; i++) {
if (newParams[keys[i]]) {
arrSearch.push(keys[i] + '=' + newParams[keys[i]])
}
}
history.pushState('', '', pathname + '?' + arrSearch.join('&'))
}
/**
* 接口鉴权校验
*/
var APP_ID = "2021*****LAY"
var APP_KEY = "swbleq****vn3"
// sign 值加密
export function sign(params) {
var urlParamsStr = ''
try {
var tempArr = ['app_id=' + APP_ID]
for (var i in params) {
var key = encodeURIComponent(i)
var value = encodeURIComponent(params[i])
tempArr.push(key + '=' + value)
}
urlParamsStr = tempArr.sort().join('&')
} catch (err) { }
var unencrypted = urlParamsStr + APP_KEY
return md5(unencrypted)
}
// token 生成
export function getToken(params, callback) {
if (window.token && new Date().getTime() - window.global_expire_time < 1000 * 0.8 * 60) {
callback(window.token, APP_ID)
return
}
axios.post('https:/xxx/index/auth/token',{
'app_id': APP_ID,
'sign': sign(params)
}).then(function(res){
window.global_expire_time = new Date().getTime()
window.token = res.data.Data.token
callback(window.token, APP_ID)
})
}
/**
* 是否为Iphone
* @returns
*/
export function isIphone() {
return /iphone/gi.test(window.navigator.userAgent)
}
export function isPC() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
/**
* 是否为IphoneX
* @returns
*/
export function isIphonX() {
if (window !== 'undefined' && window && !this.isIphone()) return false;
var xSeriesConfig = [
{ //iPhone Xs(Max,Pro Max)
devicePixelRatio: 3,
width: 414,
height: 896,
},
{ // iPhone XR(11)
devicePixelRatio: 2,
width: 414,
height: 896,
},
{ // iPhone X(Xs,Pro)
devicePixelRatio: 3,
width: 375,
height: 812,
},
{ // iPhone 12 Pro(Xs,Pro)
devicePixelRatio: 3,
width: 390,
height: 844,
},
]
var devicePixelRatio = window.devicePixelRatio
var width = window.screen.width
var height = window.screen.height
return xSeriesConfig.some(item => item.devicePixelRatio === devicePixelRatio && item.width === width && item.height === height);
}
/**
版本比较
versionLeft:
versionRight
**/
export function versionCompare (versionLeft, versionRight) {
const arr1 = versionLeft.split('.')
const arr2 = versionRight.split('.')
const minLength = Math.min(arr1.length, arr2.length)
let position = 0
let diff = 0
while (position < minLength && ((diff = parseInt(arr1[position]) - parseInt(arr2[position])) === 0)) {
position++
}
diff = (diff !== 0) ? diff : (arr1.length - arr2.length)
return diff > 0
}
/**
* h5 响应式适配
*/
export function reactive(){
const baseWidth = 428
const documentWidth = $(document).width()>775?775:$(document).width()
const zoom = baseWidth/documentWidth
$('html').css({
'font-size': 10/zoom+'px'
})
}
// 获取cookie信息
export function getCookie(name) {
var prefix = name + "="
var start = document.cookie.indexOf(prefix)
if (start == -1) {
return '';
}
var end = document.cookie.indexOf(";", start + prefix.length)
if (end == -1) {
end = document.cookie.length;
}
var value = document.cookie.substring(start + prefix.length, end)
return unescape(value);
}
// 用户是否已登陆
export function isLogin()
{
let loginName = getCookie('_currentUserName');
return loginName == ''? 0:1;
}
// 特殊请求地址,需要区分是否登录,来获取不同地址
export function getUserBathPath(isLogin)
{
return isLogin== 1? 'memberuserapi/':'memberuserapinoauth/'
}
/**
* 是否在微信/微博中打开
* @returns
*/
export function isWxWeibo() {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger" || ua.match(/WeiBo/i) == "weibo") {
if ($(".mask_openApp")) $(".mask_openApp").show();
if (!location.href.match(/from=wx_weibo/)) {
history.pushState('', '', location.href + '?from=wx_weibo')
}
return true;
}
return false;
}
/**
* 判定是不是IOS QQ浏览器
*/
export function isQQBrowser(){
return navigator.userAgent.indexOf('MQQBrowser')>-1
}
/**
* 倒计时计算
* @param {*} timestamp
* @param {*} type
* @returns
*/
export function filterTimestamp (timestamp, type) {
if (!timestamp) return ''
let time
if (typeof timestamp === 'number') {
time = dayjs(timestamp.toString().length === 10 ? timestamp * 1000 : timestamp).locale('zh-cn')
} else {
time = dayjs(timestamp).locale('zh-cn')
}
switch (type) {
case 1: {
const diffTime = dayjs().diff(time)
if (diffTime < 60 * 1000) return '刚刚'
if (diffTime < 60 * 60 * 1000) return dayjs().diff(time, 'minute') + '分钟前'
if (diffTime < 60 * 60 * 24 * 1000) return dayjs().diff(time, 'hour') + '小时前'
return time.format('YYYY-MM-DD HH:mm')
}
case 2:
return time.format('YYYY-MM-DD HH:mm:ss')
case 3:
return time.format('YYYY-MM-DD HH:mm')
case 4:
return time.format('YYYY-MM-DD')
case 5:
if (dayjs().diff(time, 'year') === 0) {
return time.format('MM-DD HH:mm:ss')
} else {
return time.format('YYYY-MM-DD HH:mm:ss')
}
case 6:
if (dayjs().diff(time, 'year') === 0) {
return time.format('MM-DD HH:mm')
} else {
return time.format('YYYY-MM-DD HH:mm')
}
case 7:
if (dayjs().diff(time, 'year') === 0) {
return time.format('MM-DD')
} else {
return time.format('YYYY-MM-DD')
}
default:
return ''
}
}
工具方法二
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 俗话说,男怕入错行,女怕嫁错郎。在现在主业养不饱一家人的时候,选一个对的副业显得尤其重要。那么有什么好的副业平台可...
- 【前提&原则】 一、从倾听开始,全力以赴地沟通 01|先听再说(结构化倾听) 【反向叙述】=响应情绪+确认事实+明...
- 最近写项目发现python pycharm 导入 win32api、win32con、win32com、win32...