import $ from 'jquery'
export let cityPosJson = {}; //城市的经纬度信息
/**
* 显示图形的 tooltip
* @param params
* @param fmt
* @param unit
* @param fmt2
* @param unit2
* @param y2ser 在曲线图,柱状图的多指标图形中,在第二纵轴显示的指标
* @returns {string}
*/
export const toolTips = (params, fmt, unit, ydesc, fmt2, unit2, y2desc, thb, chartId, y2ser) => {
if(params.length){ //数组
//o = params[0];
var s = '' + params[0].name + "
";
$(params).each(function(a, b){
s += b.seriesName === "" ?"": b.seriesName +": ";
if(y2ser){
if(y2ser.indexOf(b.seriesName) >= 0){
s += formatNumber(b.data, fmt2) + unit2;
}else{
s += formatNumber(b.data, fmt) + unit;
}
}else if(thb === true) { //具体同环比计算等衍生指标
if (b.seriesName.indexOf("同比") >= 0 || b.seriesName.indexOf("环比") >= 0) {
s += formatNumber(b.data, "0.00%");
} else {
s += formatNumber(b.data, fmt) + unit;
}
}else{
if (fmt2) { //双指标
var chart = echarts.getInstanceByDom(document.getElementById(chartId));
var opts = chart.getOption();
$(opts.series).each(function(c, d){
if(d.name === b.seriesName){
if(d.yAxisIndex === 1 || d.xAxisIndex === 1) {
s += formatNumber(b.data, fmt2) + unit2; //y2轴
}else{
s += formatNumber(b.data, fmt) + unit; // y轴
}
return false;
}
});
} else {
s += formatNumber(b.data, fmt) + unit;
}
}
if(!(a === params.length - 1)){
s += "
";
}
});
return s;
}else{
var o = params;
return o.name + ': '+ formatNumber(o.value, fmt)+unit;
}
}
//数字格式化
export const formatNumber = (num,pattern, shortname)=>{
if(!pattern || pattern.length == 0){
return num;
}
var negative = false; //负数
if(num < 0 ){
num = Math.abs(num);
negative = true;
}
var shortdw;
if(shortname && num > 100000000){
num = num / 100000000;
shortdw = "亿";
}else if(shortname && num > 10000000){
num = num / 10000000;
shortdw = "千万";
}else if(shortname && num > 1000000){
num = num / 1000000;
shortdw = "百万";
}else if(shortname && num > 10000){
num = num / 10000;
shortdw = "万";
}else if(shortname && num > 1000){
num = num / 1000;
shortdw = "千";
}
if(pattern.indexOf("%") <= 0 && shortname){
return (negative?"-":"") + (Math.round(num * 10) / 10) + (shortdw?shortdw:"");
}
if(pattern.indexOf("%") > 0){
num = num * 100;
}
var fmtarr = pattern?pattern.split('.'):[''];
var retstr='';
//先对数据做四舍五入
var xsw = 0;
if(fmtarr.length > 1){
xsw = fmtarr[1].length;
}
var bl = 1;
for(i=0; i=0;f--){
switch(fmt.substr(f,1)){
case '#':
if(i>=0 ) retstr = str.substr(i--,1) + retstr;
break;
case '0':
if(i>=0) retstr = str.substr(i--,1) + retstr;
else retstr = '0' + retstr;
break;
case ',':
comma = true;
retstr=','+retstr;
break;
}
}
if(i>=0){
if(comma){
var l = str.length;
for(;i>=0;i--){
retstr = str.substr(i,1) + retstr;
if(i>0 && ((l-i)%3)==0) retstr = ',' + retstr;
}
}
else retstr = str.substr(0,i+1) + retstr;
}
retstr = retstr+'.';
// 处理小数部分
str=strarr.length>1?strarr[1]:'';
fmt=fmtarr.length>1?fmtarr[1]:'';
i=0;
for(var f=0;f 0){
r = r + "%";
}
if(shortdw){
r = r + shortdw;
}
if(negative){
r = "-" + r;
}
return r;
}
/**
* 对于散点图的ToolTip,如果值相同,会覆盖后面的点,现在通过第一个点抓出值相同的所有点,显示再 tooltip中
* @returns
*/
export const scatterTooltip = (option, params)=>{
var target = {x:params.data[0], y:params.data[1], name:params.data[2]};
var dts = option.series[params.seriesIndex].data;
var r = [];
for(let k=0; k{
if(maxval == minval){
return 40;
}
if(!targetMax){
targetMax = 50;
}
var r = (targetMax-10)/(maxval-minval)*(val-minval)+10;
return r;
}
export const converMapData2 = (name, value) => {
var geoCoordMap = cityPosJson;
var res;
var geoCoord = geoCoordMap[name];
if (geoCoord) {
res = geoCoord.concat(value);
}
return res;
};