62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import * as echarts from 'echarts/lib/echarts';
 | 
						|
var GL_SERIES = ['bar3D', 'line3D', 'map3D', 'scatter3D', 'surface', 'lines3D', 'scatterGL', 'scatter3D'];
 | 
						|
 | 
						|
function convertNormalEmphasis(option, optType) {
 | 
						|
  if (option && option[optType] && (option[optType].normal || option[optType].emphasis)) {
 | 
						|
    var normalOpt = option[optType].normal;
 | 
						|
    var emphasisOpt = option[optType].emphasis;
 | 
						|
 | 
						|
    if (normalOpt) {
 | 
						|
      option[optType] = normalOpt;
 | 
						|
    }
 | 
						|
 | 
						|
    if (emphasisOpt) {
 | 
						|
      option.emphasis = option.emphasis || {};
 | 
						|
      option.emphasis[optType] = emphasisOpt;
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
function convertNormalEmphasisForEach(option) {
 | 
						|
  convertNormalEmphasis(option, 'itemStyle');
 | 
						|
  convertNormalEmphasis(option, 'lineStyle');
 | 
						|
  convertNormalEmphasis(option, 'areaStyle');
 | 
						|
  convertNormalEmphasis(option, 'label');
 | 
						|
}
 | 
						|
 | 
						|
function removeTextStyleInAxis(axesOpt) {
 | 
						|
  if (!axesOpt) {
 | 
						|
    return;
 | 
						|
  }
 | 
						|
 | 
						|
  if (!(axesOpt instanceof Array)) {
 | 
						|
    axesOpt = [axesOpt];
 | 
						|
  }
 | 
						|
 | 
						|
  echarts.util.each(axesOpt, function (axisOpt) {
 | 
						|
    if (axisOpt.axisLabel) {
 | 
						|
      var labelOpt = axisOpt.axisLabel;
 | 
						|
      Object.assign(labelOpt, labelOpt.textStyle);
 | 
						|
      labelOpt.textStyle = null;
 | 
						|
    }
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
export default function (option) {
 | 
						|
  echarts.util.each(option.series, function (series) {
 | 
						|
    if (echarts.util.indexOf(GL_SERIES, series.type) >= 0) {
 | 
						|
      convertNormalEmphasisForEach(series); // Compatitable with original mapbox
 | 
						|
 | 
						|
      if (series.coordinateSystem === 'mapbox') {
 | 
						|
        series.coordinateSystem = 'mapbox3D';
 | 
						|
        option.mapbox3D = option.mapbox;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  });
 | 
						|
  removeTextStyleInAxis(option.xAxis3D);
 | 
						|
  removeTextStyleInAxis(option.yAxis3D);
 | 
						|
  removeTextStyleInAxis(option.zAxis3D);
 | 
						|
  removeTextStyleInAxis(option.grid3D);
 | 
						|
  convertNormalEmphasis(option.geo3D);
 | 
						|
}
 | 
						|
; |