123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- export function getQueryString(name) {
- let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i")
- let r = window.location.search.substr(1).match(reg)
- if (r != null) {
- return window.decodeURIComponent(r[2])
- }
- return null
- }
- export function getQueryStringByUrl(url = '', name = '') {
- let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i")
- let r = url.split('?')[1].match(reg)
- if (r != null) {
- return window.decodeURIComponent(r[2])
- }
- return null
- }
- export function debounce(fn, delay) {
- let timer; // 定时器
- return function (...args) { // 形成闭包
- // args 为函数调用时传的参数。
- let context = this;
- timer && clearTimeout(timer); // 当函数再次执行时,清除定时器,重新开始计时
- // 利用定时器,让指定函数延迟执行。
- timer = setTimeout(function () {
- // 执行传入的指定函数,利用apply更改this绑定和传参
- fn.apply(context, args);
- }, delay)
- }
- }
- export function throttle(fn, thresh) {
- var timeout
- var start = new Date;
- var threshhold = thresh || 500
- return function () {
- var context = this, args = arguments, curr = new Date() - 0
- clearTimeout(timeout)//总是干掉事件回调
- if (curr - start >= threshhold) {
- fn.apply(context, args) //只执行一部分方法,这些方法是在某个时间段内执行一次
- start = curr
- } else {
- // 让方法在脱离事件后也能执行一次
- timeout = setTimeout(function () {
- fn.apply(context, args)
- }, threshhold);
- }
- }
- }
- export function setStorage(key, value) {
- return localStorage.setItem(key, JSON.stringify(value));
- }
- export function getStorage(key) {
- const item = localStorage.getItem(key);
- try {
- return item ? JSON.parse(item) : '';
- } catch (e) {
- return item;
- }
- }
- export function guid() {
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
- return v.toString(16);
- });
- }
- export function scaleNumber(num) {
- let length = num.toString().split('.')[1].length;
- let scale = '1';
- for (let i = 0; i < length; i++) {
- scale += '0';
- }
- let val = num * scale;
- return {
- val,
- scale
- };
- }
- export function getBit(value) {
- const reg = /([0-9]+\.[0-9]{4})[0-9]*/;
- if (value) {
- let str = value.toString();
- str = str.replace(reg, "$1");
- return str;
- } else {
- return value;
- }
- }
- export function getCookie(name) {
- var strcookie = document.cookie;//获取cookie字符串
- var arrcookie = strcookie.split("; ");//分割
- //遍历匹配
- for (var i = 0; i < arrcookie.length; i++) {
- var arr = arrcookie[i].split("=");
- if (arr[0] == name) {
- return arr[1];
- }
- }
- return "";
- }
- export function nextTick(fn, time = 50) {
- return new Promise((resolve, reject) => {
- setTimeout(() => {
- if (fn) fn();
- resolve();
- }, time)
- })
- }
- export function getBrowser() {
- let browser;
- let UserAgent = navigator.userAgent.toLowerCase();
- if (UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1) {
- browser = `Chrome`
- } else if (UserAgent.indexOf('firefox') > -1) {
- browser = `Firefox`
- } else if (UserAgent.indexOf('opera') > -1) {
- browser = `Opera`
- } else if (UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1) {
- browser = `Safari`
- } else if (UserAgent.indexOf('edge') > -1) {
- browser = `Edge`
- } else {
- browser = `Other`
- }
- return browser;
- }
- export function getOffsetRect(element) {
- var oTop = element.offsetTop;
- var oLeft = element.offsetLeft;
- var current = element.offsetParent;
- while (current !== null) {
- oTop += current.offsetTop;
- oLeft += current.offsetLeft;
- current = current.offsetParent;
- }
- return {
- top: oTop,
- left: oLeft,
- }
- }
- export function formatSecondsAsTime(secs) {
- var hr = Math.floor(secs / 3600)
- var min = Math.floor((secs - (hr * 3600)) / 60)
- var sec = Math.floor(secs - (hr * 3600) - (min * 60))
- var text
- if (hr < 10) {
- hr = "0" + hr
- }
- if (min < 10) {
- min = "0" + min
- }
- if (sec < 10) {
- sec = "0" + sec
- }
- if (hr == 0) {
- hr = ""
- }
- if (hr.length > 0) {
- text = hr + ':' + min + ':' + sec
- } else {
- text = min + ':' + sec
- }
- return text
- return fmt;
- }
|