syber-lowcode-business-materials
Version:
syber-lowcode-business-materials
519 lines (501 loc) • 32.7 kB
JavaScript
import _message from "antd/es/message";
import React, { useRef, useState, useEffect } from 'react';
import "../chart-line/index.scss";
import { bizCssPrefix } from "../../variables";
import _ from "lodash";
var SliceLength = 500; //数据分段展示限制长度
var ChartBar = function ChartBar(props) {
var chartDomRef = useRef(null);
var myChartRef = useRef(null);
var lastDataRef = useRef(null);
var _useState = useState(null),
error = _useState[0],
setError = _useState[1];
useEffect(function () {
if (chartDomRef.current) {
var _window$echarts;
console.log("初始化柱状图", window.echarts);
//主题不能设置成 light,否则 color组设置无效 (但是设置成dark可以,这里暂时用null)
myChartRef.current = (_window$echarts = window.echarts) === null || _window$echarts === void 0 ? void 0 : _window$echarts.init(chartDomRef.current, null, {
locale: 'ZH'
});
//点击事件
if (props.onChartBarItemClick) {
var _myChartRef$current;
(_myChartRef$current = myChartRef.current) === null || _myChartRef$current === void 0 ? void 0 : _myChartRef$current.on('click', function (params) {
var _props$onChartBarItem;
(_props$onChartBarItem = props.onChartBarItemClick) === null || _props$onChartBarItem === void 0 ? void 0 : _props$onChartBarItem.call(props, params);
});
}
if (lastDataRef.current) {
//去绘制
showValue(lastDataRef.current);
}
}
return function () {
var _myChartRef$current2;
console.log("卸载柱状图");
(_myChartRef$current2 = myChartRef.current) === null || _myChartRef$current2 === void 0 ? void 0 : _myChartRef$current2.dispose();
};
}, [chartDomRef.current]);
useEffect(function () {
if (props.dataSource) {
showValue(props.dataSource);
}
}, [JSON.stringify(props.contentParams), JSON.stringify(props.dataSource)]);
//组装Echart 柱状图的配置项
var getChartOption = function getChartOption() {
var _contentParams$barSpe, _contentParams$usual, _contentParams$legend, _option$tooltip, _contentParams$theme, _contentParams$theme2, _contentParams$usual2;
var contentParams = props.contentParams;
var option = {
grid: {
left: '10',
right: '10',
bottom: '10',
top: '10',
containLabel: true
},
xAxis: Object.assign({}, contentParams === null || contentParams === void 0 ? void 0 : contentParams.xAxis),
yAxis: Object.assign({}, contentParams === null || contentParams === void 0 ? void 0 : contentParams.yAxis)
};
var axisType = 'category';
if (contentParams !== null && contentParams !== void 0 && (_contentParams$barSpe = contentParams.barSpecial) !== null && _contentParams$barSpe !== void 0 && _contentParams$barSpe._timeAxis) {
//改成时间轴
axisType = 'time';
}
//是否x,y翻转
if ((contentParams === null || contentParams === void 0 ? void 0 : (_contentParams$usual = contentParams.usual) === null || _contentParams$usual === void 0 ? void 0 : _contentParams$usual._categoryWhere) === 'y') {
option.xAxis = Object.assign(option.xAxis, {
type: 'value'
});
option.yAxis = Object.assign(option.yAxis, {
type: axisType
});
} else {
option.xAxis = Object.assign(option.xAxis, {
type: axisType
});
option.yAxis = Object.assign(option.yAxis, {
type: 'value'
});
}
//图例
option.legend = contentParams === null || contentParams === void 0 ? void 0 : contentParams.legend;
switch (contentParams === null || contentParams === void 0 ? void 0 : (_contentParams$legend = contentParams.legend) === null || _contentParams$legend === void 0 ? void 0 : _contentParams$legend._position) {
case 'top':
option.legend = Object.assign(option.legend, {
top: '5%',
left: 'center'
});
break;
case 'bottom':
option.legend = Object.assign(option.legend, {
bottom: '5%',
left: 'center'
});
break;
case 'left':
option.legend = Object.assign(option.legend, {
top: 'center',
left: '5%'
});
break;
case 'right':
option.legend = Object.assign(option.legend, {
top: 'center',
right: '5%'
});
break;
case 'topLeft':
option.legend = Object.assign(option.legend, {
top: '5%',
left: '5%'
});
break;
case 'topRight':
option.legend = Object.assign(option.legend, {
top: '5%',
right: '5%'
});
break;
case 'bottomLeft':
option.legend = Object.assign(option.legend, {
bottom: '5%',
left: '5%'
});
break;
case 'bottomRight':
option.legend = Object.assign(option.legend, {
bottom: '5%',
right: '5%'
});
break;
case 'center':
option.legend = Object.assign(option.legend, {
top: 'center',
left: 'center'
});
break;
}
//tooltip
option.tooltip = contentParams === null || contentParams === void 0 ? void 0 : contentParams.tooltip;
if ((_option$tooltip = option.tooltip) !== null && _option$tooltip !== void 0 && _option$tooltip._showPercentage) {
var _option$tooltip2, _option$tooltip2$text, _contentParams$lineSp;
var color = ((_option$tooltip2 = option.tooltip) === null || _option$tooltip2 === void 0 ? void 0 : (_option$tooltip2$text = _option$tooltip2.textStyle) === null || _option$tooltip2$text === void 0 ? void 0 : _option$tooltip2$text.color) || 'inherit';
var ifTimeAxis = contentParams === null || contentParams === void 0 ? void 0 : (_contentParams$lineSp = contentParams.lineSpecial) === null || _contentParams$lineSp === void 0 ? void 0 : _contentParams$lineSp._timeAxis;
option.tooltip.formatter = function (params) {
// console.log(params)
if (Array.isArray(params)) {
var _params$, _params$4, _params$5;
var total = 0;
var firstData = (_params$ = params[0]) === null || _params$ === void 0 ? void 0 : _params$.data;
if (Array.isArray(firstData)) {
//数组一定不是时间轴模式,不用判断ifTimeAxis
firstData.forEach(function (each, i) {
if (i !== 0) {
total += each;
}
});
} else {
if (ifTimeAxis) {
var _params$2, _params$2$dimensionNa;
(_params$2 = params[0]) === null || _params$2 === void 0 ? void 0 : (_params$2$dimensionNa = _params$2.dimensionNames) === null || _params$2$dimensionNa === void 0 ? void 0 : _params$2$dimensionNa.forEach(function (each, i) {
//时间轴,时间与系列交替
if (i % 2 !== 0) {
total += firstData[each] || 0;
}
});
} else {
var _params$3, _params$3$dimensionNa;
(_params$3 = params[0]) === null || _params$3 === void 0 ? void 0 : (_params$3$dimensionNa = _params$3.dimensionNames) === null || _params$3$dimensionNa === void 0 ? void 0 : _params$3$dimensionNa.forEach(function (each, i) {
//类目轴,去掉第一个维度项
if (i !== 0) {
total += firstData[each] || 0;
}
});
}
}
return "<div>\n <div style=\"color: " + color + "\">" + (((_params$4 = params[0]) === null || _params$4 === void 0 ? void 0 : _params$4.name) || ((_params$5 = params[0]) === null || _params$5 === void 0 ? void 0 : _params$5.axisValueLabel)) + "</div>\n " + params.map(function (eachSeriesItem) {
var eachSeriesItemValue;
if (Array.isArray(eachSeriesItem.data)) {
eachSeriesItemValue = eachSeriesItem.value[eachSeriesItem.seriesIndex + 1];
} else {
if (ifTimeAxis) {
eachSeriesItemValue = eachSeriesItem.value[eachSeriesItem.dimensionNames[eachSeriesItem.seriesIndex * 2 + 1]];
} else {
eachSeriesItemValue = eachSeriesItem.value[eachSeriesItem.dimensionNames[eachSeriesItem.seriesIndex + 1]];
}
}
return "<div style=\"color: " + color + ";display: flex;justify-content: space-between;gap: 15px\">\n <span>\n " + eachSeriesItem.marker + "\n <span>" + eachSeriesItem.seriesName + "</span>\n </span>\n <span>\n <span style=\"font-weight: bold\">" + (eachSeriesItemValue || 0) + "</span>\n <span> (" + ((eachSeriesItemValue || 0) * 100 / total).toFixed(1) + "%)</span>\n </span>\n </div>";
}).join('') + "\n </div>";
} else {
var _total = 0;
if (Array.isArray(params === null || params === void 0 ? void 0 : params.data)) {
params === null || params === void 0 ? void 0 : params.data.forEach(function (each, i) {
if (i !== 0) {
_total += each;
}
});
} else {
if (ifTimeAxis) {
params === null || params === void 0 ? void 0 : params.dimensionNames.forEach(function (each, i) {
if (i % 2 !== 0) {
_total += (params === null || params === void 0 ? void 0 : params.data[each]) || 0;
}
});
} else {
params === null || params === void 0 ? void 0 : params.dimensionNames.forEach(function (each, i) {
if (i !== 0) {
_total += (params === null || params === void 0 ? void 0 : params.data[each]) || 0;
}
});
}
}
var eachSeriesItemValue;
if (Array.isArray(params.data)) {
eachSeriesItemValue = params.value[params.seriesIndex + 1];
} else {
if (ifTimeAxis) {
eachSeriesItemValue = params.value[params.dimensionNames[params.seriesIndex * 2 + 1]];
} else {
eachSeriesItemValue = params.value[params.dimensionNames[params.seriesIndex + 1]];
}
}
return "<div>\n <div style=\"color: " + color + "\">" + (params === null || params === void 0 ? void 0 : params.name) + "</div>\n <div style=\"color: " + color + ";display: flex;justify-content: space-between;gap: 15px\">\n <span>\n " + params.marker + "\n <span>" + params.seriesName + "</span>\n </span>\n <span>\n <span style=\"font-weight: bold\">" + (eachSeriesItemValue || 0) + "</span>\n <span> (" + ((eachSeriesItemValue || 0) * 100 / _total).toFixed(1) + "%)</span>\n </span>\n </div>\n </div>";
}
};
}
//颜色
option.backgroundColor = contentParams === null || contentParams === void 0 ? void 0 : (_contentParams$theme = contentParams.theme) === null || _contentParams$theme === void 0 ? void 0 : _contentParams$theme.backgroundColor;
if (contentParams !== null && contentParams !== void 0 && (_contentParams$theme2 = contentParams.theme) !== null && _contentParams$theme2 !== void 0 && _contentParams$theme2.color) {
var _contentParams$theme3;
option.color = contentParams === null || contentParams === void 0 ? void 0 : (_contentParams$theme3 = contentParams.theme) === null || _contentParams$theme3 === void 0 ? void 0 : _contentParams$theme3.color.map(function (eachColor) {
if (typeof eachColor === 'string' || !eachColor) {
return eachColor;
} else {
var obj = {
type: eachColor.type,
x: 0,
y: 0,
x2: 0,
y2: 0,
colorStops: [{
offset: 0,
color: eachColor.colorStops[0] // 0% 处的颜色
}, {
offset: 1,
color: eachColor.colorStops[1] // 100% 处的颜色
}],
global: false // 缺省为 false
};
if (eachColor.direction === 'horizontal') {
obj.x2 = 1;
} else {
obj.y2 = 1;
}
return obj;
}
});
}
//网格布局
option.grid = contentParams === null || contentParams === void 0 ? void 0 : (_contentParams$usual2 = contentParams.usual) === null || _contentParams$usual2 === void 0 ? void 0 : _contentParams$usual2.grid;
return option;
};
//展示数据
var showValue = function showValue(data) {
lastDataRef.current = _.cloneDeep(data);
var option = getChartOption();
if (props !== null && props !== void 0 && props.contentParams) {
var _props$contentParams, _props$contentParams$, _props$contentParams3, _props$contentParams4, _props$contentParams9, _props$contentParams10, _props$contentParams11, _props$contentParams24, _props$contentParams25;
var seriesItem = {
type: 'bar',
large: true
};
//柱状图特殊配置
if (props !== null && props !== void 0 && (_props$contentParams = props.contentParams) !== null && _props$contentParams !== void 0 && (_props$contentParams$ = _props$contentParams.barSpecial) !== null && _props$contentParams$ !== void 0 && _props$contentParams$.showBackground) {
var _props$contentParams2;
seriesItem.showBackground = true;
seriesItem.backgroundStyle = props === null || props === void 0 ? void 0 : (_props$contentParams2 = props.contentParams) === null || _props$contentParams2 === void 0 ? void 0 : _props$contentParams2.barSpecial.backgroundStyle;
}
//不同系列柱间距
seriesItem.barGap = (props === null || props === void 0 ? void 0 : (_props$contentParams3 = props.contentParams) === null || _props$contentParams3 === void 0 ? void 0 : _props$contentParams3.barSpecial._barGap) + '%';
//标签
if (props !== null && props !== void 0 && (_props$contentParams4 = props.contentParams) !== null && _props$contentParams4 !== void 0 && _props$contentParams4.label) {
var _props$contentParams5, _props$contentParams6, _props$contentParams7, _props$contentParams8;
seriesItem.label = {
show: props === null || props === void 0 ? void 0 : (_props$contentParams5 = props.contentParams) === null || _props$contentParams5 === void 0 ? void 0 : _props$contentParams5.label.show,
color: (props === null || props === void 0 ? void 0 : (_props$contentParams6 = props.contentParams) === null || _props$contentParams6 === void 0 ? void 0 : _props$contentParams6.label.color) || 'inherit',
position: props === null || props === void 0 ? void 0 : (_props$contentParams7 = props.contentParams) === null || _props$contentParams7 === void 0 ? void 0 : _props$contentParams7.label.position
};
switch (props === null || props === void 0 ? void 0 : (_props$contentParams8 = props.contentParams) === null || _props$contentParams8 === void 0 ? void 0 : _props$contentParams8.label._showPlan) {
case 'normal':
break;
case 'pop':
seriesItem.label.padding = 5;
seriesItem.label.backgroundColor = 'rgba(255, 255, 255, 0.3)';
seriesItem.label.borderRadius = 100;
break;
case 'popDark':
seriesItem.label.padding = 5;
seriesItem.label.backgroundColor = 'rgba(0, 0, 0, 0.3)';
seriesItem.label.borderRadius = 100;
break;
}
}
//高亮配置
seriesItem.emphasis = {};
//高亮下的标签
if (props !== null && props !== void 0 && (_props$contentParams9 = props.contentParams) !== null && _props$contentParams9 !== void 0 && (_props$contentParams10 = _props$contentParams9.label) !== null && _props$contentParams10 !== void 0 && (_props$contentParams11 = _props$contentParams10._emphasisSel) !== null && _props$contentParams11 !== void 0 && _props$contentParams11.length) {
var _props$contentParams12, _props$contentParams13, _props$contentParams14, _props$contentParams18, _props$contentParams19, _props$contentParams20;
//先继承基础值
seriesItem.emphasis.label = _.cloneDeep(seriesItem.label);
if (props !== null && props !== void 0 && (_props$contentParams12 = props.contentParams) !== null && _props$contentParams12 !== void 0 && (_props$contentParams13 = _props$contentParams12.label) !== null && _props$contentParams13 !== void 0 && (_props$contentParams14 = _props$contentParams13._emphasisSel) !== null && _props$contentParams14 !== void 0 && _props$contentParams14.includes('color')) {
var _props$contentParams15, _props$contentParams16, _props$contentParams17;
seriesItem.emphasis.label.color = (props === null || props === void 0 ? void 0 : (_props$contentParams15 = props.contentParams) === null || _props$contentParams15 === void 0 ? void 0 : (_props$contentParams16 = _props$contentParams15.label) === null || _props$contentParams16 === void 0 ? void 0 : (_props$contentParams17 = _props$contentParams16._emphasis) === null || _props$contentParams17 === void 0 ? void 0 : _props$contentParams17.color) || 'inherit';
}
if (props !== null && props !== void 0 && (_props$contentParams18 = props.contentParams) !== null && _props$contentParams18 !== void 0 && (_props$contentParams19 = _props$contentParams18.label) !== null && _props$contentParams19 !== void 0 && (_props$contentParams20 = _props$contentParams19._emphasisSel) !== null && _props$contentParams20 !== void 0 && _props$contentParams20.includes('show')) {
var _props$contentParams21, _props$contentParams22, _props$contentParams23;
if (props !== null && props !== void 0 && (_props$contentParams21 = props.contentParams) !== null && _props$contentParams21 !== void 0 && (_props$contentParams22 = _props$contentParams21.label) !== null && _props$contentParams22 !== void 0 && (_props$contentParams23 = _props$contentParams22._emphasis) !== null && _props$contentParams23 !== void 0 && _props$contentParams23.show) {
seriesItem.emphasis.label.show = true;
} else {
seriesItem.emphasis.label.show = false;
}
}
}
//根据数据和配置填充其它属性
option.dataset = {};
option.series = [];
var newDataForTimeAxis = [];
if (props !== null && props !== void 0 && (_props$contentParams24 = props.contentParams) !== null && _props$contentParams24 !== void 0 && (_props$contentParams25 = _props$contentParams24.dataSetConfig) !== null && _props$contentParams25 !== void 0 && _props$contentParams25.labelField) {
var _props$contentParams26, _props$contentParams27, _props$contentParams40, _props$contentParams41, _props$contentParams42, _props$contentParams43, _props$contentParams44, _props$contentParams51, _props$contentParams52, _props$contentParams53;
var dim = [];
if (props !== null && props !== void 0 && (_props$contentParams26 = props.contentParams) !== null && _props$contentParams26 !== void 0 && (_props$contentParams27 = _props$contentParams26.barSpecial) !== null && _props$contentParams27 !== void 0 && _props$contentParams27._timeAxis) {
var _props$contentParams$3;
//时间轴
var needFillTimeAxis = true;
if (Array.isArray(data)) {
newDataForTimeAxis = _.cloneDeep(data);
} else {
var _data$props$contentPa;
//对象模式,直接组装出所需格式
needFillTimeAxis = false;
if ((_data$props$contentPa = data[props.contentParams.dataSetConfig.labelField]) !== null && _data$props$contentPa !== void 0 && _data$props$contentPa.length) {
var _data$props$contentPa2;
(_data$props$contentPa2 = data[props.contentParams.dataSetConfig.labelField]) === null || _data$props$contentPa2 === void 0 ? void 0 : _data$props$contentPa2.forEach(function (timeValue, timeIndex) {
var _props$contentParams$2;
var dataItem = {};
(_props$contentParams$2 = props.contentParams.dataSetConfig.lineArr) === null || _props$contentParams$2 === void 0 ? void 0 : _props$contentParams$2.forEach(function (lineSet, lineIndex) {
var _data$lineSet$field;
var timeMark = '系列' + (lineIndex + 1);
dataItem[timeMark] = timeValue;
dataItem[lineSet.field] = (_data$lineSet$field = data[lineSet.field]) === null || _data$lineSet$field === void 0 ? void 0 : _data$lineSet$field[timeIndex];
});
newDataForTimeAxis.push(dataItem);
});
}
}
(_props$contentParams$3 = props.contentParams.dataSetConfig.lineArr) === null || _props$contentParams$3 === void 0 ? void 0 : _props$contentParams$3.forEach(function (lineSet, lineIndex) {
var _lineSet$extraStyle, _props$contentParams28, _props$contentParams29;
var timeMark = '系列' + (lineIndex + 1);
if (needFillTimeAxis) {
var _newDataForTimeAxis;
//补上独立的时间
(_newDataForTimeAxis = newDataForTimeAxis) === null || _newDataForTimeAxis === void 0 ? void 0 : _newDataForTimeAxis.forEach(function (eachItem) {
eachItem[timeMark] = eachItem[props.contentParams.dataSetConfig.labelField];
});
}
dim.push({
name: timeMark,
displayName: '',
type: 'time'
});
dim.push({
name: lineSet.field,
type: 'number'
});
var newSeriesItem = _.cloneDeep(seriesItem);
if ((_lineSet$extraStyle = lineSet.extraStyle) !== null && _lineSet$extraStyle !== void 0 && _lineSet$extraStyle.color) {
var _lineSet$extraStyle2;
newSeriesItem.itemStyle = {
color: (_lineSet$extraStyle2 = lineSet.extraStyle) === null || _lineSet$extraStyle2 === void 0 ? void 0 : _lineSet$extraStyle2.color
};
}
//需要用到field的特殊配置先修改好
if (props !== null && props !== void 0 && (_props$contentParams28 = props.contentParams) !== null && _props$contentParams28 !== void 0 && (_props$contentParams29 = _props$contentParams28.label) !== null && _props$contentParams29 !== void 0 && _props$contentParams29.show) {
var _props$contentParams30, _props$contentParams31;
if (props !== null && props !== void 0 && (_props$contentParams30 = props.contentParams) !== null && _props$contentParams30 !== void 0 && _props$contentParams30.label._beforeTxt || props !== null && props !== void 0 && (_props$contentParams31 = props.contentParams) !== null && _props$contentParams31 !== void 0 && _props$contentParams31.label._afterTxt) {
var _props$contentParams32, _props$contentParams33;
//特殊格式
newSeriesItem.label.formatter = (props === null || props === void 0 ? void 0 : (_props$contentParams32 = props.contentParams) === null || _props$contentParams32 === void 0 ? void 0 : _props$contentParams32.label._beforeTxt) + " {@" + lineSet.field + "} " + (props === null || props === void 0 ? void 0 : (_props$contentParams33 = props.contentParams) === null || _props$contentParams33 === void 0 ? void 0 : _props$contentParams33.label._afterTxt);
}
}
option.series.push(newSeriesItem);
});
} else {
var _props$contentParams$4;
//类目轴
dim.push(props.contentParams.dataSetConfig.labelField);
(_props$contentParams$4 = props.contentParams.dataSetConfig.lineArr) === null || _props$contentParams$4 === void 0 ? void 0 : _props$contentParams$4.forEach(function (lineSet) {
var _lineSet$extraStyle3, _props$contentParams34, _props$contentParams35;
dim.push(lineSet.field);
var newSeriesItem = _.cloneDeep(seriesItem);
if ((_lineSet$extraStyle3 = lineSet.extraStyle) !== null && _lineSet$extraStyle3 !== void 0 && _lineSet$extraStyle3.color) {
var _lineSet$extraStyle4;
newSeriesItem.itemStyle = {
color: (_lineSet$extraStyle4 = lineSet.extraStyle) === null || _lineSet$extraStyle4 === void 0 ? void 0 : _lineSet$extraStyle4.color
};
}
//需要用到field的特殊配置先修改好
if (props !== null && props !== void 0 && (_props$contentParams34 = props.contentParams) !== null && _props$contentParams34 !== void 0 && (_props$contentParams35 = _props$contentParams34.label) !== null && _props$contentParams35 !== void 0 && _props$contentParams35.show) {
var _props$contentParams36, _props$contentParams37;
if (props !== null && props !== void 0 && (_props$contentParams36 = props.contentParams) !== null && _props$contentParams36 !== void 0 && _props$contentParams36.label._beforeTxt || props !== null && props !== void 0 && (_props$contentParams37 = props.contentParams) !== null && _props$contentParams37 !== void 0 && _props$contentParams37.label._afterTxt) {
var _props$contentParams38, _props$contentParams39;
//特殊格式
newSeriesItem.label.formatter = (props === null || props === void 0 ? void 0 : (_props$contentParams38 = props.contentParams) === null || _props$contentParams38 === void 0 ? void 0 : _props$contentParams38.label._beforeTxt) + " {@" + lineSet.field + "} " + (props === null || props === void 0 ? void 0 : (_props$contentParams39 = props.contentParams) === null || _props$contentParams39 === void 0 ? void 0 : _props$contentParams39.label._afterTxt);
}
}
option.series.push(newSeriesItem);
});
}
if (props !== null && props !== void 0 && (_props$contentParams40 = props.contentParams) !== null && _props$contentParams40 !== void 0 && (_props$contentParams41 = _props$contentParams40.barSpecial) !== null && _props$contentParams41 !== void 0 && _props$contentParams41._timeAxis) {
//时间轴
option.dataset.source = newDataForTimeAxis;
} else {
//类目轴
option.dataset.source = data;
}
if ((props === null || props === void 0 ? void 0 : (_props$contentParams42 = props.contentParams) === null || _props$contentParams42 === void 0 ? void 0 : (_props$contentParams43 = _props$contentParams42.barSpecial) === null || _props$contentParams43 === void 0 ? void 0 : (_props$contentParams44 = _props$contentParams43._minSet) === null || _props$contentParams44 === void 0 ? void 0 : _props$contentParams44.type) === 'auto') {
var _props$contentParams$5;
//数值轴需要自动配置最小值
var min = Infinity;
(_props$contentParams$5 = props.contentParams.dataSetConfig.lineArr) === null || _props$contentParams$5 === void 0 ? void 0 : _props$contentParams$5.forEach(function (lineSet) {
if (Array.isArray(data)) {
data === null || data === void 0 ? void 0 : data.forEach(function (eachItem) {
//0 不做考虑
if (eachItem[lineSet.field]) {
min = Math.min(min, eachItem[lineSet.field]);
}
});
} else if (Array.isArray(data[lineSet.field])) {
//0 不做考虑
min = Math.min.apply(Math, [min].concat(data[lineSet.field].filter(function (eachNum) {
return eachNum !== 0;
})));
}
});
if (min !== Infinity) {
var _props$contentParams45, _props$contentParams46, _props$contentParams47, _props$contentParams48, _props$contentParams49, _props$contentParams50;
min = min * (props === null || props === void 0 ? void 0 : (_props$contentParams45 = props.contentParams) === null || _props$contentParams45 === void 0 ? void 0 : (_props$contentParams46 = _props$contentParams45.barSpecial) === null || _props$contentParams46 === void 0 ? void 0 : (_props$contentParams47 = _props$contentParams46._minSet) === null || _props$contentParams47 === void 0 ? void 0 : _props$contentParams47.autoNum) / 100;
var autoStep = (props === null || props === void 0 ? void 0 : (_props$contentParams48 = props.contentParams) === null || _props$contentParams48 === void 0 ? void 0 : (_props$contentParams49 = _props$contentParams48.barSpecial) === null || _props$contentParams49 === void 0 ? void 0 : (_props$contentParams50 = _props$contentParams49._minSet) === null || _props$contentParams50 === void 0 ? void 0 : _props$contentParams50.autoStep) || 1;
min = min - min % autoStep;
var pointIndex = String(autoStep).indexOf('.') + 1;
var precision = pointIndex > 0 ? String(autoStep).length - pointIndex : 0;
min = min.toFixed(precision);
if (option.yAxis.type === 'value') {
option.yAxis.min = min;
} else {
option.xAxis.min = min;
}
}
} else if ((props === null || props === void 0 ? void 0 : (_props$contentParams51 = props.contentParams) === null || _props$contentParams51 === void 0 ? void 0 : (_props$contentParams52 = _props$contentParams51.barSpecial) === null || _props$contentParams52 === void 0 ? void 0 : (_props$contentParams53 = _props$contentParams52._minSet) === null || _props$contentParams53 === void 0 ? void 0 : _props$contentParams53.type) === 'set') {
//手动设置
if (option.yAxis.type === 'value') {
var _props$contentParams54, _props$contentParams55, _props$contentParams56;
option.yAxis.min = props === null || props === void 0 ? void 0 : (_props$contentParams54 = props.contentParams) === null || _props$contentParams54 === void 0 ? void 0 : (_props$contentParams55 = _props$contentParams54.barSpecial) === null || _props$contentParams55 === void 0 ? void 0 : (_props$contentParams56 = _props$contentParams55._minSet) === null || _props$contentParams56 === void 0 ? void 0 : _props$contentParams56.setNum;
} else {
var _props$contentParams57, _props$contentParams58, _props$contentParams59;
option.xAxis.min = props === null || props === void 0 ? void 0 : (_props$contentParams57 = props.contentParams) === null || _props$contentParams57 === void 0 ? void 0 : (_props$contentParams58 = _props$contentParams57.barSpecial) === null || _props$contentParams58 === void 0 ? void 0 : (_props$contentParams59 = _props$contentParams58._minSet) === null || _props$contentParams59 === void 0 ? void 0 : _props$contentParams59.setNum;
}
}
option.dataset.dimensions = dim;
}
}
//自定义转换数据和配置项 (低代码引擎中可以直接编写可运行的函数)
if (props.formatOptionCode) {
try {
option = props.formatOptionCode(option, data);
} catch (e) {
console.error(e);
_message.error('Echarts配置项转换出错');
}
}
console.log('option', option);
if (myChartRef.current) {
console.log("开始绘制", myChartRef.current);
myChartRef.current.clear();
myChartRef.current.resize();
myChartRef.current.setOption(option);
}
setError(null);
};
return /*#__PURE__*/React.createElement("div", {
className: bizCssPrefix + '-chartBox'
}, /*#__PURE__*/React.createElement("div", {
ref: chartDomRef,
className: bizCssPrefix + '-chartDom',
style: props.style || {}
}), error ? /*#__PURE__*/React.createElement("div", {
className: bizCssPrefix + '-errorMsg'
}, error) : null);
};
export default ChartBar;