import { ElMessage } from "element-plus"
export function locget(str) {
let _val = localStorage.getItem(str) ? localStorage.getItem(str) : null
return _val
}
export function locset(str, val) {
localStorage.setItem(str, val)
}
export function locremove(str) {
localStorage.removeItem(str)
}
export function getSessionStore(str) {
let _val = sessionStorage.getItem(str) ? sessionStorage.getItem(str) : null
return _val
}
export function setSessionStore(str, val) {
sessionStorage.setItem(str, val)
}
export function getcookie(objname) {
let arrstr = document.cookie.split("; ")
for (let i = 0
let temp = arrstr[i].split("=")
if (temp[0] == objname) return unescape(temp[1])
}
}
export function setcookie(cname, cvalue, exdays = 15, path = "/") {
let d = new Date()
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000)
let expires = "expires=" + d.toGMTString()
document.cookie =
cname + "=" + cvalue + "
}
export function rmSessionStore(str) {
sessionStorage.removeItem(str)
}
// 1100 => 1,000
export function thousandNum(num) {
return num >= 1000
? num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
: num
}
// 1250 = 1.3K 1370000 = 1.4M
export function thousandNumNext(num) {
Math.round(num * 10) / 10
if (num > 1000000) {
num = `${(num / 1000000).toFixed(1)}M`
} else if (num > 1000) {
num = `${(num / 1000).toFixed(1)}K`
} else {
num = num
}
return num
}
export function doubleNum(num) {
return num < 10 ? `0${num}` : num
}
// 03/06/2019
export function formatTime(cTime) {
let newDate
cTime = parseInt(cTime)
let date = new Date(cTime)
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate()
month = month < 10 ? "0" + month : month
day = day < 10 ? "0" + day : day
newDate = day + "/" + month + "/" + year + ""
return newDate
}
export function countdown(time, fun) {
if (time <= 0) return
time -= 1000
var scend = parseInt((time / 1000) % 60)
var minute = parseInt((time / 1000 / 60) % 60)
var hour = parseInt((time / 1000 / 60 / 60) % 24)
const _tim = setTimeout(countdown.bind(this, time, fun), 1000)
fun({
seconds: doubleNum(scend),
minutes: doubleNum(minute),
hours: doubleNum(hour),
timmer: _tim,
})
if ((time = 0)) {
clearTimeout(_tim)
}
}
// 省市区回显
export function findAddressByCode(data, code) {
for (let index = 0
const item = data[index]
if (!item.list) {
continue
}
for (let idx = 0
const itm = item.list[idx]
if (!itm || !itm.list) {
continue
}
const it = itm.list.find((it) => it.code == code)
if (it) {
return `${item.name}/${itm.name}/${it.name}`
}
}
}
}
// 防抖
export function _debounce(fn, delay) {
var delay = delay || 200
var timer
return function () {
var th = this
var args = arguments
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(function () {
timer = null
fn.apply(th, args)
}, delay)
}
}
// 节流
export function _throttle(fn, interval) {
var last
var timer
var interval = interval || 200
return function () {
var th = this
var args = arguments
var now = +new Date()
if (last && now - last < interval) {
clearTimeout(timer)
timer = setTimeout(function () {
last = now
fn.apply(th, args)
}, interval)
} else {
last = now
fn.apply(th, args)
}
}
}
export function changeURLArg(url, arg, arg_val) {
var pattern = arg + "=([^&]*)"
var replaceText = arg + "=" + arg_val
if (url.match(pattern)) {
var tmp = "/(" + arg + "=)([^&]*)/gi"
tmp = url.replace(eval(tmp), replaceText)
return tmp
} else {
if (url.match("[?]")) {
return url + "&" + replaceText
} else {
return url + "?" + replaceText
}
}
}
// 校验pc端还是手机端
export function checkMobile() {
console.log('isMobile')
let flag = navigator.userAgent.match(
/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
)
return flag
}
// yyyy.mm.dd hh:mm
export function timestampToTime(timestamp) {
var date = new Date(timestamp * 1000)
var Y = date.getFullYear() + '.'
var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1):date.getMonth()+1) + '.'
var D = (date.getDate()< 10 ? '0'+date.getDate():date.getDate())+ ' '
var h = (date.getHours() < 10 ? '0'+date.getHours():date.getHours())+ ':'
var m = (date.getMinutes() < 10 ? '0'+date.getMinutes():date.getMinutes())
// var s = date.getSeconds() < 10 ? '0'+date.getSeconds():date.getSeconds()
return Y+M+D+h+m
}
// 校验站内或者站外
export function checkApp() {
let userAgent = navigator.userAgent
// console.log('userAgent',userAgent)
let uaList = ['','']
let flag = uaList.findIndex((item)=>{
return item && userAgent.includes(item)
})
if (flag !== -1){
return true
}else{
return false
}
}
export function addQueryParams(url, params) {
// 解析现有的URL
let urlObj = new URL(url)
// 遍历要添加的参数
for (let [key, value] of Object.entries(params)) {
urlObj.searchParams.set(key, value)
}
// 返回新的URL字符串
return urlObj.toString()
}
// 判断是否跳站内或者站外 webUrl:站内url storeLink:app store url
export function goAppOrNot (webUrl, storeLink ){
window.location.href = webUrl
var timer = setTimeout(function () {
window.location.href = storeLink
}, 3000)
document.addEventListener("visibilitychange", () => {
if (document.hidden) {
timer && clearTimeout(timer)
}
})
document.addEventListener("webkitvisibilitychange", (event) => {
var hidden = event.target.webkitHidden
if (hidden) {
// 离开当前tab标签
timer && clearTimeout(timer)
}
})
window.addEventListener("pagehide", function (event) {
timer && clearTimeout(timer)
})
return
}
// 判断app版本号是否更新 需要更新调用 不需要不调用
export function appUpdate (newVision,storeLink){
let userAgent = navigator.userAgent
if (+userAgent.split("/")[1].replace(/\./g, "").substring(0, 3) < newVision) {
window.location.href = storeLink
return
}
}
// 判断是否是json格式
export function isJSON(str) {
console.log('gl----str',str)
if(!str){
return false
}
if (typeof str == 'string') {
try {
var obj= JSON.parse(str)
if(typeof obj == 'object' && obj ){
return true
}else{
return false
}
}catch(e) {
return false
}
}
}
// 限制输入框输入的字符数
export function widthCheck (str, len) {
let temp = 0
for (let i = 0
if (/[\u4e00-\u9fa5]/.test(str[i])) {
temp += 2
} else {
temp++
}
if (temp > len) {
str = str.substr(0, i)
ElMessage.error("Word limit reached")
}
}
return str
}