data-vis-ui
Version:
## [使用文档](https://temp-static-domain.jd.com/data-vis-ui)
207 lines (171 loc) • 5.29 kB
JavaScript
/*
* @Author: zhaohongyun1@jd.com
* @Date: 2019-10-10 15:07:20
* @LastEditors: Please set LastEditors
* @LastEditTime: 2022-02-24 18:04:32
*/
/**
* @description: 获取元素在页面距离顶部的偏移量
* @param {element} 元素节点
* @return: Number
*/
export var getElementTop = function getElementTop(element) {
// 获取 element 元素距离父元素的 offsetTop 像素;
// console.log(element);
if (!element) return 200;
var actualTop = element.offsetTop;
var current = element.offsetParent; // console.log(element, actualTop, current);
// 判断当前元素是都循环到 HTML 根元素了
while (current !== null) {
// offsetTop 循环相加
actualTop += current.offsetTop; // 当 current 为 HTML 根元素是, current.offsetParent 的值为 null
current = current.offsetParent; // console.log(element, actualTop, current);
} // console.log(actualTop);
return actualTop;
}; // 写cookies
export function setCookie(name, value) {
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
document.cookie = "".concat(name, "=").concat(escape(value), ";expires=").concat(exp.toUTCString());
} // 读取cookies
export function getCookie(cname) {
var name = "".concat(cname, "=");
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return '';
} // 删除cookies
export function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null) document.cookie = "".concat(name, "=").concat(cval, ";expires=").concat(exp.toUTCString());
} // 事件触发函数
export function triggerEvent(el, type) {
if ('createEvent' in document) {
// modern browsers, IE9+
var e = document.createEvent('HTMLEvents');
e.initEvent(type, false, true);
el.dispatchEvent(e);
}
}
/**
* @description: 生成唯一的id
* @param {number} length 长度
* @return:
*/
export var genID = function genID() {
var id = "".concat(Math.random(), "-").concat(Date.now());
console.log(id, 'id---');
return id;
};
/**
* @description: 给数据加一个模拟的id,在刚刚获取数据或者新建一条数据的时候
* @param {type}
* @return:
*/
export var addId = function addId(data) {
return data.map(function (item) {
return Object.assign(Object.assign({}, item), {
id: item.id || genID()
});
});
};
/*
* @param: hex { string} 例如:"#23ff45"
* @param: opacity { string || number } 透明度
* @return: { string } rgba格式
*/
export function hexToRgba(hex, opacity) {
return 'rgba(' + parseInt('0x' + hex.slice(1, 3)) + ',' + parseInt('0x' + hex.slice(3, 5)) + ',' + parseInt('0x' + hex.slice(5, 7)) + ',' + opacity + ')';
}
export function getMinInteger(min) {
if (min.toString().includes('.')) {
return Math.floor(min * 1000) / 1000;
}
var data = min.toString().split('');
var dataLen = data.length;
switch (dataLen) {
case 1:
return 0;
case 2:
case 3:
return min - 5;
case 4:
return Math.round(Number(data[0] + data[1] + '00'));
case 5:
return Math.round(Number(data[0] + data[1] + data[2] + '00'));
case 6:
return Math.round(Number(data[0] + data[1] + data[2] + data[3] + '0'));
default:
return min;
}
}
export function getMaxInteger(max) {
if (max.toString().includes('.')) {
return Math.ceil(max * 1000) / 1000;
}
var data = max.toString().split('');
var dataLen = data.length;
switch (dataLen) {
case 1:
return 10;
case 2:
case 3:
return max + 2;
case 4:
return Math.round(Number(data[0] + data[1] + '00') + 100);
case 5:
return Math.round(Number(data[0] + data[1] + data[2] + '00') + 100);
case 6:
return Math.round(Number(data[0] + data[1] + data[2] + '00') + 100);
default:
return max;
}
}
export var formdataNumber = function formdataNumber(n) {
if (n === null || n === undefined) return null;
if (typeof n === 'number') return n.toLocaleString();
return Number(n).toLocaleString();
}; // ECharts 使用的颜色
export var colors = ['#12CCFF', '#FA5AAD', '#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'];
export var calDate = function calDate() {
var base = +new Date();
var oneDay = 24 * 3600 * 1000;
var date = [];
for (var i = 0; i < 7; i++) {
var now = new Date(base -= oneDay);
date.unshift([now.getMonth() + 1, now.getDate()].join('/'));
}
return date;
};
export var unitDeal = function unitDeal(num, unit) {
var resNum = num;
var resUnit = unit;
if (num >= 10000) {
resNum = num / 10000;
resUnit = "\u4E07".concat(unit);
}
return {
num: resNum,
unit: resUnit
};
};
export var getUrlParams = function getUrlParams(url) {
// 定义一个 parse url.search 的方法
function parse(url) {
var obj = {};
url.replace(/([^?&=]+)=([^&]+)/g, function (_, k, v) {
console.log();
if (v.includes('#')) {
v = v.split('#').shift();
}
return obj[k] = v;
});
return obj;
}
return parse(url);
};