diff --git a/Gruntfile.js b/Gruntfile.js
index 572fa1cb7..1fafc5f3e 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -79,15 +79,6 @@ module.exports = function (grunt) {
],
dest: "dist/router.js"
},
- chartJs: {
- src: [
- "src/addons/chart/chart.js",
- "src/addons/chart/chart.combine.js",
- "src/addons/chart/factory.charts.js",
- "src/addons/chart/**/*.js"
- ],
- dest: "dist/chart.js"
- },
coreCss: {
src: ["src/css/core/**/*.css", "src/css/theme/**/*.css"],
dest: "dist/core.css"
@@ -157,6 +148,8 @@ module.exports = function (grunt) {
"src/core/proto/array.js",
"src/core/proto/number.js",
"src/core/proto/string.js",
+ "src/core/proto/date.js",
+ "src/core/proto/function.js",
"src/core/base.js",
"src/core/ob.js",
"src/core/alias.js",
diff --git a/dist/bundle.js b/dist/bundle.js
index 6c356ebcc..8c04ac3e0 100644
--- a/dist/bundle.js
+++ b/dist/bundle.js
@@ -20929,7 +20929,6 @@ $(function () {
/** Adds the number of days array to the Date object. */
Date._MD = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
});
-
/** Constants used for time computations */
Date.SECOND = 1000;
Date.MINUTE = 60 * Date.SECOND;
@@ -20955,7 +20954,7 @@ Date.prototype.getMonthDays = function (month) {
return 29;
}
return Date._MD[month];
-
+
};
/**
@@ -21415,7 +21414,7 @@ Date.getDate = function () {
return new Date(utc + Date.timeZone);// + Pool.timeZone.offset);
}
return dt;
-
+
};
Date.getTime = function () {
@@ -21463,7 +21462,7 @@ Date.getTime = function () {
return dt.getTime() - Date.timeZone - dt.getTimezoneOffset() * 60000;
}
return dt.getTime();
-
+
};
/*
* 给jQuery.Event对象添加的工具方法
diff --git a/dist/chart.js b/dist/chart.js
deleted file mode 100644
index c3bdf2bfe..000000000
--- a/dist/chart.js
+++ /dev/null
@@ -1,7603 +0,0 @@
-/**
- * 图表控件
- * @class BI.Chart
- * @extends BI.Widget
- */
-BI.Chart = BI.inherit(BI.Pane, {
-
- _defaultConfig: function () {
- return BI.extend(BI.Chart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-chart"
- });
- },
-
- _init: function () {
- BI.Chart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- this.isSetOptions = false;
- this.vanCharts = VanCharts.init(self.element[0]);
-
- this._resizer = BI.debounce(function () {
- if (self.element.width() > 0 && self.element.height() > 0) {
- self.vanCharts.resize();
- }
- }, 30);
- BI.ResizeDetector.addResizeListener(this, function (e) {
- self._resizer();
- });
- },
-
- resize: function () {
- if (this.isSetOptions === true) {
- this._resizer();
- }
- },
-
- magnify: function () {
- this.vanCharts.refreshRestore();
- },
-
- populate: function (items, options) {
- var self = this, o = this.options;
- o.items = items;
- this.config = options || {};
- this.config.series = o.items;
-
- var setOptions = function () {
- self.vanCharts.setOptions(self.config);
- self.isSetOptions = true;
- };
- BI.nextTick(setOptions);
- }
-});
-BI.Chart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.chart", BI.Chart);/**
- * 图表控件
- * @class BI.CombineChart
- * @extends BI.Widget
- */
-BI.CombineChart = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.CombineChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-combine-chart",
- items: [],
- xAxis: [{type: "category"}],
- yAxis: [{type: "value"}],
- types: [[], []],
- popupItemsGetter: BI.emptyFn,
- formatConfig: BI.emptyFn
- });
- },
-
- _init: function () {
- BI.CombineChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- // 图可配置属性
- this.CombineChart = BI.createWidget({
- type: "bi.chart",
- element: this.element
- });
- this.CombineChart.on(BI.Chart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.CombineChart.EVENT_CHANGE, obj);
- });
-
- if (BI.isNotEmptyArray(o.items)) {
- this.populate(o.items);
- }
- },
-
- _formatItems: function (items) {
- var result = [], self = this, o = this.options;
- var yAxisIndex = 0;
- BI.each(items, function (i, belongAxisItems) {
- var combineItems = BI.ChartCombineFormatItemFactory.combineItems(o.types[i], belongAxisItems);
- BI.each(combineItems, function (j, axisItems) {
- if (BI.isArray(axisItems)) {
- result = BI.concat(result, axisItems);
- } else {
- result.push(BI.extend(axisItems, {yAxis: yAxisIndex}));
- }
- });
- if (BI.isNotEmptyArray(combineItems)) {
- yAxisIndex++;
- }
- });
- var config = BI.ChartCombineFormatItemFactory.combineConfig();
- config.plotOptions.click = function () {
- var data = BI.clone(this.options);
- data.toolTipRect = this.getTooltipRect();
- var items = o.popupItemsGetter(data);
- if (items && items.length === 1) {
- self.fireEvent(BI.CombineChart.EVENT_ITEM_CLICK, BI.extend({}, items[0], data));
- }
- if (items && items.length > 1) {
- self._createPopup(items, data.toolTipRect, data);
- }
- self.fireEvent(BI.CombineChart.EVENT_CHANGE, data);
- };
- return [result, config];
- },
-
- _createPopup: function (items, rect, opt) {
- var self = this;
- if (this.combo) {
- this.combo.destroy();
- }
- this._doDestroy = true;
- this.combo = BI.createWidget({
- type: "bi.combo",
- direction: "bottom",
- isNeedAdjustWidth: false,
- popup: {
- el: BI.createWidget({
- type: "bi.vertical",
- cls: "bi-linkage-list",
- items: BI.map(items, function (i, item) {
- return {
- el: BI.extend({
- type: "bi.text_button",
- cls: "bi-linkage-list-item",
- height: 30,
- handler: function () {
- self.fireEvent(BI.CombineChart.EVENT_ITEM_CLICK, BI.extend({}, item, opt));
- self.combo.destroy();
- },
- hgap: 10
- }, item)
- };
- })
- })
- },
- width: 0
- });
- BI.createWidget({
- type: "bi.absolute",
- element: this.element,
- items: [{
- el: this.combo,
- top: rect.y,
- left: rect.x
- }]
- });
- this.combo.element.hover(function () {
- self._doDestroy = false;
- }, function () {
- self._doDestroy = true;
- self._debounce2Destroy();
- });
- this._debounce2Destroy = BI.debounce(BI.bind(destroyCombo, this.combo), 3000);
- this.combo.showView();
- this._debounce2Destroy();
-
- function destroyCombo () {
- if (self._doDestroy) {
- this.destroy();
- }
- }
- },
-
- setTypes: function (types) {
- this.options.types = types || [[]];
- },
-
- populate: function (items, types) {
- var o = this.options;
- if (BI.isNotNull(types)) {
- this.setTypes(types);
- }
- var opts = this._formatItems(items);
- BI.extend(opts[1], {
- xAxis: o.xAxis,
- yAxis: o.yAxis
- });
- var result = o.formatConfig(opts[1], opts[0]) || opts;
- this.CombineChart.populate(result[0], result[1]);
- },
-
- resize: function () {
- this.CombineChart.resize();
- },
-
- magnify: function () {
- this.CombineChart.magnify();
- }
-});
-BI.CombineChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.CombineChart.EVENT_ITEM_CLICK = "EVENT_ITEM_CLICK";
-BI.shortcut("bi.combine_chart", BI.CombineChart);BI.ChartCombineFormatItemFactory = {
- combineItems: function (types, items) {
- var calItems = BI.values(items);
- return BI.map(calItems, function (idx, item) {
- return BI.ChartCombineFormatItemFactory.formatItems(types[idx], item);
- });
- },
-
- formatItems: function (type, items) {
- var item = {};
- switch (type) {
- case BICst.WIDGET.BAR:
- case BICst.WIDGET.ACCUMULATE_BAR:
- case BICst.WIDGET.COMPARE_BAR:
- item = BI.extend({type: "bar"}, items);
- break;
- case BICst.WIDGET.BUBBLE:
- item = BI.extend({type: "bubble"}, items);
- break;
- case BICst.WIDGET.FORCE_BUBBLE:
- item = BI.extend({type: "forceBubble"}, items);
- break;
- case BICst.WIDGET.SCATTER:
- item = BI.extend({type: "scatter"}, items);
- break;
- case BICst.WIDGET.AXIS:
- case BICst.WIDGET.ACCUMULATE_AXIS:
- case BICst.WIDGET.PERCENT_ACCUMULATE_AXIS:
- case BICst.WIDGET.COMPARE_AXIS:
- case BICst.WIDGET.FALL_AXIS:
- item = BI.extend({type: "column"}, items);
- break;
- case BICst.WIDGET.LINE:
- item = BI.extend({type: "line"}, items);
- break;
- case BICst.WIDGET.AREA:
- case BICst.WIDGET.ACCUMULATE_AREA:
- case BICst.WIDGET.COMPARE_AREA:
- case BICst.WIDGET.RANGE_AREA:
- case BICst.WIDGET.PERCENT_ACCUMULATE_AREA:
- item = BI.extend({type: "area"}, items);
- break;
- case BICst.WIDGET.DONUT:
- item = BI.extend({type: "pie"}, items);
- break;
- case BICst.WIDGET.RADAR:
- case BICst.WIDGET.ACCUMULATE_RADAR:
- item = BI.extend({type: "radar"}, items);
- break;
- case BICst.WIDGET.PIE:
- item = BI.extend({type: "pie"}, items);
- break;
- case BICst.WIDGET.DASHBOARD:
- item = BI.extend({type: "gauge"}, items);
- break;
- case BICst.WIDGET.MAP:
- item = BI.extend({type: "areaMap"}, items);
- break;
- case BICst.WIDGET.GIS_MAP:
- item = BI.extend({type: "pointMap"}, items);
- break;
- default:
- item = BI.extend({type: "column"}, items);
- break;
- }
- return item;
- },
-
- combineConfig: function () {
- return {
- title: "",
- chartType: "column",
- plotOptions: {
- rotatable: false,
- startAngle: 0,
- borderRadius: 0,
- endAngle: 360,
- innerRadius: "0.0%",
- layout: "horizontal",
- hinge: "rgb(101,107,109)",
- dataLabels: {
- autoAdjust: true,
- style: {fontFamily: "inherit", color: "inherit", fontSize: "12px"},
- formatter: {
- identifier: "${VALUE}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat,
- XFormat: this._contentFormat2Decimal,
- YFormat: this._contentFormat2Decimal,
- sizeFormat: this._contentFormat2Decimal
- },
- align: "outside",
- enabled: false
- },
- percentageLabel: {
- formatter: {
- identifier: "${PERCENT}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat
- },
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- },
- align: "bottom",
- enabled: true
- },
- valueLabel: {
- formatter: {
- identifier: "${SERIES}${VALUE}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat
- },
- backgroundColor: "rgb(255,255,0)",
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- },
- align: "inside",
- enabled: true
- },
- hingeBackgroundColor: "rgb(220,242,249)",
- seriesLabel: {
- formatter: {
- identifier: "${CATEGORY}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat
- },
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- },
- align: "bottom",
- enabled: true
- },
- paneBackgroundColor: "rgb(252,252,252)",
- needle: "rgb(229,113,90)",
- large: false,
- connectNulls: false,
- shadow: true,
- curve: false,
- sizeBy: "area",
- tooltip: {
- formatter: {
- identifier: "${SERIES}${X}${Y}${SIZE}{CATEGORY}${SERIES}${VALUE}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat,
- XFormat: this._contentFormat2Decimal,
- sizeFormat: this._contentFormat2Decimal,
- YFormat: this._contentFormat2Decimal
- },
- shared: false,
- padding: 5,
- backgroundColor: "rgba(0,0,0,0.4980392156862745)",
- borderColor: "rgb(0,0,0)",
- shadow: false,
- borderRadius: 2,
- borderWidth: 0,
- follow: false,
- enabled: true,
- animation: true,
- style: {
- fontFamily: "Microsoft YaHei, Hiragino Sans GB W3",
- color: "#c4c6c6",
- fontSize: "12px",
- fontWeight: ""
- }
- },
- maxSize: 80,
- fillColorOpacity: 0.5,
- step: false,
- force: false,
- minSize: 15,
- displayNegative: true,
- categoryGap: "16.0%",
- borderColor: "rgb(255,255,255)",
- borderWidth: 1,
- gap: "22.0%",
- animation: true,
- lineWidth: 2,
- bubble: {
- large: false,
- connectNulls: false,
- shadow: true,
- curve: false,
- sizeBy: "area",
- maxSize: 80,
- minSize: 15,
- lineWidth: 0,
- animation: true,
- fillColorOpacity: 0.699999988079071,
- marker: {
- symbol: "circle",
- radius: 28.39695010101295,
- enabled: true
- }
- }
- },
- dTools: {
- enabled: false,
- style: {
- fontFamily: "Microsoft YaHei, Hiragino Sans GB W3",
- color: "#1a1a1a",
- fontSize: "12px"
- },
- backgroundColor: "white"
- },
- dataSheet: {
- enabled: false,
- borderColor: "rgb(0,0,0)",
- borderWidth: 1,
- formatter: this._contentFormat2Decimal,
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- }
- },
- borderColor: "rgb(238,238,238)",
- shadow: false,
- legend: {
- borderColor: "rgb(204,204,204)",
- borderRadius: 0,
- shadow: false,
- borderWidth: 0,
- visible: true,
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- },
- position: "right",
- enabled: false
- },
- rangeLegend: {
- range: {
- min: 0,
- color: [
- [
- 0,
- "rgb(182,226,255)"
- ],
- [
- 0.5,
- "rgb(109,196,255)"
- ],
- [
- 1,
- "rgb(36,167,255)"
- ]
- ],
- max: 266393
- },
- enabled: false
- },
- zoom: {zoomType: "xy", zoomTool: {visible: false, resize: true, from: "", to: ""}},
- plotBorderColor: "rgba(255,255,255,0)",
- tools: {
- hidden: false,
- toImage: {enabled: false},
- sort: {enabled: false},
- fullScreen: {enabled: false},
- refresh: {
- enabled: false
- }
- },
- plotBorderWidth: 0,
- style: "normal",
- colors: ["rgb(99,178,238)", "rgb(118,218,145)"],
- borderRadius: 0,
- borderWidth: 0,
- plotShadow: false,
- plotBorderRadius: 0
- };
- },
-
- _contentFormat: function () {
- return BI.contentFormat(arguments[0], "");
- },
-
- _contentFormat2Decimal: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- },
-
- _contentFormatPercentage: function () {
- return BI.contentFormat(arguments[0], "#.##%;-#.##%");
- }
-};/**
- * 图表控件
- * @class BI.AbstractChart
- * @extends BI.Widget
- */
-BI.AbstractChart = BI.inherit(BI.Widget, {
-
- constants: {
- LEFT_AXIS: 0,
- RIGHT_AXIS: 1,
- RIGHT_AXIS_SECOND: 2,
- X_AXIS: 3,
- ROTATION: -90,
- NORMAL: 1,
- LEGEND_BOTTOM: 4,
- ZERO2POINT: 2,
- ONE2POINT: 3,
- TWO2POINT: 4,
- MINLIMIT: 1e-5,
- LEGEND_HEIGHT: 80,
- LEGEND_WIDTH: "30.0%",
- FIX_COUNT: 6,
- STYLE_NORMAL: 21,
- NO_PROJECT: 16,
- DASHBOARD_AXIS: 4,
- ONE_POINTER: 1,
- MULTI_POINTER: 2,
- HALF_DASHBOARD: 9,
- PERCENT_DASHBOARD: 10,
- PERCENT_SCALE_SLOT: 11,
- VERTICAL_TUBE: 12,
- HORIZONTAL_TUBE: 13,
- LNG_FIRST: 3,
- LAT_FIRST: 4,
- themeColor: "#65bce7",
- autoCustom: 1,
- POLYGON: 7,
- AUTO_CUSTOM: 1,
- AUTO: 1,
- NOT_SHOW: 2,
- LINE_WIDTH: 1,
- NUM_SEPARATORS: false,
- FONT_STYLE: {
- fontFamily: "inherit",
- color: "inherit",
- fontSize: "12px"
- }
- },
-
- _defaultConfig: function () {
- return BI.extend(BI.AbstractChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-abstract-chart",
- popupItemsGetter: BI.emptyFn
- });
- },
-
- _init: function () {
- BI.AbstractChart.superclass._init.apply(this, arguments);
- },
-
- /**
- * 格式化坐标轴数量级及其所影响的系列的各项属性
- * @param config 配置信息
- * @param items 系列数据
- * @param type 坐标轴数量级
- * @param position 坐标轴位置
- * @param formatter 系列tooltip格式化内容
- */
- formatNumberLevelInYaxis: function (config, items, type, position, formatter, isPercentChart) {
- var magnify = this.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- if (BI.isNotNull(da.y) && !BI.isNumber(da.y)) {
- da.y = BI.parseFloat(da.y);
- }
- if (BI.isNotNull(da.y)) {
- da.y = BI.contentFormat(BI.parseFloat(da.y.div(magnify).toFixed(4)), "#.####;-#.####");
- }
- }
- });
- if (position === item.yAxis) {
- item.tooltip = BI.deepClone(config.plotOptions.tooltip);
- item.tooltip.formatter.valueFormat = formatter;
- if(isPercentChart) {
- item.tooltip.formatter.percentFormat = formatter;
- item.tooltip.formatter.identifier = "${CATEGORY}${SERIES}${PERCENT}";
- }
- }
- });
- },
-
- formatNumberLevelInXaxis: function (items, type) {
- var magnify = this.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (BI.isNotNull(da.x) && !BI.isNumber(da.x)) {
- da.x = BI.parseFloat(da.x);
- }
- if (BI.isNotNull(da.x)) {
- da.x = BI.contentFormat(BI.parseFloat(da.x.div(magnify).toFixed(4)), "#.####;-#.####");
- }
- });
- });
- },
-
- formatXYDataWithMagnify: function (number, magnify) {
- if (BI.isNull(number)) {
- return null;
- }
- if (!BI.isNumber(number)) {
- number = BI.parseFloat(number);
- }
- return BI.contentFormat(BI.parseFloat(number.div(magnify).toFixed(4)), "#.####;-#.####");
- },
-
- calcMagnify: function (type) {
- var magnify = 1;
- switch (type) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- case BICst.TARGET_STYLE.NUM_LEVEL.PERCENT:
- magnify = 1;
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- magnify = 10000;
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- magnify = 1000000;
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- magnify = 100000000;
- break;
- }
- return magnify;
- },
-
- formatChartLegend: function (config, chartLegend) {
- switch (chartLegend) {
- case BICst.CHART_LEGENDS.BOTTOM:
- config.legend.enabled = true;
- config.legend.position = "bottom";
- config.legend.maxHeight = this.constants.LEGEND_HEIGHT;
- break;
- case BICst.CHART_LEGENDS.RIGHT:
- config.legend.enabled = true;
- config.legend.position = "right";
- config.legend.maxWidth = this.constants.LEGEND_WIDTH;
- break;
- case BICst.CHART_LEGENDS.NOT_SHOW:
- default:
- config.legend.enabled = false;
- break;
- }
- },
-
- getXYAxisUnit: function (numberLevelType, axis_unit) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- return (BI.isEmptyString(unit) && BI.isEmptyString(axis_unit)) ? unit : "(" + unit + axis_unit + ")";
- },
-
- formatTickInXYaxis: function (type, number_level, separators, isCompareBar) {
- var formatter = "#.##";
- switch (type) {
- case this.constants.NORMAL:
- formatter = "#.##";
- if (separators) {
- formatter = "#,###.##";
- }
- break;
- case this.constants.ZERO2POINT:
- formatter = "#0";
- if (separators) {
- formatter = "#,###";
- }
- break;
- case this.constants.ONE2POINT:
- formatter = "#0.0";
- if (separators) {
- formatter = "#,###.0";
- }
- break;
- case this.constants.TWO2POINT:
- formatter = "#0.00";
- if (separators) {
- formatter = "#,###.00";
- }
- break;
- }
- if (number_level === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) {
- formatter += "%";
- }
- formatter += ";-" + formatter;
- if(isCompareBar) {
- return function () {
- arguments[0] = arguments[0] > 0 ? arguments[0] : (-1) * arguments[0];
- return BI.contentFormat(arguments[0], formatter);
- };
- }
- return function () {
- return BI.contentFormat(arguments[0], formatter);
- };
- },
-
- formatDataLabel: function (state, items, config, style) {
- var self = this;
- if (state === true) {
- BI.each(items, function (idx, item) {
- item.dataLabels = {
- align: "outside",
- autoAdjust: true,
- style: style,
- enabled: true,
- formatter: {
- identifier: "${VALUE}",
- valueFormat: config.yAxis[item.yAxis].formatter
- }
- };
- });
- }
- },
-
- formatDataLabelForAxis: function (state, items, format, style, isPercentChart) {
- var self = this;
- if (state === true) {
- BI.each(items, function (idx, item) {
- item.dataLabels = {
- align: "outside",
- autoAdjust: true,
- style: style,
- enabled: true,
- formatter: {
- identifier: "${VALUE}",
- valueFormat: format
- }
- };
- if(isPercentChart) {
- item.dataLabels.formatter.identifier = "${PERCENT}";
- item.dataLabels.formatter.percentFormat = format;
- }
- });
- }
- },
-
- setFontStyle: function (fontStyle, config) {
- if (config.dataSheet) {
- config.dataSheet.style = fontStyle;
- }
- config.xAxis[0].title.style = fontStyle;
- config.xAxis[0].labelStyle = fontStyle;
- config.legend.style = fontStyle;
- BI.each(config.yAxis, function (idx, axis) {
- axis.labelStyle = fontStyle;
- axis.title.style = fontStyle;
- });
- },
-
- _formatItems: function (items) {
- return items;
- },
-
- populate: function (items, options) {
- },
-
- resize: function () {
- },
-
- magnify: function () {
- }
-});
-
-BI.AbstractChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.AbstractChart.EVENT_ITEM_CLICK = "EVENT_ITEM_CLICK";
-/**
- * 图表控件
- * @class BI.AccumulateAreaChart
- * @extends BI.Widget
- */
-BI.AccumulateAreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AccumulateAreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-accumulate-area-chart"
- });
- },
-
- _init: function () {
- BI.AccumulateAreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE
- }];
- this.yAxis = [];
-
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AccumulateAreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
-
- config.colors = this.config.chartColor;
- config.style = formatChartStyle(this.config.chartStyle);
- formatChartLineStyle(this.config.chartLineType);
- formatCordon(this.config.cordon);
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var unit = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- unit = self.getXYAxisUnit(self.config.leftYAxisNumberLevel, self.config.leftYAxisUnit);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + unit : unit;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter, self.config.numSeparators);
-
- break;
- case self.constants.RIGHT_AXIS:
- unit = self.getXYAxisUnit(self.config.rightYAxisNumberLevel, self.config.rightYAxisUnit);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + unit : unit;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter, self.config.rightNumSeparators);
- break;
- }
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle (v) {
- switch (v) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatChartLineStyle (v) {
- switch (v) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.curve = false;
- config.plotOptions.step = true;
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.curve = true;
- config.plotOptions.step = false;
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.curve = false;
- config.plotOptions.step = false;
- break;
- }
- }
-
- function formatCordon (cordon) {
- BI.each(cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i});
- });
- });
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- chartLineType: options.chartLineType || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
- this.yAxis = [];
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AREA);
- });
- types.push(type);
- });
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AccumulateAreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.accumulate_area_chart", BI.AccumulateAreaChart);/**
- * 图表控件
- * @class BI.AccumulateAxisChart
- * @extends BI.Widget
- */
-BI.AccumulateAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AccumulateAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-accumulate-axis-chart"
- });
- },
-
- _init: function () {
- BI.AccumulateAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE
- }];
- this.yAxis = [];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AccumulateAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- axis.title.text = getTitleText(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS, self.config.showLeftYAxisTitle, self.config.leftYAxisTitle);
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- axis.title.text = getTitleText(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS, self.config.showRightYAxisTitle, self.config.rightYAxisTitle);
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- });
-
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- config.xAxis[0].title.align = "center";
- BI.extend(config.xAxis[0], {
- lineWidth: self.config.lineWidth,
- enableTick: self.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "column";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function getTitleText (numberLevelType, position, show, title) {
- var unit = "";
-
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
-
- unit = unit === "" ? unit : "(" + unit + ")";
-
- return show === true ? title + unit : unit;
- }
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i});
- });
- });
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- this.yAxis = [];
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AXIS);
- });
- types.push(type);
- });
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AccumulateAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.accumulate_axis_chart", BI.AccumulateAxisChart);/**
- * 图表控件
- * @class BI.AccumulateBarChart
- * @extends BI.Widget
- */
-BI.AccumulateBarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AccumulateBarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-accumulate-bar-chart"
- });
- },
-
- _init: function () {
- BI.AccumulateBarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- gridLineWidth: 0,
- position: "left"
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AccumulateBarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- var unit = getXYAxisUnit(this.config.xAxisNumberLevel, this.constants.LEFT_AXIS);
- var xTitle = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.X_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle + unit : unit;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- BI.extend(config.yAxis[0], {
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- labelRotation: this.config.textDirection,
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- maxWidth: "40%"
- });
-
- self.formatNumberLevelInXaxis(items, this.config.leftYAxisNumberLevel);
- config.xAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + xTitle : xTitle;
- config.xAxis[0].title.align = "center";
- BI.extend(config.xAxis[0], {
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators),
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- lineWidth: this.config.lineWidth,
- enableMinorTick: this.config.enableMinorTick
- });
- config.chartType = "bar";
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.xAxis[0].formatter, this.config.chartFont);
-
- config.plotOptions.tooltip.formatter.valueFormat = config.xAxis[0].formatter;
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- BI.each(items, function (idx, item) {
- var stackId = BI.UUID();
- BI.each(item, function (id, it) {
- it.stack = stackId;
- BI.each(it.data, function (i, t) {
- var tmp = t.x;
- t.x = t.y;
- t.y = tmp;
- });
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- minimalist_model: options.minimalist_model || false,
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.BAR);
- });
- types.push(type);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AccumulateBarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.accumulate_bar_chart", BI.AccumulateBarChart);/**
- * 图表控件
- * @class BI.AccumulateRadarChart
- * @extends BI.Widget
- */
-BI.AccumulateRadarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AccumulateRadarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-accumulate-radar-chart"
- });
- },
-
- _init: function () {
- BI.AccumulateRadarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.radiusAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0,
- position: "bottom"
- }];
-
- this.angleAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE
- }];
-
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AccumulateRadarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i});
- });
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
-
- delete config.zoom;
-
- var title = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartRadarStyle();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
-
- config.radiusAxis = this.radiusAxis;
- config.angleAxis = this.angleAxis;
- config.radiusAxis[0].formatter = self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators);
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.radiusAxis[0].formatter);
- config.radiusAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + title : title;
- config.radiusAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.chartType = "radar";
- config.plotOptions.columnType = true;
- delete config.xAxis;
- delete config.yAxis;
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.radiusAxis[0].formatter, this.config.chartFont);
-
- // 全局样式的图表文字
- config.radiusAxis[0].labelStyle = config.radiusAxis[0].title.style = this.config.chartFont;
- config.angleAxis[0].labelStyle = config.angleAxis[0].title.style = this.config.chartFont;
- config.legend.style = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatChartRadarStyle () {
- switch (self.config.chartRadarType) {
- case BICst.CHART_SHAPE.POLYGON:
- config.plotOptions.shape = "polygon";
- break;
- case BICst.CHART_SHAPE.CIRCLE:
- config.plotOptions.shape = "circle";
- break;
- }
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- config.plotOptions.tooltip.formatter.valueFormat = formatter;
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartRadarType: options.chartRadarType || c.NORMAL,
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- cordon: options.cordon || [],
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.RADAR);
- });
- types.push(type);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AccumulateRadarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.accumulate_radar_chart", BI.AccumulateRadarChart);/**
- * 图表控件
- * @class BI.AreaChart
- * @extends BI.Widget
- */
-BI.AreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-area-chart"
- });
- },
-
- _init: function () {
- BI.AreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartLineStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators),
- gridLineWidth: self.config.showGridLine === true ? 1 : 0
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartLineStyle () {
- switch (self.config.chartLineType) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.curve = false;
- config.plotOptions.step = true;
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.curve = true;
- config.plotOptions.step = false;
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.curve = false;
- config.plotOptions.step = false;
- break;
- }
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- rightYAxisSecondTitle: options.rightYAxisSecondTitle || "",
- chartLineType: options.chartLineType || c.NORMAL,
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- rightYAxisSecondStyle: options.rightYAxisSecondStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- showRightYAxisSecondTitle: options.showRightYAxisSecondTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- rightYAxisSecondReversed: options.rightYAxisSecondReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- rightYAxisSecondNumberLevel: options.rightYAxisSecondNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- rightYAxisSecondUnit: options.rightYAxisSecondUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AREA);
- });
- types.push(type);
- });
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.area_chart", BI.AreaChart);/**
- * 图表控件 柱状
- * @class BI.AxisChart
- * @extends BI.Widget
- * leftYxis 左值轴属性
- * rightYxis 右值轴属性
- * xAxis 分类轴属性
- */
-BI.AxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-axis-chart"
- });
- },
-
- _init: function () {
- BI.AxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title;
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTIck: self.config.enableMinorTick,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators),
- gridLineWidth: self.config.showGridLine === true ? 1 : 0
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- var lineItem = [];
- var otherItem = [];
- BI.each(items, function (idx, item) {
- if (item.type === "line") {
- lineItem.push(item);
- } else {
- otherItem.push(item);
- }
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [BI.concat(otherItem, lineItem), config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options, types) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: true
- };
- this.options.items = items;
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.axis_chart", BI.AxisChart);/**
- * 图表控件
- * @class BI.BarChart
- * @extends BI.Widget
- */
-BI.BarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.BarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-bar-chart"
- });
- },
-
- _init: function () {
- BI.BarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- gridLineWidth: 0,
- position: "left"
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- var tmp = obj.x;
- obj.x = obj.y;
- obj.y = tmp;
- self.fireEvent(BI.BarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
-
- // 分类轴
- config.yAxis = this.yAxis;
- config.yAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- BI.extend(config.yAxis[0], {
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- labelRotation: this.config.textDirection,
- enableTick: this.config.enableTick,
- lineWidth: this.config.lineWidth,
- maxWidth: "40%"
- });
-
- // 值轴
- self.formatNumberLevelInXaxis(items, this.config.leftYAxisNumberLevel);
- config.xAxis[0].title.text = getXAxisTitle(this.config.leftYAxisNumberLevel, this.constants.X_AXIS);
- config.xAxis[0].title.align = "center";
- BI.extend(config.xAxis[0], {
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators),
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- enableTick: this.config.enableTick,
- showLabel: this.config.showLabel,
- lineWidth: this.config.lineWidth,
- enableMinorTick: this.config.enableMinorTick
- });
- config.chartType = "bar";
-
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.xAxis[0].formatter, this.config.chartFont);
-
- config.plotOptions.tooltip.formatter.valueFormat = config.xAxis[0].formatter;
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXAxisTitle (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- unit = unit === "" ? unit : "(" + unit + ")";
-
- return self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + unit : unit;
- }
- },
-
- _formatItems: function (items) {
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- BI.each(it.data, function (i, t) {
- var tmp = t.x;
- t.x = t.y;
- t.y = tmp;
- });
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.BAR);
- });
- types.push(type);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.BarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.bar_chart", BI.BarChart);/**
- * 图表控件
- * @class BI.BubbleChart
- * @extends BI.Widget
- */
-BI.BubbleChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.BubbleChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-bubble-chart"
- });
- },
-
- _init: function () {
- BI.BubbleChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.BubbleChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- delete config.zoom;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.dataLabels.formatter.identifier = "${X}${Y}${SIZE}";
- config.plotOptions.shadow = this.config.bubbleStyle !== this.constants.NO_PROJECT;
- config.yAxis = this.yAxis;
-
- config.yAxis[0].formatter = self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators);
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.yAxis[0].title.text = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + config.yAxis[0].title.text : config.yAxis[0].title.text;
- config.yAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.yAxis[0].lineWidth = 1;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].maxWidth = "40%";
-
- config.xAxis[0].formatter = self.formatTickInXYaxis(this.config.xAxisStyle, this.config.xAxisNumberLevel, this.config.rightNumSeparators);
- self.formatNumberLevelInXaxis(items, this.config.xAxisNumberLevel);
- config.xAxis[0].title.text = getXYAxisUnit(this.config.xAxisNumberLevel, this.constants.X_AXIS);
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle + config.xAxis[0].title.text : config.xAxis[0].title.text;
- config.xAxis[0].title.align = "center";
- config.xAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.xAxis[0].maxHeith = "40%";
- config.chartType = "bubble";
-
- if (BI.isNotEmptyArray(this.config.tooltip)) {
- config.plotOptions.bubble.tooltip = {
- useHtml: true,
- style: {
- color: "RGB(184, 184, 184)"
- },
- formatter: function () {
- var y = self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)(this.y);
- var x = self.formatTickInXYaxis(self.config.xAxisStyle, self.config.xAxisNumberLevel, self.config.rightNumSeparators)(this.x);
- return this.seriesName + "
(X)" + self.config.tooltip[0] + ":" + x + "
(Y)" + self.config.tooltip[1]
- + ":" + y + "
(" + BI.i18nText("BI-Size") + ")" + self.config.tooltip[2] + ":" + this.size + "
";
- }
- };
- }
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- if (config.plotOptions.dataLabels.enabled === true) {
- BI.each(items, function (idx, item) {
- item.dataLabels = {
- style: self.config.chartFont,
- align: "outside",
- autoAdjust: true,
- enabled: true,
- formatter: {
- identifier: "${X}${Y}${SIZE}",
- XFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- },
- YFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- },
- sizeFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- }
- }
- };
- item.dataLabels.formatter.XFormat = config.xAxis[0].formatter;
- item.dataLabels.formatter.YFormat = config.yAxis[0].formatter;
- });
- }
-
- // 全局样式图表文字
- config.yAxis[0].title.style = config.yAxis[0].labelStyle = this.config.chartFont;
- config.xAxis[0].title.style = config.xAxis[0].labelStyle = this.config.chartFont;
- config.legend.style = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatNumberLevelInYaxis (type, position) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- if (type === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) {
- // config.plotOptions.tooltip.formatter.valueFormat = "function(){return window.FR ? FR.contentFormat(arguments[0], '#0%') : arguments[0]}";
- }
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- BI.each(it.data, function (i, da) {
- var data = da.size;
- da.size = BI.contentFormat(data, "#.##;-#.##");
- });
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- cordon: options.cordon || [],
- tooltip: options.tooltip || [],
- bubbleStyle: options.bubbleStyle || c.NO_PROJECT,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.BUBBLE);
- });
- types.push(type);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.BubbleChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.bubble_chart", BI.BubbleChart);
-/**
- * 图表控件
- * @class BI.CompareAreaChart
- * @extends BI.Widget
- */
-BI.CompareAreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.CompareAreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-compare-area-chart"
- });
- },
-
- _init: function () {
- BI.CompareAreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.CompareAreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartLineStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.rotation = self.constants.ROTATION;
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- BI.extend(axis, {
- reversed: false,
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- formatNumberLevelInYaxis(self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.rotation = self.constants.ROTATION;
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- BI.extend(axis, {
- reversed: true,
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- formatNumberLevelInYaxis(self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- var res = _calculateValueNiceDomain(0, self.maxes[idx]);
- axis.max = res[1].mul(2);
- axis.min = res[0].mul(2);
- axis.tickInterval = BI.parseFloat((BI.parseFloat(axis.max).sub(BI.parseFloat(axis.min)))).div(5);
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function _calculateValueNiceDomain (minValue, maxValue) {
-
- minValue = Math.min(0, minValue);
-
- var tickInterval = _linearTickInterval(minValue, maxValue);
-
- return _linearNiceDomain(minValue, maxValue, tickInterval);
- }
-
- function _linearTickInterval (minValue, maxValue, m) {
-
- m = m || 5;
- var span = maxValue - minValue;
- var step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10));
- var err = m / span * step;
-
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-
- return step;
- }
-
- function _linearNiceDomain (minValue, maxValue, tickInterval) {
-
- minValue = VanUtils.accMul(Math.floor(minValue / tickInterval), tickInterval);
-
- maxValue = VanUtils.accMul(Math.ceil(maxValue / tickInterval), tickInterval);
-
- return [minValue, maxValue];
- }
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartLineStyle () {
- switch (self.config.chartLineType) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.area = {
- curve: false,
- step: true
- };
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.area = {
- curve: true,
- step: false
- };
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.area = {
- curve: false,
- step: false
- };
- break;
- }
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- var max = null;
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- if ((BI.isNull(max) || BI.parseFloat(da.y) > BI.parseFloat(max))) {
- max = da.y;
- }
- }
- });
- if (position === item.yAxis) {
- item.tooltip = BI.deepClone(config.plotOptions.tooltip);
- item.tooltip.formatter.valueFormat = formatter;
- }
- if (BI.isNotNull(max)) {
- self.maxes.push(max);
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- var self = this;
- this.maxes = [];
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- if (idx > 0) {
- BI.extend(it, {reversed: true, xAxis: 0});
- } else {
- BI.extend(it, {reversed: false, xAxis: 1});
- }
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- chartLineType: options.chartLineType || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AREA);
- });
- types.push(type);
- });
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.CompareAreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.compare_area_chart", BI.CompareAreaChart);/**
- * 图表控件
- * @class BI.CompareAxisChart
- * @extends BI.Widget
- */
-BI.CompareAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.CompareAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-compare-axis-chart"
- });
- },
-
- _init: function () {
- BI.CompareAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }, {
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "top",
- gridLineWidth: 0,
- type: "category",
- showLabel: false
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.CompareAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartLineStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if(this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var unit = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- unit = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.rotation = self.constants.ROTATION;
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + unit : unit;
- BI.extend(axis, {
- reversed: false,
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- formatNumberLevelInYaxis(self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- unit = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.rotation = self.constants.ROTATION;
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + unit : unit;
- BI.extend(axis, {
- reversed: true,
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- formatNumberLevelInYaxis(self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- var res = _calculateValueNiceDomain(0, self.maxes[idx]);
- axis.max = res[1].mul(2);
- axis.min = res[0].mul(2);
- axis.tickInterval = BI.parseFloat((BI.parseFloat(axis.max).sub(BI.parseFloat(axis.min)))).div(5);
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- BI.extend(config.xAxis[1], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if(idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if(idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartLineStyle () {
- switch (self.config.chartLineType) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.curve = false;
- config.plotOptions.step = true;
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.curve = true;
- config.plotOptions.step = false;
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.curve = false;
- config.plotOptions.step = false;
- break;
- }
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- var max = null;
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- if((BI.isNull(max) || BI.parseFloat(da.y) > BI.parseFloat(max))) {
- max = da.y;
- }
- }
- });
- if(position === item.yAxis) {
- item.tooltip = BI.deepClone(config.plotOptions.tooltip);
- item.tooltip.formatter.valueFormat = formatter;
- }
- if(BI.isNotNull(max)) {
- self.maxes.push(max);
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if(position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if(position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if(position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
-
- function _calculateValueNiceDomain (minValue, maxValue) {
-
- minValue = Math.min(0, minValue);
-
- var tickInterval = _linearTickInterval(minValue, maxValue);
-
- return _linearNiceDomain(minValue, maxValue, tickInterval);
- }
-
- function _linearTickInterval (minValue, maxValue, m) {
-
- m = m || 5;
- var span = maxValue - minValue;
- var step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10));
- var err = m / span * step;
-
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-
- return step;
- }
-
- function _linearNiceDomain (minValue, maxValue, tickInterval) {
-
- minValue = VanUtils.accMul(Math.floor(minValue / tickInterval), tickInterval);
-
- maxValue = VanUtils.accMul(Math.ceil(maxValue / tickInterval), tickInterval);
-
- return [minValue, maxValue];
- }
- },
-
- _formatItems: function (items) {
- var self = this;
- this.maxes = [];
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- if(idx > 0) {
- BI.extend(it, {reversed: true, xAxis: 1});
- }else{
- BI.extend(it, {reversed: false, xAxis: 0});
- }
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- chartLineType: options.chartLineType || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- this.yAxis = [];
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AXIS);
- });
- types.push(type);
- });
-
- BI.each(types, function (idx, type) {
- if(BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0,
- reversed: idx > 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.CompareAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.compare_axis_chart", BI.CompareAxisChart);/**
- * 图表控件
- * @class BI.CompareBarChart
- * @extends BI.Widget
- */
-BI.CompareBarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.CompareBarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-compare-bar-chart"
- });
- },
-
- _init: function () {
- BI.CompareBarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- gridLineWidth: 0,
- position: "left"
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.CompareBarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- var yTitle = getXYAxisUnit(this.config.xAxisNumberLevel, this.constants.LEFT_AXIS);
- var xTitle = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.X_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle + yTitle : yTitle;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- BI.extend(config.yAxis[0], {
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- maxWidth: "40%"
- });
-
- self.formatNumberLevelInXaxis(items, this.config.leftYAxisNumberLevel);
- config.xAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + xTitle : xTitle;
- config.xAxis[0].title.align = "center";
- BI.extend(config.xAxis[0], {
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators, true),
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick
- });
-
- config.chartType = "bar";
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.xAxis[0].formatter, this.config.chartFont);
-
- config.plotOptions.tooltip.formatter.valueFormat = config.xAxis[0].formatter;
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- var result = [];
- var i = BI.UUID();
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- BI.each(it.data, function (i, t) {
- var tmp = t.x;
- t.x = t.y;
- t.y = tmp;
- if (idx === 0) {
- t.x = -t.x;
- }
- });
- it.stack = i;
- });
- });
- BI.each(items, function (idx, item) {
- result = BI.concat(result, item);
- });
- return [result];
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = this._formatItems(items);
- var types = [];
- BI.each(this.options.items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.BAR);
- });
- types.push(type);
- });
- this.combineChart.populate(this.options.items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.CompareBarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.compare_bar_chart", BI.CompareBarChart);/**
- * 图表控件
- * @class BI.DashboardChart
- * @extends BI.Widget
- */
-BI.DashboardChart = BI.inherit(BI.AbstractChart, {
-
-
- _defaultConfig: function () {
- return BI.extend(BI.DashboardChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-dashboard-chart"
- });
- },
-
- _init: function () {
- BI.DashboardChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.gaugeAxis = [{
- minorTickColor: "rgb(226,226,226)",
- tickColor: "rgb(186,186,186)",
- labelStyle: this.constants.FONT_STYLE,
- step: 0,
- showLabel: true
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.DashboardChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- var isDashboard = BI.contains([self.constants.NORMAL, self.constants.HALF_DASHBOARD], self.config.chartDashboardType);
- var isMultiPointers = self.config.numberOfPointer === self.constants.MULTI_POINTER;
- formatChartDashboardStyle();
- config.chartType = "gauge";
- delete config.zoom;
- delete config.xAxis;
- delete config.yAxis;
- if (isDashboard && !isMultiPointers) {
- config.plotOptions.seriesLabel.enabled = false;
- if(BI.isNull(items[0].data[0].z)) {
- config.plotOptions.tooltip.formatter.identifier = "${SERIES}${X}${Y}${SIZE}${VALUE}";
- }
- }
- config.gaugeAxis[0].labelStyle = this.config.chartFont;
- return [items, config];
-
- function formatChartDashboardStyle () {
- var bands = getBandsStyles(self.config.bandsStyles, self.config.autoCustomStyle);
- var percentageLabel = BI.extend(config.plotOptions.percentageLabel, {
- enabled: self.config.showPercentage === BICst.PERCENTAGE.SHOW
- });
-
- config.gaugeAxis = self.gaugeAxis;
- var slotValueLAbel = {
- enabled: true,
- formatter: function () {
- var value = this.value;
- if (self.config.dashboardNumberLevel === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT && self.config.numSeparators) {
- value = BI.contentFormat(this.value, "#,##0%;-#,##0%");
- } else if (self.config.dashboardNumberLevel === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT && !self.config.numSeparators) {
- value = BI.contentFormat(this.value, "#0.00%");
- } else if (!(self.config.dashboardNumberLevel === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) && self.config.numSeparators) {
- value = BI.contentFormat(this.value, "#,###.##;-#,###.##");
- } else {
- value = BI.contentFormat(this.value, "#.##;-#.##");
- }
-
- var label = "" + this.seriesName + "
" + "" + value +
- getXYAxisUnit(self.config.dashboardNumberLevel, self.constants.DASHBOARD_AXIS) + "
";
-
- if (isDashboard && items[0].data.length > 1) {
- if (isMultiPointers) {
- return "" + this.seriesName + ":" + value +
- getXYAxisUnit(self.config.dashboardNumberLevel, self.constants.DASHBOARD_AXIS) + "
";
- }
- return label;
- } else if (isDashboard && BI.isNull(items[0].data[0].z)) {
- return label;
- }
-
- return "" + this.category + "
" + label;
- },
- style: self.config.chartFont,
- useHtml: true
- };
- switch (self.config.chartDashboardType) {
- case BICst.CHART_SHAPE.HALF_DASHBOARD:
- setPlotOptions("pointer_semi", bands, slotValueLAbel, percentageLabel);
- break;
- case BICst.CHART_SHAPE.PERCENT_DASHBOARD:
- setPlotOptions("ring", bands, slotValueLAbel, percentageLabel);
- break;
- case BICst.CHART_SHAPE.PERCENT_SCALE_SLOT:
- setPlotOptions("slot", bands, slotValueLAbel, percentageLabel);
- break;
- case BICst.CHART_SHAPE.HORIZONTAL_TUBE:
- BI.extend(slotValueLAbel, {
- align: "bottom"
- });
- BI.extend(percentageLabel, {
- align: "bottom"
- });
- setPlotOptions("thermometer", bands, slotValueLAbel, percentageLabel, "horizontal", "vertical");
- break;
- case BICst.CHART_SHAPE.VERTICAL_TUBE:
- BI.extend(slotValueLAbel, {
- align: "left"
- });
- BI.extend(percentageLabel, {
- align: "left"
- });
- setPlotOptions("thermometer", bands, slotValueLAbel, percentageLabel, "vertical", "horizontal");
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- setPlotOptions("pointer", bands, slotValueLAbel, percentageLabel);
- break;
- }
- changeMaxMinScale();
- formatNumberLevelInYaxis(self.config.dashboardNumberLevel, self.constants.LEFT_AXIS);
- if (self.config.dashboardNumberLevel === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) {
- config.gaugeAxis[0].formatter = function () {
- var scaleValue = this;
- if (self.config.numSeparators) {
- scaleValue = BI.contentFormat(scaleValue, "#,##0%;-#,##0%");
- } else {
- scaleValue = BI.contentFormat(scaleValue, "#0.00%");
- }
- return scaleValue + getXYAxisUnit(self.config.dashboardNumberLevel, self.constants.DASHBOARD_AXIS);
- };
- } else {
- config.gaugeAxis[0].formatter = function () {
- var value = this;
- if (self.config.numSeparators) {
- value = BI.contentFormat(value, "#,###;-#,###");
- }
- return value + getXYAxisUnit(self.config.dashboardNumberLevel, self.constants.DASHBOARD_AXIS);
- };
- }
- }
-
- function setPlotOptions (style, bands, slotValueLAbel, percentageLabel, thermometerLayout, layout) {
- config.style = style;
- config.plotOptions.bands = bands;
- config.plotOptions.valueLabel = slotValueLAbel;
- config.plotOptions.percentageLabel = percentageLabel;
- config.plotOptions.thermometerLayout = thermometerLayout;
- config.plotOptions.layout = layout;
- }
-
- function changeMaxMinScale () {
- self.gaugeAxis[0].min = BI.parseFloat(self.config.minScale) || null;
- self.gaugeAxis[0].max = BI.parseFloat(self.config.maxScale) || null;
- }
-
- function formatNumberLevelInYaxis (type, position) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
-
- config.plotOptions.tooltip.formatter.valueFormat = function () {
- return BI.contentFormat(this, "#.##;-#.##") + getXYAxisUnit(type, position);
- };
-
- if (self.config.numSeparators) {
- config.plotOptions.tooltip.formatter.valueFormat = function () {
- return BI.contentFormat(arguments[0], "#,###.##;-#,###.##");
- };
- }
-
- if (type === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) {
- config.plotOptions.tooltip.formatter.valueFormat = function () {
- return BI.contentFormat(arguments[0], "#0.00%");
- };
- if (self.config.numSeparators) {
- config.plotOptions.tooltip.formatter.valueFormat = function () {
- return BI.contentFormat(arguments[0], "#,##0%;-#,##0%");
- };
- }
- }
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.DASHBOARD_AXIS) {
- self.config.dashboardUnit !== "" && (unit = unit + self.config.dashboardUnit);
- }
- return unit;
- }
-
- function getBandsStyles (styles, change) {
- var min = 0, bands = [], color = null, max = null, conditionMax = null;
-
- BI.each(items, function (idx, item) {
- var data = item.data[0];
- if ((BI.isNull(max) || data.y > max)) {
- max = data.y;
- }
- });
-
- switch (change) {
-
- case BICst.SCALE_SETTING.AUTO:
- break;
- case BICst.SCALE_SETTING.CUSTOM:
- if (styles.length === 0) {
- return bands;
- }
- var maxScale = _calculateValueNiceDomain(0, max)[1];
-
- BI.each(styles, function (idx, style) {
- if(BI.parseFloat(style.range.min) > BI.parseFloat(style.range.max)) {
- return bands.push({
- color: color,
- from: conditionMax,
- to: maxScale
- });
- }
- bands.push({
- color: style.color,
- from: style.range.min,
- to: style.range.max
- });
- color = style.color;
- conditionMax = style.range.max;
- });
- min = BI.parseInt(styles[0].range.min);
- bands.push({
- color: "#808080",
- from: 0,
- to: min
- });
-
- bands.push({
- color: color,
- from: conditionMax,
- to: maxScale
- });
-
- return bands;
-
- }
- }
-
- function _calculateValueNiceDomain (minValue, maxValue) {
- minValue = Math.min(0, minValue);
- var tickInterval = _linearTickInterval(minValue, maxValue);
-
- return _linearNiceDomain(minValue, maxValue, tickInterval);
- }
-
- function _linearTickInterval (minValue, maxValue, m) {
- m = m || 5;
- var span = maxValue - minValue;
- var step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10));
- var err = m / span * step;
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-
- return step;
- }
-
- function _linearNiceDomain (minValue, maxValue, tickInterval) {
- minValue = VanUtils.accMul(Math.floor(minValue / tickInterval), tickInterval);
- maxValue = VanUtils.accMul(Math.ceil(maxValue / tickInterval), tickInterval);
-
- return [minValue, maxValue];
- }
- },
-
- _formatItems: function (items) {
- if (items.length === 0) {
- return [];
- }
- var c = this.constants;
- if (this.config.chartDashboardType === c.NORMAL || this.config.chartDashboardType === c.HALF_DASHBOARD) {
- var result = [];
- if (this.config.numberOfPointer === c.ONE_POINTER && items[0].length === 1) {// 单个系列
- BI.each(items[0][0].data, function (idx, da) {
- result.push({
- data: [BI.extend({}, da, {
- x: items[0][0].name
- })],
- name: da.x
- });
- });
- return [result];
- } else if(this.config.numberOfPointer === c.ONE_POINTER && items[0].length > 1) {
- BI.each(items[0], function (idx, item) {
- result.push({
- data: [BI.extend(item.data[0], {
- x: item.name
- })],
- name: BI.UUID()
- });
- });
- return [result];
- }
- if (this.config.numberOfPointer === c.MULTI_POINTER && items[0].length > 1) {// 多个系列
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- var data = it.data[0];
- data.x = it.name;
- result.push(data);
- });
- });
- return [[{
- data: result,
- name: ""
- }]];
- }
- } else {
- var others = [];
- if (BI.isNotNull(items[0][0].data[0].z)) {
- BI.each(items[0], function (idx, item) {
- BI.each(item.data, function (id, da) {
- others.push({
- data: [BI.extend({}, da, {
- x: item.name,
- y: da.y
- })],
- name: da.x
- });
- });
- });
- return [others];
- }
- }
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants, o = this.options;
- this.config = {
- dashboardNumberLevel: options.dashboardNumberLevel || c.NORMAL,
- dashboardUnit: options.dashboardUnit || "",
- chartDashboardType: options.chartDashboardType || c.NORMAL,
- numberOfPointer: options.numberOfPointer || c.ONE_POINTER,
- bandsStyles: options.bandsStyles || [],
- autoCustomStyle: options.autoCustom || c.AUTO,
- minScale: options.minScale,
- maxScale: options.maxScale,
- showPercentage: options.showPercentage || c.NOT_SHOW,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- o.items = this._formatItems(items);
- var types = [];
- BI.each(o.items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.DASHBOARD);
- });
- types.push(type);
- });
-
- this.combineChart.populate(o.items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.DashboardChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.dashboard_chart", BI.DashboardChart);/**
- * 图表控件
- * @class BI.DonutChart
- * @extends BI.Widget
- */
-BI.DonutChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.DonutChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-donut-chart"
- });
- },
-
- _init: function () {
- BI.DonutChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.DonutChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- delete config.zoom;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
-
- this.formatChartLegend(config, this.config.chartLegend);
-
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
-
- config.plotOptions.innerRadius = "50.0%";
- config.chartType = "pie";
- config.plotOptions.dataLabels.align = "outside";
- config.plotOptions.dataLabels.connectorWidth = "outside";
- config.plotOptions.dataLabels.style = this.config.chartFont;
- config.plotOptions.dataLabels.formatter.identifier = "${VALUE}${PERCENT}";
- delete config.xAxis;
- delete config.yAxis;
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- });
- });
-
- config.legend.style = this.config.chartFont;
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.DONUT);
- });
- types.push(type);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.DonutChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.donut_chart", BI.DonutChart);/**
- * 图表控件
- * @class BI.FallAxisChart
- * @extends BI.Widget
- */
-BI.FallAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.FallAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-fall-axis-chart"
- });
- },
-
- _init: function () {
- BI.FallAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.FallAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- var yTitle = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- config.legend.enabled = false;
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.dataSheet.enabled = this.config.showDataTable;
- if(config.dataSheet.enabled === true) {
- config.xAxis[0].showLabel = false;
- }
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if(this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.extend(config.yAxis[0], {
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators)
- });
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.yAxis[0].formatter);
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + yTitle : yTitle;
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- if(config.plotOptions.dataLabels.enabled === true) {
- BI.each(items, function (idx, item) {
- if(idx === 0) {
- item.dataLabels = {};
- return;
- }
- item.dataLabels = {
- style: self.config.chartFont,
- align: "outside",
- autoAdjust: true,
- enabled: true,
- formatter: {
- identifier: "${VALUE}",
- valueFormat: config.yAxis[0].formatter
- }
- };
- });
- }
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if(idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if(idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- config.plotOptions.tooltip.formatter.valueFormat = formatter;
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if(position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if(position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if(position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- var o = this.options;
- if(BI.isEmptyArray(items)) {
- return [];
- }
- items = items[0];
- var tables = [], sum = 0;
- var colors = this.config.chartColor || [];
- if(BI.isEmptyArray(colors)) {
- colors = ["rgb(152, 118, 170)", "rgb(0, 157, 227)"];
- }
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (i, t) {
- if(t.y < 0) {
- tables.push([t.x, t.y, sum + t.y, t]);
- }else{
- tables.push([t.x, t.y, sum, t]);
- }
- sum += t.y;
- });
- });
-
- return [BI.map(BI.makeArray(2, null), function (idx, item) {
- return {
- data: BI.map(tables, function (id, cell) {
- var axis = BI.extend({}, cell[3], {
- x: cell[0],
- y: Math.abs(cell[2 - idx])
- });
- if(idx === 1) {
- axis.color = cell[2 - idx] < 0 ? colors[1] : colors[0];
- }else{
- axis.color = "rgba(0,0,0,0)";
- axis.borderColor = "rgba(0,0,0,0)";
- axis.borderWidth = 0;
- axis.clickColor = "rgba(0,0,0,0)";
- axis.mouseOverColor = "rgba(0,0,0,0)";
- axis.tooltip = {
- enable: false
- };
- }
- return axis;
- }),
- stack: "stackedFall",
- name: idx === 1 ? items[0].name : BI.UUID()
- };
- })];
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || ["#5caae4", "#70cc7f", "#ebbb67", "#e97e7b", "#6ed3c9"],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AXIS);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.FallAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.fall_axis_chart", BI.FallAxisChart);/**
- * 图表控件
- * @class BI.ForceBubbleChart
- * @extends BI.Widget
- */
-BI.ForceBubbleChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.ForceBubbleChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-force-bubble-chart"
- });
- },
-
- _init: function () {
- BI.ForceBubbleChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.ForceBubbleChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.chartType = "forceBubble";
- config.colors = this.config.chartColor;
- this.formatChartLegend(config, this.config.chartLegend);
-
- config.plotOptions.force = true;
- config.plotOptions.shadow = this.config.bubbleStyle !== this.constants.NO_PROJECT;
- config.plotOptions.dataLabels.enabled = true;
- config.plotOptions.dataLabels.align = "inside";
- config.plotOptions.dataLabels.style = this.config.chartFont;
- config.plotOptions.dataLabels.formatter.identifier = "${CATEGORY}${VALUE}";
- delete config.xAxis;
- delete config.yAxis;
- delete config.zoom;
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- });
- });
- config.legend.style = this.config.chartFont;
- return [items, config];
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartColor: options.chartColor || [],
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- bubbleStyle: options.bubbleStyle || c.NO_PROJECT,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.FORCE_BUBBLE);
- });
- types.push(type);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.ForceBubbleChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.force_bubble_chart", BI.ForceBubbleChart);/**
- * 图表控件
- * @class BI.GISMapChart
- * @extends BI.Widget
- */
-BI.GISMapChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.GISMapChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-gis-map-chart"
- });
- },
-
- _init: function () {
- BI.GISMapChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.GISMapChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- delete config.dataSheet;
- delete config.legend;
- delete config.zoom;
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.dataLabels.useHtml = true;
- config.plotOptions.dataLabels.style = this.config.chartFont;
- config.plotOptions.dataLabels.formatter = function () {
- var name = (BI.isArray(this.name) ? "" : this.name + ",") + BI.contentFormat(this.value, "#.##;-#.##");
- var style = "padding: 5px; background-color: rgba(0,0,0,0.4980392156862745);border-color: rgb(0,0,0); border-radius:2px; border-width:0px;";
- var a = "" + name + "
";
- return a;
- };
- config.plotOptions.tooltip.shared = true;
- config.plotOptions.tooltip.formatter = function () {
- var tip = BI.isArray(this.name) ? "" : this.name;
- BI.each(this.points, function (idx, point) {
- tip += ("" + point.seriesName + ":" + BI.contentFormat((point.size || point.y), "#.##;-#.##") + "
");
- });
- return tip;
- };
- config.geo = {
- tileLayer: "http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
- attribution: "© 2016 AutoNavi"
- };
- if (this.config.showBackgroundLayer === true && BI.isNotNull(this.config.backgroundLayerInfo)) {
- config.geo = {};
- if (this.config.backgroundLayerInfo.type === BICst.WMS_SERVER) {
- config.geo.tileLayer = false;
- config.geo.wmsUrl = this.config.backgroundLayerInfo.url;
- config.geo.wmsLayer = this.config.backgroundLayerInfo.wmsLayer;
- } else {
- config.geo.tileLayer = this.config.backgroundLayerInfo.url;
- }
- }
- config.chartType = "pointMap";
- config.plotOptions.icon = {
- iconUrl: BICst.GIS_ICON_PATH,
- iconSize: [24, 24]
- };
-
- config.plotOptions.marker = {
- symbol: BICst.GIS_ICON_PATH,
- width: 24,
- height: 24,
- enable: true
- };
- delete config.xAxis;
- delete config.yAxis;
- return [items, config];
-
- },
-
- _checkLngLatValid: function (lnglat) {
- if (lnglat.length < 2) {
- return false;
- }
- return lnglat[0] <= 180 && lnglat[0] >= -180 && lnglat[1] <= 90 && lnglat[1] >= -90;
- },
-
- _formatItems: function (items) {
- var self = this;
- var results = [];
- BI.each(items, function (idx, item) {
- var result = [];
- BI.each(item, function (id, it) {
- var res = [];
- BI.each(it.data, function (i, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- var lnglat = da.x.split(",");
- if (self.config.lnglat === self.constants.LAT_FIRST) {
- var lng = lnglat[1];
- lnglat[1] = lnglat[0];
- lnglat[0] = lng;
- }
- da.lnglat = lnglat;
- da.value = da.y;
- da.name = BI.isNotNull(da.z) ? da.z : da.lnglat;
- if (self._checkLngLatValid(da.lnglat)) {
- res.push(da);
- }
- });
- if (BI.isNotEmptyArray(res)) {
- result.push(BI.extend(it, {
- data: res
- }));
- }
- });
- if (BI.isNotEmptyArray(result)) {
- results.push(result);
- }
- });
- return results;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- lnglat: options.lnglat || c.LNG_FIRST,
- chartFont: options.chartFont || c.FONT_STYLE,
- showBackgroundLayer: options.showBackgroundLayer || false,
- backgroundLayerInfo: options.backgroundLayerInfo
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function () {
- type.push(BICst.WIDGET.GIS_MAP);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.GISMapChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.gis_map_chart", BI.GISMapChart);/**
- * 图表控件
- * @class BI.LineChart
- * @extends BI.Widget
- */
-BI.LineChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.LineChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-line-chart"
- });
- },
-
- _init: function () {
- BI.LineChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.LineChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartLineStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- axis.title.rotation = self.constants.ROTATION;
- title = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "line";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartLineStyle () {
- switch (self.config.chartLineType) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.curve = false;
- config.plotOptions.step = true;
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.curve = true;
- config.plotOptions.step = false;
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.curve = false;
- config.plotOptions.step = false;
- break;
- }
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartLineType: options.chartLineType || c.NORMAL,
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.LINE);
- });
- types.push(type);
- });
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.LineChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.line_chart", BI.LineChart);/**
- * 图表控件
- * @class BI.MapChart
- * @extends BI.Widget
- */
-BI.MapChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.MapChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-map-chart"
- });
- },
-
- _init: function () {
- BI.MapChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.MapChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, c = this.constants;
- formatRangeLegend();
- delete config.legend;
- delete config.zoom;
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.tooltip.shared = true;
- var formatterArray = [];
- BI.each(items, function (idx, item) {
- if (BI.has(item, "settings")) {
- formatterArray.push(formatToolTipAndDataLabel(item.settings.format || c.NORMAL, item.settings.num_level || c.NORMAL,
- item.settings.unit || "", item.settings.numSeparators || c.NUM_SEPARATORS));
- }
- });
- config.plotOptions.tooltip.formatter = function () {
- var tip = this.name;
- var point = this.points[0];
- var index = BI.isNull(point.size) ? 0 : 1;
- tip += ("" + point.seriesName + ":" + BI.contentFormat(point.size || point.y, formatterArray[index]) + "
");
- return tip;
- };
- config.plotOptions.dataLabels.formatter.valueFormat = function () {
- return BI.contentFormat(arguments[0], formatterArray[0]);
- };
- config.plotOptions.dataLabels.style = this.config.chartFont;
-
- config.plotOptions.bubble.dataLabels = config.plotOptions.dataLabels;
- config.plotOptions.bubble.dataLabels.formatter.identifier = "${SIZE}";
-
- config.plotOptions.bubble.tooltip = config.plotOptions.tooltip;
-
- config.geo = this.config.geo;
- if (this.config.showBackgroundLayer === true && BI.isNotNull(this.config.backgroundLayerInfo)) {
- if (this.config.backgroundLayerInfo.type === BICst.WMS_SERVER) {
- config.geo.tileLayer = false;
- config.geo.wmsUrl = this.config.backgroundLayerInfo.url;
- config.geo.wmsLayer = this.config.backgroundLayerInfo.wmsLayer;
- } else {
- config.geo.tileLayer = this.config.backgroundLayerInfo.url;
- }
- }
- if (this.config.initDrillPath.length > 1) {
- config.initDrillPath = this.config.initDrillPath;
- }
- config.dTools.enabled = true;
- config.dTools.click = function (point) {
- point = point || {};
- var pointOption = point.options || {};
- self.fireEvent(BI.MapChart.EVENT_CLICK_DTOOL, pointOption);
- };
- config.chartType = "areaMap";
- delete config.xAxis;
- delete config.yAxis;
-
- var find = BI.find(items, function (idx, item) {
- return BI.has(item, "type") && item.type === "areaMap";
- });
- if (BI.isNull(find)) {
- items.push({
- type: "areaMap",
- data: []
- });
- }
-
- return [items, config];
-
- function formatRangeLegend () {
- config.rangeLegend.enabled = true;
- switch (self.config.chartLegend) {
- case BICst.CHART_LEGENDS.BOTTOM:
- config.rangeLegend.visible = true;
- config.rangeLegend.position = "bottom";
- break;
- case BICst.CHART_LEGENDS.RIGHT:
- config.rangeLegend.visible = true;
- config.rangeLegend.position = "right";
- break;
- case BICst.CHART_LEGENDS.NOT_SHOW:
- config.rangeLegend.visible = false;
- break;
- }
- config.rangeLegend.continuous = false;
- config.rangeLegend.range = getRangeStyle(self.config.mapStyles, self.config.autoCustom, self.config.themeColor);
- config.rangeLegend.formatter = function () {
- var to = this.to;
- if (BI.isNotEmptyArray(items) && BI.has(items[0], "settings")) {
- var settings = items[0].settings;
- var legendFormat = formatToolTipAndDataLabel(settings.format || c.NORMAL, settings.num_level || c.NORMAL,
- settings.unit || "", settings.numSeparators || c.NUM_SEPARATORS);
- to = BI.contentFormat(to, legendFormat);
- }
- return to;
- };
- }
-
- function formatToolTipAndDataLabel (format, numberLevel, unit, numSeparators) {
- var formatter = "#.##";
- switch (format) {
- case self.constants.NORMAL:
- formatter = "#.##";
- if (numSeparators) formatter = "#,###.##";
- break;
- case self.constants.ZERO2POINT:
- formatter = "#0";
- if (numSeparators) formatter = "#,###";
- break;
- case self.constants.ONE2POINT:
- formatter = "#0.0";
- if (numSeparators) formatter = "#,###.0";
- break;
- case self.constants.TWO2POINT:
- formatter = "#0.00";
- if (numSeparators) formatter = "#,###.00";
- break;
- }
-
- switch (numberLevel) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- formatter += "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- formatter += BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- formatter += BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- formatter += BI.i18nText("BI-Yi");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.PERCENT:
- formatter += "%";
- break;
- }
-
- return formatter + unit;
- }
-
- function getRangeStyle (styles, change, defaultColor) {
- var range = [], color = null, defaultStyle = {};
- var conditionMax = null, conditionMin = null, min = null;
-
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, it) {
- if (BI.isNull(min) || BI.parseFloat(min) > BI.parseFloat(it.y)) {
- min = it.y;
- }
- });
- });
-
- switch (change) {
- case BICst.SCALE_SETTING.AUTO:
- defaultStyle.color = defaultColor;
- return defaultStyle;
- case BICst.SCALE_SETTING.CUSTOM:
- if (styles.length !== 0) {
- var maxScale = _calculateValueNiceDomain(0, self.max)[1];
- BI.each(styles, function (idx, style) {
- if (style.range.max) {
- range.push({
- color: style.color || "rgba(255,255,255,0)",
- from: style.range.min,
- to: style.range.max
- });
- } else {
- var to = style.range.min < maxScale ? maxScale : 266396;
- range.push({
- color: style.color || "rgba(255,255,255,0)",
- from: style.range.min,
- to: to
- });
- }
- color = style.color;
- conditionMax = style.range.max;
- });
-
- conditionMin = BI.parseFloat(styles[0].range.min);
- if (conditionMin !== 0) {
- range.push({
- color: "#808080",
- from: 0,
- to: conditionMin
- });
- }
-
- if (conditionMax && conditionMax < maxScale) {
- range.push({
- color: color || "rgba(255,255,255,0)",
- from: conditionMax,
- to: maxScale
- });
- }
- return range;
- }
- defaultStyle.color = defaultColor;
- return defaultStyle;
-
- }
- }
-
- function _calculateValueNiceDomain (minValue, maxValue) {
- minValue = Math.min(0, minValue);
- var tickInterval = _linearTickInterval(minValue, maxValue);
-
- return _linearNiceDomain(minValue, maxValue, tickInterval);
- }
-
- function _linearTickInterval (minValue, maxValue, m) {
- m = m || 5;
- var span = maxValue - minValue;
- var step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10));
- var err = m / span * step;
-
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-
- return step;
- }
-
- function _linearNiceDomain (minValue, maxValue, tickInterval) {
- minValue = VanUtils.accMul(Math.floor(minValue / tickInterval), tickInterval);
- maxValue = VanUtils.accMul(Math.ceil(maxValue / tickInterval), tickInterval);
-
- return [minValue, maxValue];
- }
- },
-
- _formatDrillItems: function (items) {
- var self = this;
- BI.each(items.series, function (idx, da) {
- var hasArea = false;
- BI.each(da.data, function (idx, data) {
- data.y = self.formatXYDataWithMagnify(data.y, 1);
- if (BI.has(da, "settings")) {
- data.y = self.formatXYDataWithMagnify(data.y, self.calcMagnify(da.settings.num_level || self.constants.NORMAL));
- }
- if (BI.has(da, "type") && da.type == "bubble") {
- data.name = data.x;
- data.size = data.y;
- } else {
- data.name = data.x;
- data.value = data.y;
- }
- if (BI.has(da, "type") && da.type === "areaMap") {
- hasArea = true;
- }
- if (BI.has(data, "drilldown")) {
- self._formatDrillItems(data.drilldown);
- }
- });
- if (hasArea === false) {
- items.series.push({
- type: "areaMap",
- data: []
- });
- }
- });
- },
-
- _formatItems: function (items) {
- var self = this;
- this.max = null;
- this.min = null;
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- BI.each(it.data, function (i, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- if (BI.has(it, "settings")) {
- da.y = self.formatXYDataWithMagnify(da.y, self.calcMagnify(it.settings.num_level || self.constants.NORMAL));
- }
- if ((BI.isNull(self.max) || BI.parseFloat(da.y) > BI.parseFloat(self.max)) && id === 0) {
- self.max = da.y;
- }
- if ((BI.isNull(self.min) || BI.parseFloat(da.y) < BI.parseFloat(self.min)) && id === 0) {
- self.min = da.y;
- }
- if (BI.has(it, "type") && it.type == "bubble") {
- da.name = da.x;
- da.size = da.y;
- } else {
- da.name = da.x;
- da.value = da.y;
- }
- if (BI.has(da, "drilldown")) {
- self._formatDrillItems(da.drilldown);
- }
- });
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- geo: options.geo,
- initDrillPath: options.initDrillPath || [],
- tooltip: options.tooltip || "",
- themeColor: options.themeColor || "#65bce7",
- mapStyles: options.mapStyles || [],
- autoCustom: options.autoCustom || c.AUTO_CUSTOM,
- showBackgroundLayer: options.showBackgroundLayer || false,
- backgroundLayerInfo: options.backgroundLayerInfo,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.MAP);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.MapChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.MapChart.EVENT_CLICK_DTOOL = "EVENT_CLICK_DTOOL";
-BI.shortcut("bi.map_chart", BI.MapChart);/**
- * 图表控件
- * @class BI.MultiAxisChart
- * @extends BI.Widget
- * leftYxis 左值轴属性
- * rightYxis 右值轴属性
- * xAxis 分类轴属性
- */
-BI.MultiAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.MultiAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-multi-axis-chart"
- });
- },
-
- _init: function () {
- BI.MultiAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: {fontFamily: "inherit", color: "#808080", fontSize: "12px", fontWeight: ""}
- },
- labelStyle: {
- fontFamily: "inherit", color: "#808080", fontSize: "12px"
- },
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.MultiAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = this.formatChartStyle();
- this.formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = self.getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = self.getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- title = self.getXYAxisUnit(self.config.rightYAxisSecondNumberLevel, self.constants.RIGHT_AXIS_SECOND);
- axis.title.text = self.config.showRightYAxisSecondTitle === true ? self.config.rightYAxisSecondTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisSecondReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisSecondStyle, self.config.rightYAxisSecondNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisSecondNumberLevel, idx, axis.formatter);
- break;
- default:
- break;
- }
- });
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- if (config.dataSheet) {
- config.dataSheet.style = this.config.chartFont;
- }
- config.xAxis[0].title.style = config.xAxis[0].labelStyle = this.config.chartFont;
- config.legend.style = this.config.chartFont;
- config.plotOptions.dataLabels.style = this.config.chartFont;
- BI.each(config.yAxis, function (idx, axis) {
- axis.title.style = self.config.chartFont;
- });
-
- return [items, config];
- },
-
- formatChartStyle: function () {
- switch (this.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- },
-
- formatCordon: function () {
- var self = this;
- var magnify = 1;
- BI.each(this.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: {
- fontFamily: "inherit",
- color: "#808080",
- fontSize: "12px",
- fontWeight: ""
- },
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- default:
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: {
- fontFamily: "inherit",
- color: "#808080",
- fontSize: "12px",
- fontWeight: ""
- },
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- },
-
- getXYAxisUnit: function (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- default:
- break;
- }
- if (position === this.constants.X_AXIS) {
- this.config.xAxisUnit !== "" && (unit = unit + this.config.xAxisUnit);
- }
- if (position === this.constants.LEFT_AXIS) {
- this.config.leftYAxisUnit !== "" && (unit = unit + this.config.leftYAxisUnit);
- }
- if (position === this.constants.RIGHT_AXIS) {
- this.config.rightYAxisUnit !== "" && (unit = unit + this.config.rightYAxisUnit);
- }
- if (position === this.constants.RIGHT_AXIS_SECOND) {
- this.config.rightYAxisSecondUnit !== "" && (unit = unit + this.config.rightYAxisSecondUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- },
-
- populate: function (items, options, types) {
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- rightYAxisSecondTitle: options.rightYAxisSecondTitle || "",
- chartColor: options.chartColor || ["#5caae4", "#70cc7f", "#ebbb67", "#e97e7b", "#6ed3c9"],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- rightYAxisSecondStyle: options.rightYAxisSecondStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- showRightYAxisSecondTitle: options.showRightYAxisSecondTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- rightYAxisSecondReversed: options.rightYAxisSecondReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- rightYAxisSecondNumberLevel: options.rightYAxisSecondNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- rightYAxisSecondUnit: options.rightYAxisSecondUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: {fontFamily: "inherit", color: "#808080", fontSize: "12px", fontWeight: ""}
- },
- labelStyle: {
- fontFamily: "inherit", color: "#808080", fontSize: "12px"
- },
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.MultiAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.multi_axis_chart", BI.MultiAxisChart);/**
- * 图表控件
- * @class BI.MultiAxisChart
- * @extends BI.Widget
- * leftYxis 左值轴属性
- * rightYxis 右值轴属性
- * xAxis 分类轴属性
- */
-BI.MultiAxisCombineChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.MultiAxisCombineChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-multi-axis-combine-chart"
- });
- },
-
- _init: function () {
- BI.MultiAxisCombineChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: {fontFamily: "inherit", color: "#808080", fontSize: "12px", fontWeight: ""}
- },
- labelStyle: {
- fontFamily: "inherit", color: "#808080", fontSize: "12px"
- },
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.MultiAxisCombineChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = this.formatChartStyle();
- this.formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = self.getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- axis.labelStyle.color = axis.lineColor = axis.tickColor = config.colors[0];
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = self.getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- axis.labelStyle.color = axis.lineColor = axis.tickColor = config.colors[1];
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- title = self.getXYAxisUnit(self.config.rightYAxisSecondNumberLevel, self.constants.RIGHT_AXIS_SECOND);
- axis.title.text = self.config.showRightYAxisSecondTitle === true ? self.config.rightYAxisSecondTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- axis.labelStyle.color = axis.lineColor = axis.tickColor = config.colors[2];
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisSecondReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisSecondStyle, self.config.rightYAxisSecondNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisSecondNumberLevel, idx, axis.formatter);
- break;
- default:
- break;
- }
- });
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- if (config.dataSheet) {
- config.dataSheet.style = this.config.chartFont;
- }
- config.xAxis[0].title.style = config.xAxis[0].labelStyle = this.config.chartFont;
- config.legend.style = this.config.chartFont;
- config.plotOptions.dataLabels.style = this.config.chartFont;
- BI.each(config.yAxis, function (idx, axis) {
- axis.title.style = self.config.chartFont;
- });
-
- return [items, config];
- },
-
- formatChartStyle: function () {
- switch (this.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- },
-
- formatCordon: function () {
- var self = this;
- var magnify = 1;
- BI.each(this.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: {
- fontFamily: "inherit",
- color: "#808080",
- fontSize: "12px",
- fontWeight: ""
- },
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- default:
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: {
- fontFamily: "inherit",
- color: "#808080",
- fontSize: "12px",
- fontWeight: ""
- },
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- },
-
- getXYAxisUnit: function (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- default:
- break;
- }
- if (position === this.constants.X_AXIS) {
- this.config.xAxisUnit !== "" && (unit = unit + this.config.xAxisUnit);
- }
- if (position === this.constants.LEFT_AXIS) {
- this.config.leftYAxisUnit !== "" && (unit = unit + this.config.leftYAxisUnit);
- }
- if (position === this.constants.RIGHT_AXIS) {
- this.config.rightYAxisUnit !== "" && (unit = unit + this.config.rightYAxisUnit);
- }
- if (position === this.constants.RIGHT_AXIS_SECOND) {
- this.config.rightYAxisSecondUnit !== "" && (unit = unit + this.config.rightYAxisSecondUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- },
-
- populate: function (items, options, types) {
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- rightYAxisSecondTitle: options.rightYAxisSecondTitle || "",
- chartColor: options.chartColor || ["#5caae4", "#70cc7f", "#ebbb67", "#e97e7b", "#6ed3c9"],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- rightYAxisSecondStyle: options.rightYAxisSecondStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- showRightYAxisSecondTitle: options.showRightYAxisSecondTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- rightYAxisSecondReversed: options.rightYAxisSecondReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- rightYAxisSecondNumberLevel: options.rightYAxisSecondNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- rightYAxisSecondUnit: options.rightYAxisSecondUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: {fontFamily: "inherit", color: "#808080", fontSize: "12px", fontWeight: ""}
- },
- labelStyle: {
- fontFamily: "inherit", color: "#808080", fontSize: "12px"
- },
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.MultiAxisCombineChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.multi_axis_combine_chart", BI.MultiAxisCombineChart);/**
- * 图表控件
- * @class BI.PercentAccumulateAreaChart
- * @extends BI.Widget
- */
-BI.PercentAccumulateAreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.PercentAccumulateAreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-percent-accumulate-area-chart"
- });
- },
-
- _init: function () {
- BI.PercentAccumulateAreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.PercentAccumulateAreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.text = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- BI.extend(config.yAxis[0], {
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- reversed: this.config.leftYAxisReversed,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.yAxis[0].formatter, true);
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.yAxis[0].formatter, this.config.chartFont, true);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
-
- unit = unit === "" ? unit : "(" + unit + ")";
-
- return self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + unit : unit;
- }
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i, stackByPercent: true});
- });
- });
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AREA);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.PercentAccumulateAreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.percent_accumulate_area_chart", BI.PercentAccumulateAreaChart);/**
- * 图表控件 百分比堆积柱状
- * @class BI.PercentAccumulateAxisChart
- * @extends BI.Widget
- */
-BI.PercentAccumulateAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.PercentAccumulateAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-percent-accumulate-axis-chart"
- });
- },
-
- _init: function () {
- BI.PercentAccumulateAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.PercentAccumulateAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- var yTitle = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + yTitle : yTitle;
- BI.extend(config.yAxis[0], {
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- reversed: this.config.leftYAxisReversed,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.yAxis[0].formatter, true);
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.yAxis[0].formatter, this.config.chartFont, true);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i, stackByPercent: true});
- });
- });
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AXIS);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.PercentAccumulateAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.percent_accumulate_axis_chart", BI.PercentAccumulateAxisChart);/**
- * 图表控件
- * @class BI.PieChart
- * @extends BI.Widget
- */
-BI.PieChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.PieChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-pie-chart"
- });
- },
-
- _init: function () {
- BI.PieChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.PieChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- delete config.zoom;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartPieStyle();
-
- this.formatChartLegend(config, this.config.chartLegend);
-
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.tooltip.formatter.identifier = "${CATEGORY}${SERIES}${VALUE}${PERCENT}";
-
- config.chartType = "pie";
- delete config.xAxis;
- delete config.yAxis;
- config.plotOptions.dataLabels.align = "outside";
- config.plotOptions.dataLabels.connectorWidth = "outside";
- config.plotOptions.dataLabels.formatter.identifier = "${VALUE}${PERCENT}";
- config.plotOptions.dataLabels.style = this.config.chartFont;
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- });
- });
-
- config.legend.style = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatChartPieStyle () {
- switch (self.config.chartPieType) {
- case BICst.CHART_SHAPE.EQUAL_ARC_ROSE:
- config.plotOptions.roseType = "sameArc";
- break;
- case BICst.CHART_SHAPE.NOT_EQUAL_ARC_ROSE:
- config.plotOptions.roseType = "differentArc";
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- delete config.plotOptions.roseType;
- break;
- }
- config.plotOptions.innerRadius = self.config.chartInnerRadius + "%";
- config.plotOptions.endAngle = self.config.chartTotalAngle;
- }
-
- },
-
- // 目前饼图不会有多个系列,如果有多个就要把它们合并在一起
- _isNeedConvert: function (items) {
- var result = BI.find(items, function (idx, item) {
- return item.length > 1;
- });
- return BI.isNotNull(result);
- },
-
- _formatItems: function (items) {
- if(this._isNeedConvert(items)) {
- // 把每个坐标轴所有的多个系列合并成一个系列
- return BI.map(items, function (idx, item) {
- var seriesItem = [];
- var obj = {data: [], name: ""};
- seriesItem.push(obj);
- BI.each(item, function (id, series) {
- BI.each(series.data, function (i, da) {
- obj.data.push(BI.extend({}, da, {x: series.name}));
- });
- });
- return seriesItem;
- });
- }
- return items;
-
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- chartPieType: options.chartPieType || c.NORMAL,
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- chartInnerRadius: options.chartInnerRadius || 0,
- chartTotalAngle: options.chartTotalAngle || BICst.PIE_ANGLES.TOTAL,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.PIE);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.PieChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.pie_chart", BI.PieChart);
-
-/**
- * 图表控件
- * @class BI.RadarChart
- * @extends BI.Widget
- */
-BI.RadarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.RadarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-radar-chart"
- });
- },
-
- _init: function () {
- BI.RadarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.radiusAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0,
- position: "bottom"
- }];
-
- this.angleAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE
- }];
-
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.RadarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
-
- delete config.zoom;
-
- var title = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
-
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartRadarStyle();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
-
- config.radiusAxis = this.radiusAxis;
- config.angleAxis = this.angleAxis;
- config.radiusAxis[0].formatter = self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators);
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.radiusAxis[0].formatter);
- config.radiusAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + title : title;
- config.radiusAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.chartType = "radar";
- delete config.xAxis;
- delete config.yAxis;
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.radiusAxis[0].formatter, this.config.chartFont);
-
- // 全局样式
- config.legend.style = this.config.chartFont;
- config.radiusAxis[0].title.style = config.radiusAxis[0].labelStyle = this.config.chartFont;
- config.angleAxis[0].title.style = config.angleAxis[0].labelStyle = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatChartRadarStyle () {
- switch (self.config.chartRadarType) {
- case BICst.CHART_SHAPE.POLYGON:
- config.plotOptions.shape = "polygon";
- break;
- case BICst.CHART_SHAPE.CIRCLE:
- config.plotOptions.shape = "circle";
- break;
- }
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- config.plotOptions.tooltip.formatter.valueFormat = formatter;
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartRadarType: options.chartRadarType || c.POLYGON,
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- cordon: options.cordon || [],
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.RADAR);
- });
- types.push(type);
- });
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.RadarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.radar_chart", BI.RadarChart);/**
- * 图表控件
- * @class BI.RangeAreaChart
- * @extends BI.Widget
- * 范围面积图的构造范围的两组item的必须有对应y值item1完全大于item2
- */
-BI.RangeAreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.RangeAreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-range-area-chart"
- });
- },
-
- _init: function () {
- BI.RangeAreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.RangeAreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- var title = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + title : title;
- BI.extend(config.yAxis[0], {
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- reversed: config.yAxis[0].reversed = this.config.leftYAxisReversed,
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators)
- });
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.yAxis[0].formatter);
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
- config.plotOptions.tooltip.formatter.identifier = "${CATEGORY}${VALUE}";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.yAxis[0].formatter, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- config.plotOptions.tooltip.formatter.valueFormat = formatter;
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (data) {
- var o = this.options;
- var items = [];
- BI.each(data, function (idx, item) {
- items = BI.concat(items, item);
- });
- if (BI.isEmptyArray(items)) {
- return [];
- }
- if (items.length === 1) {
- return [items];
- }
- var colors = this.config.chartColor || [];
- if (BI.isEmptyArray(colors)) {
- colors = ["#5caae4"];
- }
- var seriesMinus = [];
- BI.each(items[0].data, function (idx, item) {
- var res = items[1].data[idx].y - item.y;
- seriesMinus.push({
- x: items[1].data[idx].x,
- y: res,
- targetIds: items[1].data[idx].targetIds
- });
- });
- items[1] = {
- data: seriesMinus,
- name: items[1].name,
- stack: "stackedArea",
- fillColor: colors[0]
- };
- BI.each(items, function (idx, item) {
- if (idx === 0) {
- BI.extend(item, {
- name: items[0].name,
- fillColorOpacity: 0,
- stack: "stackedArea",
- marker: {enabled: false},
- fillColor: "#000000"
- });
- }
- });
- return [items];
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- var type = [];
- BI.each(items, function (idx, axisItems) {
- type.push(BICst.WIDGET.AREA);
- });
- if (BI.isNotEmptyArray(type)) {
- types.push(type);
- }
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.RangeAreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.range_area_chart", BI.RangeAreaChart);/**
- * 图表控件
- * @class BI.ScatterChart
- * @extends BI.Widget
- */
-BI.ScatterChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.ScatterChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-scatter-chart"
- });
- },
-
- _init: function () {
- BI.ScatterChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.ScatterChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
-
- _formatConfig: function (config, items) {
- var self = this;
- delete config.zoom;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- config.plotOptions.marker = {symbol: "circle", radius: 4.5, enabled: true};
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.dataLabels.formatter.identifier = "${X}${Y}";
-
- config.yAxis = this.yAxis;
- config.xAxis = this.xAxis;
-
- config.yAxis[0].formatter = self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators);
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel);
- config.yAxis[0].title.text = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + config.yAxis[0].title.text : config.yAxis[0].title.text;
- config.yAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].maxWidth = "40%";
-
- config.xAxis[0].formatter = self.formatTickInXYaxis(this.config.xAxisStyle, this.config.xAxisNumberLevel, this.config.rightNumSeparators);
- formatNumberLevelInXaxis(this.config.xAxisNumberLevel);
- config.xAxis[0].title.text = getXYAxisUnit(this.config.xAxisNumberLevel, this.constants.X_AXIS);
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle + config.xAxis[0].title.text : config.xAxis[0].title.text;
- config.xAxis[0].title.align = "center";
- config.xAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.xAxis[0].maxHeight = "40%";
- config.chartType = "scatter";
-
- if (BI.isNotEmptyArray(this.config.tooltip)) {
- config.plotOptions.tooltip.formatter = function () {
- var y = self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)(this.y);
- var x = self.formatTickInXYaxis(self.config.xAxisStyle, self.config.xAxisNumberLevel, self.config.rightNumSeparators)(this.x);
- return this.seriesName + "(X)" + self.config.tooltip[0]
- + ":" + x + "
(Y)" + self.config.tooltip[1] + ":" + y + "
";
- };
- }
-
- if (config.plotOptions.dataLabels.enabled === true) {
- BI.each(items, function (idx, item) {
- item.dataLabels = {
- style: self.config.chartFont,
- align: "outside",
- autoAdjust: true,
- enabled: true,
- formatter: {
- identifier: "${X}${Y}",
- XFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- },
- YFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- }
- }
- };
- item.dataLabels.formatter.XFormat = config.xAxis[0].formatter;
- item.dataLabels.formatter.YFormat = config.yAxis[0].formatter;
- });
- }
-
- // 全局样式图表文字
- config.legend.style = this.config.chartFont;
- config.yAxis[0].title.style = config.yAxis[0].labelStyle = this.config.chartFont;
- config.xAxis[0].title.style = config.xAxis[0].labelStyle = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatNumberLevelInXaxis (type) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.x = self.formatXYDataWithMagnify(da.x, magnify);
- });
- });
- }
-
- function formatNumberLevelInYaxis (type) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- });
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- cordon: options.cordon || [],
- tooltip: options.tooltip || [],
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.SCATTER);
- });
- types.push(type);
- });
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.ScatterChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.scatter_chart", BI.ScatterChart);
\ No newline at end of file
diff --git a/dist/core.js b/dist/core.js
index 6ebf93bb3..28d26f587 100644
--- a/dist/core.js
+++ b/dist/core.js
@@ -20929,7 +20929,6 @@ $(function () {
/** Adds the number of days array to the Date object. */
Date._MD = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
});
-
/** Constants used for time computations */
Date.SECOND = 1000;
Date.MINUTE = 60 * Date.SECOND;
@@ -20955,7 +20954,7 @@ Date.prototype.getMonthDays = function (month) {
return 29;
}
return Date._MD[month];
-
+
};
/**
@@ -21415,7 +21414,7 @@ Date.getDate = function () {
return new Date(utc + Date.timeZone);// + Pool.timeZone.offset);
}
return dt;
-
+
};
Date.getTime = function () {
@@ -21463,7 +21462,7 @@ Date.getTime = function () {
return dt.getTime() - Date.timeZone - dt.getTimezoneOffset() * 60000;
}
return dt.getTime();
-
+
};
/*
* 给jQuery.Event对象添加的工具方法
diff --git a/dist/fineui.js b/dist/fineui.js
index 237e15b7d..753d5234e 100644
--- a/dist/fineui.js
+++ b/dist/fineui.js
@@ -21130,7 +21130,6 @@ $(function () {
/** Adds the number of days array to the Date object. */
Date._MD = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
});
-
/** Constants used for time computations */
Date.SECOND = 1000;
Date.MINUTE = 60 * Date.SECOND;
@@ -21156,7 +21155,7 @@ Date.prototype.getMonthDays = function (month) {
return 29;
}
return Date._MD[month];
-
+
};
/**
@@ -21616,7 +21615,7 @@ Date.getDate = function () {
return new Date(utc + Date.timeZone);// + Pool.timeZone.offset);
}
return dt;
-
+
};
Date.getTime = function () {
@@ -21664,7 +21663,7 @@ Date.getTime = function () {
return dt.getTime() - Date.timeZone - dt.getTimezoneOffset() * 60000;
}
return dt.getTime();
-
+
};
/*
* 给jQuery.Event对象添加的工具方法
diff --git a/dist/index.html b/dist/index.html
index 3a66e0ed1..ab43f3ac9 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -37,11 +37,6 @@
-
-
-
-
-
diff --git a/src/addons/chart/chart.combine.js b/src/addons/chart/chart.combine.js
deleted file mode 100644
index 11cb7c3c1..000000000
--- a/src/addons/chart/chart.combine.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * 图表控件
- * @class BI.CombineChart
- * @extends BI.Widget
- */
-BI.CombineChart = BI.inherit(BI.Widget, {
-
- _defaultConfig: function () {
- return BI.extend(BI.CombineChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-combine-chart",
- items: [],
- xAxis: [{type: "category"}],
- yAxis: [{type: "value"}],
- types: [[], []],
- popupItemsGetter: BI.emptyFn,
- formatConfig: BI.emptyFn
- });
- },
-
- _init: function () {
- BI.CombineChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- // 图可配置属性
- this.CombineChart = BI.createWidget({
- type: "bi.chart",
- element: this.element
- });
- this.CombineChart.on(BI.Chart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.CombineChart.EVENT_CHANGE, obj);
- });
-
- if (BI.isNotEmptyArray(o.items)) {
- this.populate(o.items);
- }
- },
-
- _formatItems: function (items) {
- var result = [], self = this, o = this.options;
- var yAxisIndex = 0;
- BI.each(items, function (i, belongAxisItems) {
- var combineItems = BI.ChartCombineFormatItemFactory.combineItems(o.types[i], belongAxisItems);
- BI.each(combineItems, function (j, axisItems) {
- if (BI.isArray(axisItems)) {
- result = BI.concat(result, axisItems);
- } else {
- result.push(BI.extend(axisItems, {yAxis: yAxisIndex}));
- }
- });
- if (BI.isNotEmptyArray(combineItems)) {
- yAxisIndex++;
- }
- });
- var config = BI.ChartCombineFormatItemFactory.combineConfig();
- config.plotOptions.click = function () {
- var data = BI.clone(this.options);
- data.toolTipRect = this.getTooltipRect();
- var items = o.popupItemsGetter(data);
- if (items && items.length === 1) {
- self.fireEvent(BI.CombineChart.EVENT_ITEM_CLICK, BI.extend({}, items[0], data));
- }
- if (items && items.length > 1) {
- self._createPopup(items, data.toolTipRect, data);
- }
- self.fireEvent(BI.CombineChart.EVENT_CHANGE, data);
- };
- return [result, config];
- },
-
- _createPopup: function (items, rect, opt) {
- var self = this;
- if (this.combo) {
- this.combo.destroy();
- }
- this._doDestroy = true;
- this.combo = BI.createWidget({
- type: "bi.combo",
- direction: "bottom",
- isNeedAdjustWidth: false,
- popup: {
- el: BI.createWidget({
- type: "bi.vertical",
- cls: "bi-linkage-list",
- items: BI.map(items, function (i, item) {
- return {
- el: BI.extend({
- type: "bi.text_button",
- cls: "bi-linkage-list-item",
- height: 30,
- handler: function () {
- self.fireEvent(BI.CombineChart.EVENT_ITEM_CLICK, BI.extend({}, item, opt));
- self.combo.destroy();
- },
- hgap: 10
- }, item)
- };
- })
- })
- },
- width: 0
- });
- BI.createWidget({
- type: "bi.absolute",
- element: this.element,
- items: [{
- el: this.combo,
- top: rect.y,
- left: rect.x
- }]
- });
- this.combo.element.hover(function () {
- self._doDestroy = false;
- }, function () {
- self._doDestroy = true;
- self._debounce2Destroy();
- });
- this._debounce2Destroy = BI.debounce(BI.bind(destroyCombo, this.combo), 3000);
- this.combo.showView();
- this._debounce2Destroy();
-
- function destroyCombo () {
- if (self._doDestroy) {
- this.destroy();
- }
- }
- },
-
- setTypes: function (types) {
- this.options.types = types || [[]];
- },
-
- populate: function (items, types) {
- var o = this.options;
- if (BI.isNotNull(types)) {
- this.setTypes(types);
- }
- var opts = this._formatItems(items);
- BI.extend(opts[1], {
- xAxis: o.xAxis,
- yAxis: o.yAxis
- });
- var result = o.formatConfig(opts[1], opts[0]) || opts;
- this.CombineChart.populate(result[0], result[1]);
- },
-
- resize: function () {
- this.CombineChart.resize();
- },
-
- magnify: function () {
- this.CombineChart.magnify();
- }
-});
-BI.CombineChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.CombineChart.EVENT_ITEM_CLICK = "EVENT_ITEM_CLICK";
-BI.shortcut("bi.combine_chart", BI.CombineChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart.js b/src/addons/chart/chart.js
deleted file mode 100644
index 37d8dfbb7..000000000
--- a/src/addons/chart/chart.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * 图表控件
- * @class BI.Chart
- * @extends BI.Widget
- */
-BI.Chart = BI.inherit(BI.Pane, {
-
- _defaultConfig: function () {
- return BI.extend(BI.Chart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-chart"
- });
- },
-
- _init: function () {
- BI.Chart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- this.isSetOptions = false;
- this.vanCharts = VanCharts.init(self.element[0]);
-
- this._resizer = BI.debounce(function () {
- if (self.element.width() > 0 && self.element.height() > 0) {
- self.vanCharts.resize();
- }
- }, 30);
- BI.ResizeDetector.addResizeListener(this, function (e) {
- self._resizer();
- });
- },
-
- resize: function () {
- if (this.isSetOptions === true) {
- this._resizer();
- }
- },
-
- magnify: function () {
- this.vanCharts.refreshRestore();
- },
-
- populate: function (items, options) {
- var self = this, o = this.options;
- o.items = items;
- this.config = options || {};
- this.config.series = o.items;
-
- var setOptions = function () {
- self.vanCharts.setOptions(self.config);
- self.isSetOptions = true;
- };
- BI.nextTick(setOptions);
- }
-});
-BI.Chart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.chart", BI.Chart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.abstract.js b/src/addons/chart/chart/chart.abstract.js
deleted file mode 100644
index 3ec61fec1..000000000
--- a/src/addons/chart/chart/chart.abstract.js
+++ /dev/null
@@ -1,286 +0,0 @@
-/**
- * 图表控件
- * @class BI.AbstractChart
- * @extends BI.Widget
- */
-BI.AbstractChart = BI.inherit(BI.Widget, {
-
- constants: {
- LEFT_AXIS: 0,
- RIGHT_AXIS: 1,
- RIGHT_AXIS_SECOND: 2,
- X_AXIS: 3,
- ROTATION: -90,
- NORMAL: 1,
- LEGEND_BOTTOM: 4,
- ZERO2POINT: 2,
- ONE2POINT: 3,
- TWO2POINT: 4,
- MINLIMIT: 1e-5,
- LEGEND_HEIGHT: 80,
- LEGEND_WIDTH: "30.0%",
- FIX_COUNT: 6,
- STYLE_NORMAL: 21,
- NO_PROJECT: 16,
- DASHBOARD_AXIS: 4,
- ONE_POINTER: 1,
- MULTI_POINTER: 2,
- HALF_DASHBOARD: 9,
- PERCENT_DASHBOARD: 10,
- PERCENT_SCALE_SLOT: 11,
- VERTICAL_TUBE: 12,
- HORIZONTAL_TUBE: 13,
- LNG_FIRST: 3,
- LAT_FIRST: 4,
- themeColor: "#65bce7",
- autoCustom: 1,
- POLYGON: 7,
- AUTO_CUSTOM: 1,
- AUTO: 1,
- NOT_SHOW: 2,
- LINE_WIDTH: 1,
- NUM_SEPARATORS: false,
- FONT_STYLE: {
- fontFamily: "inherit",
- color: "inherit",
- fontSize: "12px"
- }
- },
-
- _defaultConfig: function () {
- return BI.extend(BI.AbstractChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-abstract-chart",
- popupItemsGetter: BI.emptyFn
- });
- },
-
- _init: function () {
- BI.AbstractChart.superclass._init.apply(this, arguments);
- },
-
- /**
- * 格式化坐标轴数量级及其所影响的系列的各项属性
- * @param config 配置信息
- * @param items 系列数据
- * @param type 坐标轴数量级
- * @param position 坐标轴位置
- * @param formatter 系列tooltip格式化内容
- */
- formatNumberLevelInYaxis: function (config, items, type, position, formatter, isPercentChart) {
- var magnify = this.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- if (BI.isNotNull(da.y) && !BI.isNumber(da.y)) {
- da.y = BI.parseFloat(da.y);
- }
- if (BI.isNotNull(da.y)) {
- da.y = BI.contentFormat(BI.parseFloat(da.y.div(magnify).toFixed(4)), "#.####;-#.####");
- }
- }
- });
- if (position === item.yAxis) {
- item.tooltip = BI.deepClone(config.plotOptions.tooltip);
- item.tooltip.formatter.valueFormat = formatter;
- if(isPercentChart) {
- item.tooltip.formatter.percentFormat = formatter;
- item.tooltip.formatter.identifier = "${CATEGORY}${SERIES}${PERCENT}";
- }
- }
- });
- },
-
- formatNumberLevelInXaxis: function (items, type) {
- var magnify = this.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (BI.isNotNull(da.x) && !BI.isNumber(da.x)) {
- da.x = BI.parseFloat(da.x);
- }
- if (BI.isNotNull(da.x)) {
- da.x = BI.contentFormat(BI.parseFloat(da.x.div(magnify).toFixed(4)), "#.####;-#.####");
- }
- });
- });
- },
-
- formatXYDataWithMagnify: function (number, magnify) {
- if (BI.isNull(number)) {
- return null;
- }
- if (!BI.isNumber(number)) {
- number = BI.parseFloat(number);
- }
- return BI.contentFormat(BI.parseFloat(number.div(magnify).toFixed(4)), "#.####;-#.####");
- },
-
- calcMagnify: function (type) {
- var magnify = 1;
- switch (type) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- case BICst.TARGET_STYLE.NUM_LEVEL.PERCENT:
- magnify = 1;
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- magnify = 10000;
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- magnify = 1000000;
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- magnify = 100000000;
- break;
- }
- return magnify;
- },
-
- formatChartLegend: function (config, chartLegend) {
- switch (chartLegend) {
- case BICst.CHART_LEGENDS.BOTTOM:
- config.legend.enabled = true;
- config.legend.position = "bottom";
- config.legend.maxHeight = this.constants.LEGEND_HEIGHT;
- break;
- case BICst.CHART_LEGENDS.RIGHT:
- config.legend.enabled = true;
- config.legend.position = "right";
- config.legend.maxWidth = this.constants.LEGEND_WIDTH;
- break;
- case BICst.CHART_LEGENDS.NOT_SHOW:
- default:
- config.legend.enabled = false;
- break;
- }
- },
-
- getXYAxisUnit: function (numberLevelType, axis_unit) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- return (BI.isEmptyString(unit) && BI.isEmptyString(axis_unit)) ? unit : "(" + unit + axis_unit + ")";
- },
-
- formatTickInXYaxis: function (type, number_level, separators, isCompareBar) {
- var formatter = "#.##";
- switch (type) {
- case this.constants.NORMAL:
- formatter = "#.##";
- if (separators) {
- formatter = "#,###.##";
- }
- break;
- case this.constants.ZERO2POINT:
- formatter = "#0";
- if (separators) {
- formatter = "#,###";
- }
- break;
- case this.constants.ONE2POINT:
- formatter = "#0.0";
- if (separators) {
- formatter = "#,###.0";
- }
- break;
- case this.constants.TWO2POINT:
- formatter = "#0.00";
- if (separators) {
- formatter = "#,###.00";
- }
- break;
- }
- if (number_level === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) {
- formatter += "%";
- }
- formatter += ";-" + formatter;
- if(isCompareBar) {
- return function () {
- arguments[0] = arguments[0] > 0 ? arguments[0] : (-1) * arguments[0];
- return BI.contentFormat(arguments[0], formatter);
- };
- }
- return function () {
- return BI.contentFormat(arguments[0], formatter);
- };
- },
-
- formatDataLabel: function (state, items, config, style) {
- var self = this;
- if (state === true) {
- BI.each(items, function (idx, item) {
- item.dataLabels = {
- align: "outside",
- autoAdjust: true,
- style: style,
- enabled: true,
- formatter: {
- identifier: "${VALUE}",
- valueFormat: config.yAxis[item.yAxis].formatter
- }
- };
- });
- }
- },
-
- formatDataLabelForAxis: function (state, items, format, style, isPercentChart) {
- var self = this;
- if (state === true) {
- BI.each(items, function (idx, item) {
- item.dataLabels = {
- align: "outside",
- autoAdjust: true,
- style: style,
- enabled: true,
- formatter: {
- identifier: "${VALUE}",
- valueFormat: format
- }
- };
- if(isPercentChart) {
- item.dataLabels.formatter.identifier = "${PERCENT}";
- item.dataLabels.formatter.percentFormat = format;
- }
- });
- }
- },
-
- setFontStyle: function (fontStyle, config) {
- if (config.dataSheet) {
- config.dataSheet.style = fontStyle;
- }
- config.xAxis[0].title.style = fontStyle;
- config.xAxis[0].labelStyle = fontStyle;
- config.legend.style = fontStyle;
- BI.each(config.yAxis, function (idx, axis) {
- axis.labelStyle = fontStyle;
- axis.title.style = fontStyle;
- });
- },
-
- _formatItems: function (items) {
- return items;
- },
-
- populate: function (items, options) {
- },
-
- resize: function () {
- },
-
- magnify: function () {
- }
-});
-
-BI.AbstractChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.AbstractChart.EVENT_ITEM_CLICK = "EVENT_ITEM_CLICK";
diff --git a/src/addons/chart/chart/chart.accumulatearea.js b/src/addons/chart/chart/chart.accumulatearea.js
deleted file mode 100644
index d0a9318cc..000000000
--- a/src/addons/chart/chart/chart.accumulatearea.js
+++ /dev/null
@@ -1,277 +0,0 @@
-/**
- * 图表控件
- * @class BI.AccumulateAreaChart
- * @extends BI.Widget
- */
-BI.AccumulateAreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AccumulateAreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-accumulate-area-chart"
- });
- },
-
- _init: function () {
- BI.AccumulateAreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
-
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE
- }];
- this.yAxis = [];
-
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AccumulateAreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
-
- config.colors = this.config.chartColor;
- config.style = formatChartStyle(this.config.chartStyle);
- formatChartLineStyle(this.config.chartLineType);
- formatCordon(this.config.cordon);
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var unit = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- unit = self.getXYAxisUnit(self.config.leftYAxisNumberLevel, self.config.leftYAxisUnit);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + unit : unit;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter, self.config.numSeparators);
-
- break;
- case self.constants.RIGHT_AXIS:
- unit = self.getXYAxisUnit(self.config.rightYAxisNumberLevel, self.config.rightYAxisUnit);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + unit : unit;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter, self.config.rightNumSeparators);
- break;
- }
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle (v) {
- switch (v) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatChartLineStyle (v) {
- switch (v) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.curve = false;
- config.plotOptions.step = true;
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.curve = true;
- config.plotOptions.step = false;
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.curve = false;
- config.plotOptions.step = false;
- break;
- }
- }
-
- function formatCordon (cordon) {
- BI.each(cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i});
- });
- });
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- chartLineType: options.chartLineType || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
- this.yAxis = [];
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AREA);
- });
- types.push(type);
- });
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AccumulateAreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.accumulate_area_chart", BI.AccumulateAreaChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.accumulateaxis.js b/src/addons/chart/chart/chart.accumulateaxis.js
deleted file mode 100644
index 4c1e61ff6..000000000
--- a/src/addons/chart/chart/chart.accumulateaxis.js
+++ /dev/null
@@ -1,280 +0,0 @@
-/**
- * 图表控件
- * @class BI.AccumulateAxisChart
- * @extends BI.Widget
- */
-BI.AccumulateAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AccumulateAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-accumulate-axis-chart"
- });
- },
-
- _init: function () {
- BI.AccumulateAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE
- }];
- this.yAxis = [];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AccumulateAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- axis.title.text = getTitleText(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS, self.config.showLeftYAxisTitle, self.config.leftYAxisTitle);
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- axis.title.text = getTitleText(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS, self.config.showRightYAxisTitle, self.config.rightYAxisTitle);
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- });
-
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- config.xAxis[0].title.align = "center";
- BI.extend(config.xAxis[0], {
- lineWidth: self.config.lineWidth,
- enableTick: self.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "column";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function getTitleText (numberLevelType, position, show, title) {
- var unit = "";
-
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
-
- unit = unit === "" ? unit : "(" + unit + ")";
-
- return show === true ? title + unit : unit;
- }
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i});
- });
- });
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- this.yAxis = [];
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AXIS);
- });
- types.push(type);
- });
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AccumulateAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.accumulate_axis_chart", BI.AccumulateAxisChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.accumulatebar.js b/src/addons/chart/chart/chart.accumulatebar.js
deleted file mode 100644
index 54480e057..000000000
--- a/src/addons/chart/chart/chart.accumulatebar.js
+++ /dev/null
@@ -1,246 +0,0 @@
-/**
- * 图表控件
- * @class BI.AccumulateBarChart
- * @extends BI.Widget
- */
-BI.AccumulateBarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AccumulateBarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-accumulate-bar-chart"
- });
- },
-
- _init: function () {
- BI.AccumulateBarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- gridLineWidth: 0,
- position: "left"
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AccumulateBarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- var unit = getXYAxisUnit(this.config.xAxisNumberLevel, this.constants.LEFT_AXIS);
- var xTitle = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.X_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle + unit : unit;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- BI.extend(config.yAxis[0], {
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- labelRotation: this.config.textDirection,
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- maxWidth: "40%"
- });
-
- self.formatNumberLevelInXaxis(items, this.config.leftYAxisNumberLevel);
- config.xAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + xTitle : xTitle;
- config.xAxis[0].title.align = "center";
- BI.extend(config.xAxis[0], {
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators),
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- lineWidth: this.config.lineWidth,
- enableMinorTick: this.config.enableMinorTick
- });
- config.chartType = "bar";
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.xAxis[0].formatter, this.config.chartFont);
-
- config.plotOptions.tooltip.formatter.valueFormat = config.xAxis[0].formatter;
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- BI.each(items, function (idx, item) {
- var stackId = BI.UUID();
- BI.each(item, function (id, it) {
- it.stack = stackId;
- BI.each(it.data, function (i, t) {
- var tmp = t.x;
- t.x = t.y;
- t.y = tmp;
- });
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- minimalist_model: options.minimalist_model || false,
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.BAR);
- });
- types.push(type);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AccumulateBarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.accumulate_bar_chart", BI.AccumulateBarChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.accumulateradar.js b/src/addons/chart/chart/chart.accumulateradar.js
deleted file mode 100644
index 19ab625e8..000000000
--- a/src/addons/chart/chart/chart.accumulateradar.js
+++ /dev/null
@@ -1,194 +0,0 @@
-/**
- * 图表控件
- * @class BI.AccumulateRadarChart
- * @extends BI.Widget
- */
-BI.AccumulateRadarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AccumulateRadarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-accumulate-radar-chart"
- });
- },
-
- _init: function () {
- BI.AccumulateRadarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.radiusAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0,
- position: "bottom"
- }];
-
- this.angleAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE
- }];
-
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AccumulateRadarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i});
- });
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
-
- delete config.zoom;
-
- var title = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartRadarStyle();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
-
- config.radiusAxis = this.radiusAxis;
- config.angleAxis = this.angleAxis;
- config.radiusAxis[0].formatter = self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators);
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.radiusAxis[0].formatter);
- config.radiusAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + title : title;
- config.radiusAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.chartType = "radar";
- config.plotOptions.columnType = true;
- delete config.xAxis;
- delete config.yAxis;
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.radiusAxis[0].formatter, this.config.chartFont);
-
- // 全局样式的图表文字
- config.radiusAxis[0].labelStyle = config.radiusAxis[0].title.style = this.config.chartFont;
- config.angleAxis[0].labelStyle = config.angleAxis[0].title.style = this.config.chartFont;
- config.legend.style = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatChartRadarStyle () {
- switch (self.config.chartRadarType) {
- case BICst.CHART_SHAPE.POLYGON:
- config.plotOptions.shape = "polygon";
- break;
- case BICst.CHART_SHAPE.CIRCLE:
- config.plotOptions.shape = "circle";
- break;
- }
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- config.plotOptions.tooltip.formatter.valueFormat = formatter;
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartRadarType: options.chartRadarType || c.NORMAL,
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- cordon: options.cordon || [],
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.RADAR);
- });
- types.push(type);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AccumulateRadarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.accumulate_radar_chart", BI.AccumulateRadarChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.area.js b/src/addons/chart/chart/chart.area.js
deleted file mode 100644
index 31a0720fa..000000000
--- a/src/addons/chart/chart/chart.area.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/**
- * 图表控件
- * @class BI.AreaChart
- * @extends BI.Widget
- */
-BI.AreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-area-chart"
- });
- },
-
- _init: function () {
- BI.AreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartLineStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators),
- gridLineWidth: self.config.showGridLine === true ? 1 : 0
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartLineStyle () {
- switch (self.config.chartLineType) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.curve = false;
- config.plotOptions.step = true;
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.curve = true;
- config.plotOptions.step = false;
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.curve = false;
- config.plotOptions.step = false;
- break;
- }
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- rightYAxisSecondTitle: options.rightYAxisSecondTitle || "",
- chartLineType: options.chartLineType || c.NORMAL,
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- rightYAxisSecondStyle: options.rightYAxisSecondStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- showRightYAxisSecondTitle: options.showRightYAxisSecondTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- rightYAxisSecondReversed: options.rightYAxisSecondReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- rightYAxisSecondNumberLevel: options.rightYAxisSecondNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- rightYAxisSecondUnit: options.rightYAxisSecondUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AREA);
- });
- types.push(type);
- });
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.area_chart", BI.AreaChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.axis.js b/src/addons/chart/chart/chart.axis.js
deleted file mode 100644
index 20f029933..000000000
--- a/src/addons/chart/chart/chart.axis.js
+++ /dev/null
@@ -1,276 +0,0 @@
-/**
- * 图表控件 柱状
- * @class BI.AxisChart
- * @extends BI.Widget
- * leftYxis 左值轴属性
- * rightYxis 右值轴属性
- * xAxis 分类轴属性
- */
-BI.AxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.AxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-axis-chart"
- });
- },
-
- _init: function () {
- BI.AxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.AxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title;
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTIck: self.config.enableMinorTick,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators),
- gridLineWidth: self.config.showGridLine === true ? 1 : 0
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- var lineItem = [];
- var otherItem = [];
- BI.each(items, function (idx, item) {
- if (item.type === "line") {
- lineItem.push(item);
- } else {
- otherItem.push(item);
- }
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [BI.concat(otherItem, lineItem), config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options, types) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: true
- };
- this.options.items = items;
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.AxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.axis_chart", BI.AxisChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.bar.js b/src/addons/chart/chart/chart.bar.js
deleted file mode 100644
index 372c2c67e..000000000
--- a/src/addons/chart/chart/chart.bar.js
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
- * 图表控件
- * @class BI.BarChart
- * @extends BI.Widget
- */
-BI.BarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.BarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-bar-chart"
- });
- },
-
- _init: function () {
- BI.BarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- gridLineWidth: 0,
- position: "left"
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- var tmp = obj.x;
- obj.x = obj.y;
- obj.y = tmp;
- self.fireEvent(BI.BarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
-
- // 分类轴
- config.yAxis = this.yAxis;
- config.yAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- BI.extend(config.yAxis[0], {
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- labelRotation: this.config.textDirection,
- enableTick: this.config.enableTick,
- lineWidth: this.config.lineWidth,
- maxWidth: "40%"
- });
-
- // 值轴
- self.formatNumberLevelInXaxis(items, this.config.leftYAxisNumberLevel);
- config.xAxis[0].title.text = getXAxisTitle(this.config.leftYAxisNumberLevel, this.constants.X_AXIS);
- config.xAxis[0].title.align = "center";
- BI.extend(config.xAxis[0], {
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators),
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- enableTick: this.config.enableTick,
- showLabel: this.config.showLabel,
- lineWidth: this.config.lineWidth,
- enableMinorTick: this.config.enableMinorTick
- });
- config.chartType = "bar";
-
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.xAxis[0].formatter, this.config.chartFont);
-
- config.plotOptions.tooltip.formatter.valueFormat = config.xAxis[0].formatter;
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXAxisTitle (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- unit = unit === "" ? unit : "(" + unit + ")";
-
- return self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + unit : unit;
- }
- },
-
- _formatItems: function (items) {
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- BI.each(it.data, function (i, t) {
- var tmp = t.x;
- t.x = t.y;
- t.y = tmp;
- });
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.BAR);
- });
- types.push(type);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.BarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.bar_chart", BI.BarChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.bubble.js b/src/addons/chart/chart/chart.bubble.js
deleted file mode 100644
index 8c045e010..000000000
--- a/src/addons/chart/chart/chart.bubble.js
+++ /dev/null
@@ -1,283 +0,0 @@
-/**
- * 图表控件
- * @class BI.BubbleChart
- * @extends BI.Widget
- */
-BI.BubbleChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.BubbleChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-bubble-chart"
- });
- },
-
- _init: function () {
- BI.BubbleChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.BubbleChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- delete config.zoom;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.dataLabels.formatter.identifier = "${X}${Y}${SIZE}";
- config.plotOptions.shadow = this.config.bubbleStyle !== this.constants.NO_PROJECT;
- config.yAxis = this.yAxis;
-
- config.yAxis[0].formatter = self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators);
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.yAxis[0].title.text = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + config.yAxis[0].title.text : config.yAxis[0].title.text;
- config.yAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.yAxis[0].lineWidth = 1;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].maxWidth = "40%";
-
- config.xAxis[0].formatter = self.formatTickInXYaxis(this.config.xAxisStyle, this.config.xAxisNumberLevel, this.config.rightNumSeparators);
- self.formatNumberLevelInXaxis(items, this.config.xAxisNumberLevel);
- config.xAxis[0].title.text = getXYAxisUnit(this.config.xAxisNumberLevel, this.constants.X_AXIS);
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle + config.xAxis[0].title.text : config.xAxis[0].title.text;
- config.xAxis[0].title.align = "center";
- config.xAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.xAxis[0].maxHeith = "40%";
- config.chartType = "bubble";
-
- if (BI.isNotEmptyArray(this.config.tooltip)) {
- config.plotOptions.bubble.tooltip = {
- useHtml: true,
- style: {
- color: "RGB(184, 184, 184)"
- },
- formatter: function () {
- var y = self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)(this.y);
- var x = self.formatTickInXYaxis(self.config.xAxisStyle, self.config.xAxisNumberLevel, self.config.rightNumSeparators)(this.x);
- return this.seriesName + "(X)" + self.config.tooltip[0] + ":" + x + "
(Y)" + self.config.tooltip[1]
- + ":" + y + "
(" + BI.i18nText("BI-Size") + ")" + self.config.tooltip[2] + ":" + this.size + "
";
- }
- };
- }
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- if (config.plotOptions.dataLabels.enabled === true) {
- BI.each(items, function (idx, item) {
- item.dataLabels = {
- style: self.config.chartFont,
- align: "outside",
- autoAdjust: true,
- enabled: true,
- formatter: {
- identifier: "${X}${Y}${SIZE}",
- XFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- },
- YFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- },
- sizeFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- }
- }
- };
- item.dataLabels.formatter.XFormat = config.xAxis[0].formatter;
- item.dataLabels.formatter.YFormat = config.yAxis[0].formatter;
- });
- }
-
- // 全局样式图表文字
- config.yAxis[0].title.style = config.yAxis[0].labelStyle = this.config.chartFont;
- config.xAxis[0].title.style = config.xAxis[0].labelStyle = this.config.chartFont;
- config.legend.style = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatNumberLevelInYaxis (type, position) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- if (type === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) {
- // config.plotOptions.tooltip.formatter.valueFormat = "function(){return window.FR ? FR.contentFormat(arguments[0], '#0%') : arguments[0]}";
- }
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- BI.each(it.data, function (i, da) {
- var data = da.size;
- da.size = BI.contentFormat(data, "#.##;-#.##");
- });
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- cordon: options.cordon || [],
- tooltip: options.tooltip || [],
- bubbleStyle: options.bubbleStyle || c.NO_PROJECT,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.BUBBLE);
- });
- types.push(type);
- });
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.BubbleChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.bubble_chart", BI.BubbleChart);
diff --git a/src/addons/chart/chart/chart.comparearea.js b/src/addons/chart/chart/chart.comparearea.js
deleted file mode 100644
index 55dbc4dec..000000000
--- a/src/addons/chart/chart/chart.comparearea.js
+++ /dev/null
@@ -1,373 +0,0 @@
-/**
- * 图表控件
- * @class BI.CompareAreaChart
- * @extends BI.Widget
- */
-BI.CompareAreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.CompareAreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-compare-area-chart"
- });
- },
-
- _init: function () {
- BI.CompareAreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.CompareAreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartLineStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.rotation = self.constants.ROTATION;
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- BI.extend(axis, {
- reversed: false,
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- formatNumberLevelInYaxis(self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.rotation = self.constants.ROTATION;
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- BI.extend(axis, {
- reversed: true,
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- formatNumberLevelInYaxis(self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- var res = _calculateValueNiceDomain(0, self.maxes[idx]);
- axis.max = res[1].mul(2);
- axis.min = res[0].mul(2);
- axis.tickInterval = BI.parseFloat((BI.parseFloat(axis.max).sub(BI.parseFloat(axis.min)))).div(5);
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function _calculateValueNiceDomain (minValue, maxValue) {
-
- minValue = Math.min(0, minValue);
-
- var tickInterval = _linearTickInterval(minValue, maxValue);
-
- return _linearNiceDomain(minValue, maxValue, tickInterval);
- }
-
- function _linearTickInterval (minValue, maxValue, m) {
-
- m = m || 5;
- var span = maxValue - minValue;
- var step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10));
- var err = m / span * step;
-
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-
- return step;
- }
-
- function _linearNiceDomain (minValue, maxValue, tickInterval) {
-
- minValue = VanUtils.accMul(Math.floor(minValue / tickInterval), tickInterval);
-
- maxValue = VanUtils.accMul(Math.ceil(maxValue / tickInterval), tickInterval);
-
- return [minValue, maxValue];
- }
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartLineStyle () {
- switch (self.config.chartLineType) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.area = {
- curve: false,
- step: true
- };
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.area = {
- curve: true,
- step: false
- };
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.area = {
- curve: false,
- step: false
- };
- break;
- }
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- var max = null;
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- if ((BI.isNull(max) || BI.parseFloat(da.y) > BI.parseFloat(max))) {
- max = da.y;
- }
- }
- });
- if (position === item.yAxis) {
- item.tooltip = BI.deepClone(config.plotOptions.tooltip);
- item.tooltip.formatter.valueFormat = formatter;
- }
- if (BI.isNotNull(max)) {
- self.maxes.push(max);
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- var self = this;
- this.maxes = [];
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- if (idx > 0) {
- BI.extend(it, {reversed: true, xAxis: 0});
- } else {
- BI.extend(it, {reversed: false, xAxis: 1});
- }
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- chartLineType: options.chartLineType || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AREA);
- });
- types.push(type);
- });
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.CompareAreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.compare_area_chart", BI.CompareAreaChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.compareaxis.js b/src/addons/chart/chart/chart.compareaxis.js
deleted file mode 100644
index 5ea95826d..000000000
--- a/src/addons/chart/chart/chart.compareaxis.js
+++ /dev/null
@@ -1,381 +0,0 @@
-/**
- * 图表控件
- * @class BI.CompareAxisChart
- * @extends BI.Widget
- */
-BI.CompareAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.CompareAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-compare-axis-chart"
- });
- },
-
- _init: function () {
- BI.CompareAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }, {
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "top",
- gridLineWidth: 0,
- type: "category",
- showLabel: false
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.CompareAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartLineStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if(this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var unit = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- unit = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.rotation = self.constants.ROTATION;
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + unit : unit;
- BI.extend(axis, {
- reversed: false,
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- formatNumberLevelInYaxis(self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- unit = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.rotation = self.constants.ROTATION;
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + unit : unit;
- BI.extend(axis, {
- reversed: true,
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- formatNumberLevelInYaxis(self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- var res = _calculateValueNiceDomain(0, self.maxes[idx]);
- axis.max = res[1].mul(2);
- axis.min = res[0].mul(2);
- axis.tickInterval = BI.parseFloat((BI.parseFloat(axis.max).sub(BI.parseFloat(axis.min)))).div(5);
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- BI.extend(config.xAxis[1], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if(idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if(idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartLineStyle () {
- switch (self.config.chartLineType) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.curve = false;
- config.plotOptions.step = true;
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.curve = true;
- config.plotOptions.step = false;
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.curve = false;
- config.plotOptions.step = false;
- break;
- }
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- var max = null;
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- if((BI.isNull(max) || BI.parseFloat(da.y) > BI.parseFloat(max))) {
- max = da.y;
- }
- }
- });
- if(position === item.yAxis) {
- item.tooltip = BI.deepClone(config.plotOptions.tooltip);
- item.tooltip.formatter.valueFormat = formatter;
- }
- if(BI.isNotNull(max)) {
- self.maxes.push(max);
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if(position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if(position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if(position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
-
- function _calculateValueNiceDomain (minValue, maxValue) {
-
- minValue = Math.min(0, minValue);
-
- var tickInterval = _linearTickInterval(minValue, maxValue);
-
- return _linearNiceDomain(minValue, maxValue, tickInterval);
- }
-
- function _linearTickInterval (minValue, maxValue, m) {
-
- m = m || 5;
- var span = maxValue - minValue;
- var step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10));
- var err = m / span * step;
-
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-
- return step;
- }
-
- function _linearNiceDomain (minValue, maxValue, tickInterval) {
-
- minValue = VanUtils.accMul(Math.floor(minValue / tickInterval), tickInterval);
-
- maxValue = VanUtils.accMul(Math.ceil(maxValue / tickInterval), tickInterval);
-
- return [minValue, maxValue];
- }
- },
-
- _formatItems: function (items) {
- var self = this;
- this.maxes = [];
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- if(idx > 0) {
- BI.extend(it, {reversed: true, xAxis: 1});
- }else{
- BI.extend(it, {reversed: false, xAxis: 0});
- }
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- chartLineType: options.chartLineType || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- this.yAxis = [];
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AXIS);
- });
- types.push(type);
- });
-
- BI.each(types, function (idx, type) {
- if(BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0,
- reversed: idx > 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.CompareAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.compare_axis_chart", BI.CompareAxisChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.comparebar.js b/src/addons/chart/chart/chart.comparebar.js
deleted file mode 100644
index 978b2031d..000000000
--- a/src/addons/chart/chart/chart.comparebar.js
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- * 图表控件
- * @class BI.CompareBarChart
- * @extends BI.Widget
- */
-BI.CompareBarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.CompareBarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-compare-bar-chart"
- });
- },
-
- _init: function () {
- BI.CompareBarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- gridLineWidth: 0,
- position: "left"
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.CompareBarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- var yTitle = getXYAxisUnit(this.config.xAxisNumberLevel, this.constants.LEFT_AXIS);
- var xTitle = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.X_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle + yTitle : yTitle;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- BI.extend(config.yAxis[0], {
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- maxWidth: "40%"
- });
-
- self.formatNumberLevelInXaxis(items, this.config.leftYAxisNumberLevel);
- config.xAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + xTitle : xTitle;
- config.xAxis[0].title.align = "center";
- BI.extend(config.xAxis[0], {
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators, true),
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick
- });
-
- config.chartType = "bar";
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.xAxis[0].formatter, this.config.chartFont);
-
- config.plotOptions.tooltip.formatter.valueFormat = config.xAxis[0].formatter;
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- var result = [];
- var i = BI.UUID();
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- BI.each(it.data, function (i, t) {
- var tmp = t.x;
- t.x = t.y;
- t.y = tmp;
- if (idx === 0) {
- t.x = -t.x;
- }
- });
- it.stack = i;
- });
- });
- BI.each(items, function (idx, item) {
- result = BI.concat(result, item);
- });
- return [result];
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = this._formatItems(items);
- var types = [];
- BI.each(this.options.items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.BAR);
- });
- types.push(type);
- });
- this.combineChart.populate(this.options.items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.CompareBarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.compare_bar_chart", BI.CompareBarChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.dashboard.js b/src/addons/chart/chart/chart.dashboard.js
deleted file mode 100644
index a95c448b0..000000000
--- a/src/addons/chart/chart/chart.dashboard.js
+++ /dev/null
@@ -1,398 +0,0 @@
-/**
- * 图表控件
- * @class BI.DashboardChart
- * @extends BI.Widget
- */
-BI.DashboardChart = BI.inherit(BI.AbstractChart, {
-
-
- _defaultConfig: function () {
- return BI.extend(BI.DashboardChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-dashboard-chart"
- });
- },
-
- _init: function () {
- BI.DashboardChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.gaugeAxis = [{
- minorTickColor: "rgb(226,226,226)",
- tickColor: "rgb(186,186,186)",
- labelStyle: this.constants.FONT_STYLE,
- step: 0,
- showLabel: true
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.DashboardChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- var isDashboard = BI.contains([self.constants.NORMAL, self.constants.HALF_DASHBOARD], self.config.chartDashboardType);
- var isMultiPointers = self.config.numberOfPointer === self.constants.MULTI_POINTER;
- formatChartDashboardStyle();
- config.chartType = "gauge";
- delete config.zoom;
- delete config.xAxis;
- delete config.yAxis;
- if (isDashboard && !isMultiPointers) {
- config.plotOptions.seriesLabel.enabled = false;
- if(BI.isNull(items[0].data[0].z)) {
- config.plotOptions.tooltip.formatter.identifier = "${SERIES}${X}${Y}${SIZE}${VALUE}";
- }
- }
- config.gaugeAxis[0].labelStyle = this.config.chartFont;
- return [items, config];
-
- function formatChartDashboardStyle () {
- var bands = getBandsStyles(self.config.bandsStyles, self.config.autoCustomStyle);
- var percentageLabel = BI.extend(config.plotOptions.percentageLabel, {
- enabled: self.config.showPercentage === BICst.PERCENTAGE.SHOW
- });
-
- config.gaugeAxis = self.gaugeAxis;
- var slotValueLAbel = {
- enabled: true,
- formatter: function () {
- var value = this.value;
- if (self.config.dashboardNumberLevel === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT && self.config.numSeparators) {
- value = BI.contentFormat(this.value, "#,##0%;-#,##0%");
- } else if (self.config.dashboardNumberLevel === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT && !self.config.numSeparators) {
- value = BI.contentFormat(this.value, "#0.00%");
- } else if (!(self.config.dashboardNumberLevel === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) && self.config.numSeparators) {
- value = BI.contentFormat(this.value, "#,###.##;-#,###.##");
- } else {
- value = BI.contentFormat(this.value, "#.##;-#.##");
- }
-
- var label = "" + this.seriesName + "
" + "" + value +
- getXYAxisUnit(self.config.dashboardNumberLevel, self.constants.DASHBOARD_AXIS) + "
";
-
- if (isDashboard && items[0].data.length > 1) {
- if (isMultiPointers) {
- return "" + this.seriesName + ":" + value +
- getXYAxisUnit(self.config.dashboardNumberLevel, self.constants.DASHBOARD_AXIS) + "
";
- }
- return label;
- } else if (isDashboard && BI.isNull(items[0].data[0].z)) {
- return label;
- }
-
- return "" + this.category + "
" + label;
- },
- style: self.config.chartFont,
- useHtml: true
- };
- switch (self.config.chartDashboardType) {
- case BICst.CHART_SHAPE.HALF_DASHBOARD:
- setPlotOptions("pointer_semi", bands, slotValueLAbel, percentageLabel);
- break;
- case BICst.CHART_SHAPE.PERCENT_DASHBOARD:
- setPlotOptions("ring", bands, slotValueLAbel, percentageLabel);
- break;
- case BICst.CHART_SHAPE.PERCENT_SCALE_SLOT:
- setPlotOptions("slot", bands, slotValueLAbel, percentageLabel);
- break;
- case BICst.CHART_SHAPE.HORIZONTAL_TUBE:
- BI.extend(slotValueLAbel, {
- align: "bottom"
- });
- BI.extend(percentageLabel, {
- align: "bottom"
- });
- setPlotOptions("thermometer", bands, slotValueLAbel, percentageLabel, "horizontal", "vertical");
- break;
- case BICst.CHART_SHAPE.VERTICAL_TUBE:
- BI.extend(slotValueLAbel, {
- align: "left"
- });
- BI.extend(percentageLabel, {
- align: "left"
- });
- setPlotOptions("thermometer", bands, slotValueLAbel, percentageLabel, "vertical", "horizontal");
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- setPlotOptions("pointer", bands, slotValueLAbel, percentageLabel);
- break;
- }
- changeMaxMinScale();
- formatNumberLevelInYaxis(self.config.dashboardNumberLevel, self.constants.LEFT_AXIS);
- if (self.config.dashboardNumberLevel === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) {
- config.gaugeAxis[0].formatter = function () {
- var scaleValue = this;
- if (self.config.numSeparators) {
- scaleValue = BI.contentFormat(scaleValue, "#,##0%;-#,##0%");
- } else {
- scaleValue = BI.contentFormat(scaleValue, "#0.00%");
- }
- return scaleValue + getXYAxisUnit(self.config.dashboardNumberLevel, self.constants.DASHBOARD_AXIS);
- };
- } else {
- config.gaugeAxis[0].formatter = function () {
- var value = this;
- if (self.config.numSeparators) {
- value = BI.contentFormat(value, "#,###;-#,###");
- }
- return value + getXYAxisUnit(self.config.dashboardNumberLevel, self.constants.DASHBOARD_AXIS);
- };
- }
- }
-
- function setPlotOptions (style, bands, slotValueLAbel, percentageLabel, thermometerLayout, layout) {
- config.style = style;
- config.plotOptions.bands = bands;
- config.plotOptions.valueLabel = slotValueLAbel;
- config.plotOptions.percentageLabel = percentageLabel;
- config.plotOptions.thermometerLayout = thermometerLayout;
- config.plotOptions.layout = layout;
- }
-
- function changeMaxMinScale () {
- self.gaugeAxis[0].min = BI.parseFloat(self.config.minScale) || null;
- self.gaugeAxis[0].max = BI.parseFloat(self.config.maxScale) || null;
- }
-
- function formatNumberLevelInYaxis (type, position) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
-
- config.plotOptions.tooltip.formatter.valueFormat = function () {
- return BI.contentFormat(this, "#.##;-#.##") + getXYAxisUnit(type, position);
- };
-
- if (self.config.numSeparators) {
- config.plotOptions.tooltip.formatter.valueFormat = function () {
- return BI.contentFormat(arguments[0], "#,###.##;-#,###.##");
- };
- }
-
- if (type === BICst.TARGET_STYLE.NUM_LEVEL.PERCENT) {
- config.plotOptions.tooltip.formatter.valueFormat = function () {
- return BI.contentFormat(arguments[0], "#0.00%");
- };
- if (self.config.numSeparators) {
- config.plotOptions.tooltip.formatter.valueFormat = function () {
- return BI.contentFormat(arguments[0], "#,##0%;-#,##0%");
- };
- }
- }
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.DASHBOARD_AXIS) {
- self.config.dashboardUnit !== "" && (unit = unit + self.config.dashboardUnit);
- }
- return unit;
- }
-
- function getBandsStyles (styles, change) {
- var min = 0, bands = [], color = null, max = null, conditionMax = null;
-
- BI.each(items, function (idx, item) {
- var data = item.data[0];
- if ((BI.isNull(max) || data.y > max)) {
- max = data.y;
- }
- });
-
- switch (change) {
-
- case BICst.SCALE_SETTING.AUTO:
- break;
- case BICst.SCALE_SETTING.CUSTOM:
- if (styles.length === 0) {
- return bands;
- }
- var maxScale = _calculateValueNiceDomain(0, max)[1];
-
- BI.each(styles, function (idx, style) {
- if(BI.parseFloat(style.range.min) > BI.parseFloat(style.range.max)) {
- return bands.push({
- color: color,
- from: conditionMax,
- to: maxScale
- });
- }
- bands.push({
- color: style.color,
- from: style.range.min,
- to: style.range.max
- });
- color = style.color;
- conditionMax = style.range.max;
- });
- min = BI.parseInt(styles[0].range.min);
- bands.push({
- color: "#808080",
- from: 0,
- to: min
- });
-
- bands.push({
- color: color,
- from: conditionMax,
- to: maxScale
- });
-
- return bands;
-
- }
- }
-
- function _calculateValueNiceDomain (minValue, maxValue) {
- minValue = Math.min(0, minValue);
- var tickInterval = _linearTickInterval(minValue, maxValue);
-
- return _linearNiceDomain(minValue, maxValue, tickInterval);
- }
-
- function _linearTickInterval (minValue, maxValue, m) {
- m = m || 5;
- var span = maxValue - minValue;
- var step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10));
- var err = m / span * step;
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-
- return step;
- }
-
- function _linearNiceDomain (minValue, maxValue, tickInterval) {
- minValue = VanUtils.accMul(Math.floor(minValue / tickInterval), tickInterval);
- maxValue = VanUtils.accMul(Math.ceil(maxValue / tickInterval), tickInterval);
-
- return [minValue, maxValue];
- }
- },
-
- _formatItems: function (items) {
- if (items.length === 0) {
- return [];
- }
- var c = this.constants;
- if (this.config.chartDashboardType === c.NORMAL || this.config.chartDashboardType === c.HALF_DASHBOARD) {
- var result = [];
- if (this.config.numberOfPointer === c.ONE_POINTER && items[0].length === 1) {// 单个系列
- BI.each(items[0][0].data, function (idx, da) {
- result.push({
- data: [BI.extend({}, da, {
- x: items[0][0].name
- })],
- name: da.x
- });
- });
- return [result];
- } else if(this.config.numberOfPointer === c.ONE_POINTER && items[0].length > 1) {
- BI.each(items[0], function (idx, item) {
- result.push({
- data: [BI.extend(item.data[0], {
- x: item.name
- })],
- name: BI.UUID()
- });
- });
- return [result];
- }
- if (this.config.numberOfPointer === c.MULTI_POINTER && items[0].length > 1) {// 多个系列
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- var data = it.data[0];
- data.x = it.name;
- result.push(data);
- });
- });
- return [[{
- data: result,
- name: ""
- }]];
- }
- } else {
- var others = [];
- if (BI.isNotNull(items[0][0].data[0].z)) {
- BI.each(items[0], function (idx, item) {
- BI.each(item.data, function (id, da) {
- others.push({
- data: [BI.extend({}, da, {
- x: item.name,
- y: da.y
- })],
- name: da.x
- });
- });
- });
- return [others];
- }
- }
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants, o = this.options;
- this.config = {
- dashboardNumberLevel: options.dashboardNumberLevel || c.NORMAL,
- dashboardUnit: options.dashboardUnit || "",
- chartDashboardType: options.chartDashboardType || c.NORMAL,
- numberOfPointer: options.numberOfPointer || c.ONE_POINTER,
- bandsStyles: options.bandsStyles || [],
- autoCustomStyle: options.autoCustom || c.AUTO,
- minScale: options.minScale,
- maxScale: options.maxScale,
- showPercentage: options.showPercentage || c.NOT_SHOW,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- o.items = this._formatItems(items);
- var types = [];
- BI.each(o.items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.DASHBOARD);
- });
- types.push(type);
- });
-
- this.combineChart.populate(o.items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.DashboardChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.dashboard_chart", BI.DashboardChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.donut.js b/src/addons/chart/chart/chart.donut.js
deleted file mode 100644
index 966a3866d..000000000
--- a/src/addons/chart/chart/chart.donut.js
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * 图表控件
- * @class BI.DonutChart
- * @extends BI.Widget
- */
-BI.DonutChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.DonutChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-donut-chart"
- });
- },
-
- _init: function () {
- BI.DonutChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.DonutChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- delete config.zoom;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
-
- this.formatChartLegend(config, this.config.chartLegend);
-
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
-
- config.plotOptions.innerRadius = "50.0%";
- config.chartType = "pie";
- config.plotOptions.dataLabels.align = "outside";
- config.plotOptions.dataLabels.connectorWidth = "outside";
- config.plotOptions.dataLabels.style = this.config.chartFont;
- config.plotOptions.dataLabels.formatter.identifier = "${VALUE}${PERCENT}";
- delete config.xAxis;
- delete config.yAxis;
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- });
- });
-
- config.legend.style = this.config.chartFont;
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.DONUT);
- });
- types.push(type);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.DonutChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.donut_chart", BI.DonutChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.fallaxis.js b/src/addons/chart/chart/chart.fallaxis.js
deleted file mode 100644
index df940d146..000000000
--- a/src/addons/chart/chart/chart.fallaxis.js
+++ /dev/null
@@ -1,310 +0,0 @@
-/**
- * 图表控件
- * @class BI.FallAxisChart
- * @extends BI.Widget
- */
-BI.FallAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.FallAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-fall-axis-chart"
- });
- },
-
- _init: function () {
- BI.FallAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.FallAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- var yTitle = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- config.legend.enabled = false;
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.dataSheet.enabled = this.config.showDataTable;
- if(config.dataSheet.enabled === true) {
- config.xAxis[0].showLabel = false;
- }
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if(this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.extend(config.yAxis[0], {
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators)
- });
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.yAxis[0].formatter);
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + yTitle : yTitle;
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- if(config.plotOptions.dataLabels.enabled === true) {
- BI.each(items, function (idx, item) {
- if(idx === 0) {
- item.dataLabels = {};
- return;
- }
- item.dataLabels = {
- style: self.config.chartFont,
- align: "outside",
- autoAdjust: true,
- enabled: true,
- formatter: {
- identifier: "${VALUE}",
- valueFormat: config.yAxis[0].formatter
- }
- };
- });
- }
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if(idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if(idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- config.plotOptions.tooltip.formatter.valueFormat = formatter;
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if(position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if(position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if(position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- var o = this.options;
- if(BI.isEmptyArray(items)) {
- return [];
- }
- items = items[0];
- var tables = [], sum = 0;
- var colors = this.config.chartColor || [];
- if(BI.isEmptyArray(colors)) {
- colors = ["rgb(152, 118, 170)", "rgb(0, 157, 227)"];
- }
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (i, t) {
- if(t.y < 0) {
- tables.push([t.x, t.y, sum + t.y, t]);
- }else{
- tables.push([t.x, t.y, sum, t]);
- }
- sum += t.y;
- });
- });
-
- return [BI.map(BI.makeArray(2, null), function (idx, item) {
- return {
- data: BI.map(tables, function (id, cell) {
- var axis = BI.extend({}, cell[3], {
- x: cell[0],
- y: Math.abs(cell[2 - idx])
- });
- if(idx === 1) {
- axis.color = cell[2 - idx] < 0 ? colors[1] : colors[0];
- }else{
- axis.color = "rgba(0,0,0,0)";
- axis.borderColor = "rgba(0,0,0,0)";
- axis.borderWidth = 0;
- axis.clickColor = "rgba(0,0,0,0)";
- axis.mouseOverColor = "rgba(0,0,0,0)";
- axis.tooltip = {
- enable: false
- };
- }
- return axis;
- }),
- stack: "stackedFall",
- name: idx === 1 ? items[0].name : BI.UUID()
- };
- })];
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || ["#5caae4", "#70cc7f", "#ebbb67", "#e97e7b", "#6ed3c9"],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AXIS);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.FallAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.fall_axis_chart", BI.FallAxisChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.forcebubble.js b/src/addons/chart/chart/chart.forcebubble.js
deleted file mode 100644
index d23696f64..000000000
--- a/src/addons/chart/chart/chart.forcebubble.js
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * 图表控件
- * @class BI.ForceBubbleChart
- * @extends BI.Widget
- */
-BI.ForceBubbleChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.ForceBubbleChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-force-bubble-chart"
- });
- },
-
- _init: function () {
- BI.ForceBubbleChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.ForceBubbleChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.chartType = "forceBubble";
- config.colors = this.config.chartColor;
- this.formatChartLegend(config, this.config.chartLegend);
-
- config.plotOptions.force = true;
- config.plotOptions.shadow = this.config.bubbleStyle !== this.constants.NO_PROJECT;
- config.plotOptions.dataLabels.enabled = true;
- config.plotOptions.dataLabels.align = "inside";
- config.plotOptions.dataLabels.style = this.config.chartFont;
- config.plotOptions.dataLabels.formatter.identifier = "${CATEGORY}${VALUE}";
- delete config.xAxis;
- delete config.yAxis;
- delete config.zoom;
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- });
- });
- config.legend.style = this.config.chartFont;
- return [items, config];
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartColor: options.chartColor || [],
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- bubbleStyle: options.bubbleStyle || c.NO_PROJECT,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.FORCE_BUBBLE);
- });
- types.push(type);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.ForceBubbleChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.force_bubble_chart", BI.ForceBubbleChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.gismap.js b/src/addons/chart/chart/chart.gismap.js
deleted file mode 100644
index b217b0491..000000000
--- a/src/addons/chart/chart/chart.gismap.js
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- * 图表控件
- * @class BI.GISMapChart
- * @extends BI.Widget
- */
-BI.GISMapChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.GISMapChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-gis-map-chart"
- });
- },
-
- _init: function () {
- BI.GISMapChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.GISMapChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- delete config.dataSheet;
- delete config.legend;
- delete config.zoom;
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.dataLabels.useHtml = true;
- config.plotOptions.dataLabels.style = this.config.chartFont;
- config.plotOptions.dataLabels.formatter = function () {
- var name = (BI.isArray(this.name) ? "" : this.name + ",") + BI.contentFormat(this.value, "#.##;-#.##");
- var style = "padding: 5px; background-color: rgba(0,0,0,0.4980392156862745);border-color: rgb(0,0,0); border-radius:2px; border-width:0px;";
- var a = "" + name + "
";
- return a;
- };
- config.plotOptions.tooltip.shared = true;
- config.plotOptions.tooltip.formatter = function () {
- var tip = BI.isArray(this.name) ? "" : this.name;
- BI.each(this.points, function (idx, point) {
- tip += ("" + point.seriesName + ":" + BI.contentFormat((point.size || point.y), "#.##;-#.##") + "
");
- });
- return tip;
- };
- config.geo = {
- tileLayer: "http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
- attribution: "© 2016 AutoNavi"
- };
- if (this.config.showBackgroundLayer === true && BI.isNotNull(this.config.backgroundLayerInfo)) {
- config.geo = {};
- if (this.config.backgroundLayerInfo.type === BICst.WMS_SERVER) {
- config.geo.tileLayer = false;
- config.geo.wmsUrl = this.config.backgroundLayerInfo.url;
- config.geo.wmsLayer = this.config.backgroundLayerInfo.wmsLayer;
- } else {
- config.geo.tileLayer = this.config.backgroundLayerInfo.url;
- }
- }
- config.chartType = "pointMap";
- config.plotOptions.icon = {
- iconUrl: BICst.GIS_ICON_PATH,
- iconSize: [24, 24]
- };
-
- config.plotOptions.marker = {
- symbol: BICst.GIS_ICON_PATH,
- width: 24,
- height: 24,
- enable: true
- };
- delete config.xAxis;
- delete config.yAxis;
- return [items, config];
-
- },
-
- _checkLngLatValid: function (lnglat) {
- if (lnglat.length < 2) {
- return false;
- }
- return lnglat[0] <= 180 && lnglat[0] >= -180 && lnglat[1] <= 90 && lnglat[1] >= -90;
- },
-
- _formatItems: function (items) {
- var self = this;
- var results = [];
- BI.each(items, function (idx, item) {
- var result = [];
- BI.each(item, function (id, it) {
- var res = [];
- BI.each(it.data, function (i, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- var lnglat = da.x.split(",");
- if (self.config.lnglat === self.constants.LAT_FIRST) {
- var lng = lnglat[1];
- lnglat[1] = lnglat[0];
- lnglat[0] = lng;
- }
- da.lnglat = lnglat;
- da.value = da.y;
- da.name = BI.isNotNull(da.z) ? da.z : da.lnglat;
- if (self._checkLngLatValid(da.lnglat)) {
- res.push(da);
- }
- });
- if (BI.isNotEmptyArray(res)) {
- result.push(BI.extend(it, {
- data: res
- }));
- }
- });
- if (BI.isNotEmptyArray(result)) {
- results.push(result);
- }
- });
- return results;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- lnglat: options.lnglat || c.LNG_FIRST,
- chartFont: options.chartFont || c.FONT_STYLE,
- showBackgroundLayer: options.showBackgroundLayer || false,
- backgroundLayerInfo: options.backgroundLayerInfo
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function () {
- type.push(BICst.WIDGET.GIS_MAP);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.GISMapChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.gis_map_chart", BI.GISMapChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.line.js b/src/addons/chart/chart/chart.line.js
deleted file mode 100644
index aa42fe34a..000000000
--- a/src/addons/chart/chart/chart.line.js
+++ /dev/null
@@ -1,297 +0,0 @@
-/**
- * 图表控件
- * @class BI.LineChart
- * @extends BI.Widget
- */
-BI.LineChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.LineChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-line-chart"
- });
- },
-
- _init: function () {
- BI.LineChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.LineChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartLineStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- axis.title.rotation = self.constants.ROTATION;
- title = getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- }
- });
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "line";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatChartLineStyle () {
- switch (self.config.chartLineType) {
- case BICst.CHART_SHAPE.RIGHT_ANGLE:
- config.plotOptions.curve = false;
- config.plotOptions.step = true;
- break;
- case BICst.CHART_SHAPE.CURVE:
- config.plotOptions.curve = true;
- config.plotOptions.step = false;
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- config.plotOptions.curve = false;
- config.plotOptions.step = false;
- break;
- }
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- chartLineType: options.chartLineType || c.NORMAL,
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.LINE);
- });
- types.push(type);
- });
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.LineChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.line_chart", BI.LineChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.map.js b/src/addons/chart/chart/chart.map.js
deleted file mode 100644
index 90c79515f..000000000
--- a/src/addons/chart/chart/chart.map.js
+++ /dev/null
@@ -1,361 +0,0 @@
-/**
- * 图表控件
- * @class BI.MapChart
- * @extends BI.Widget
- */
-BI.MapChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.MapChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-map-chart"
- });
- },
-
- _init: function () {
- BI.MapChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.MapChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, c = this.constants;
- formatRangeLegend();
- delete config.legend;
- delete config.zoom;
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.tooltip.shared = true;
- var formatterArray = [];
- BI.each(items, function (idx, item) {
- if (BI.has(item, "settings")) {
- formatterArray.push(formatToolTipAndDataLabel(item.settings.format || c.NORMAL, item.settings.num_level || c.NORMAL,
- item.settings.unit || "", item.settings.numSeparators || c.NUM_SEPARATORS));
- }
- });
- config.plotOptions.tooltip.formatter = function () {
- var tip = this.name;
- var point = this.points[0];
- var index = BI.isNull(point.size) ? 0 : 1;
- tip += ("" + point.seriesName + ":" + BI.contentFormat(point.size || point.y, formatterArray[index]) + "
");
- return tip;
- };
- config.plotOptions.dataLabels.formatter.valueFormat = function () {
- return BI.contentFormat(arguments[0], formatterArray[0]);
- };
- config.plotOptions.dataLabels.style = this.config.chartFont;
-
- config.plotOptions.bubble.dataLabels = config.plotOptions.dataLabels;
- config.plotOptions.bubble.dataLabels.formatter.identifier = "${SIZE}";
-
- config.plotOptions.bubble.tooltip = config.plotOptions.tooltip;
-
- config.geo = this.config.geo;
- if (this.config.showBackgroundLayer === true && BI.isNotNull(this.config.backgroundLayerInfo)) {
- if (this.config.backgroundLayerInfo.type === BICst.WMS_SERVER) {
- config.geo.tileLayer = false;
- config.geo.wmsUrl = this.config.backgroundLayerInfo.url;
- config.geo.wmsLayer = this.config.backgroundLayerInfo.wmsLayer;
- } else {
- config.geo.tileLayer = this.config.backgroundLayerInfo.url;
- }
- }
- if (this.config.initDrillPath.length > 1) {
- config.initDrillPath = this.config.initDrillPath;
- }
- config.dTools.enabled = true;
- config.dTools.click = function (point) {
- point = point || {};
- var pointOption = point.options || {};
- self.fireEvent(BI.MapChart.EVENT_CLICK_DTOOL, pointOption);
- };
- config.chartType = "areaMap";
- delete config.xAxis;
- delete config.yAxis;
-
- var find = BI.find(items, function (idx, item) {
- return BI.has(item, "type") && item.type === "areaMap";
- });
- if (BI.isNull(find)) {
- items.push({
- type: "areaMap",
- data: []
- });
- }
-
- return [items, config];
-
- function formatRangeLegend () {
- config.rangeLegend.enabled = true;
- switch (self.config.chartLegend) {
- case BICst.CHART_LEGENDS.BOTTOM:
- config.rangeLegend.visible = true;
- config.rangeLegend.position = "bottom";
- break;
- case BICst.CHART_LEGENDS.RIGHT:
- config.rangeLegend.visible = true;
- config.rangeLegend.position = "right";
- break;
- case BICst.CHART_LEGENDS.NOT_SHOW:
- config.rangeLegend.visible = false;
- break;
- }
- config.rangeLegend.continuous = false;
- config.rangeLegend.range = getRangeStyle(self.config.mapStyles, self.config.autoCustom, self.config.themeColor);
- config.rangeLegend.formatter = function () {
- var to = this.to;
- if (BI.isNotEmptyArray(items) && BI.has(items[0], "settings")) {
- var settings = items[0].settings;
- var legendFormat = formatToolTipAndDataLabel(settings.format || c.NORMAL, settings.num_level || c.NORMAL,
- settings.unit || "", settings.numSeparators || c.NUM_SEPARATORS);
- to = BI.contentFormat(to, legendFormat);
- }
- return to;
- };
- }
-
- function formatToolTipAndDataLabel (format, numberLevel, unit, numSeparators) {
- var formatter = "#.##";
- switch (format) {
- case self.constants.NORMAL:
- formatter = "#.##";
- if (numSeparators) formatter = "#,###.##";
- break;
- case self.constants.ZERO2POINT:
- formatter = "#0";
- if (numSeparators) formatter = "#,###";
- break;
- case self.constants.ONE2POINT:
- formatter = "#0.0";
- if (numSeparators) formatter = "#,###.0";
- break;
- case self.constants.TWO2POINT:
- formatter = "#0.00";
- if (numSeparators) formatter = "#,###.00";
- break;
- }
-
- switch (numberLevel) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- formatter += "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- formatter += BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- formatter += BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- formatter += BI.i18nText("BI-Yi");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.PERCENT:
- formatter += "%";
- break;
- }
-
- return formatter + unit;
- }
-
- function getRangeStyle (styles, change, defaultColor) {
- var range = [], color = null, defaultStyle = {};
- var conditionMax = null, conditionMin = null, min = null;
-
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, it) {
- if (BI.isNull(min) || BI.parseFloat(min) > BI.parseFloat(it.y)) {
- min = it.y;
- }
- });
- });
-
- switch (change) {
- case BICst.SCALE_SETTING.AUTO:
- defaultStyle.color = defaultColor;
- return defaultStyle;
- case BICst.SCALE_SETTING.CUSTOM:
- if (styles.length !== 0) {
- var maxScale = _calculateValueNiceDomain(0, self.max)[1];
- BI.each(styles, function (idx, style) {
- if (style.range.max) {
- range.push({
- color: style.color || "rgba(255,255,255,0)",
- from: style.range.min,
- to: style.range.max
- });
- } else {
- var to = style.range.min < maxScale ? maxScale : 266396;
- range.push({
- color: style.color || "rgba(255,255,255,0)",
- from: style.range.min,
- to: to
- });
- }
- color = style.color;
- conditionMax = style.range.max;
- });
-
- conditionMin = BI.parseFloat(styles[0].range.min);
- if (conditionMin !== 0) {
- range.push({
- color: "#808080",
- from: 0,
- to: conditionMin
- });
- }
-
- if (conditionMax && conditionMax < maxScale) {
- range.push({
- color: color || "rgba(255,255,255,0)",
- from: conditionMax,
- to: maxScale
- });
- }
- return range;
- }
- defaultStyle.color = defaultColor;
- return defaultStyle;
-
- }
- }
-
- function _calculateValueNiceDomain (minValue, maxValue) {
- minValue = Math.min(0, minValue);
- var tickInterval = _linearTickInterval(minValue, maxValue);
-
- return _linearNiceDomain(minValue, maxValue, tickInterval);
- }
-
- function _linearTickInterval (minValue, maxValue, m) {
- m = m || 5;
- var span = maxValue - minValue;
- var step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10));
- var err = m / span * step;
-
- if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-
- return step;
- }
-
- function _linearNiceDomain (minValue, maxValue, tickInterval) {
- minValue = VanUtils.accMul(Math.floor(minValue / tickInterval), tickInterval);
- maxValue = VanUtils.accMul(Math.ceil(maxValue / tickInterval), tickInterval);
-
- return [minValue, maxValue];
- }
- },
-
- _formatDrillItems: function (items) {
- var self = this;
- BI.each(items.series, function (idx, da) {
- var hasArea = false;
- BI.each(da.data, function (idx, data) {
- data.y = self.formatXYDataWithMagnify(data.y, 1);
- if (BI.has(da, "settings")) {
- data.y = self.formatXYDataWithMagnify(data.y, self.calcMagnify(da.settings.num_level || self.constants.NORMAL));
- }
- if (BI.has(da, "type") && da.type == "bubble") {
- data.name = data.x;
- data.size = data.y;
- } else {
- data.name = data.x;
- data.value = data.y;
- }
- if (BI.has(da, "type") && da.type === "areaMap") {
- hasArea = true;
- }
- if (BI.has(data, "drilldown")) {
- self._formatDrillItems(data.drilldown);
- }
- });
- if (hasArea === false) {
- items.series.push({
- type: "areaMap",
- data: []
- });
- }
- });
- },
-
- _formatItems: function (items) {
- var self = this;
- this.max = null;
- this.min = null;
- BI.each(items, function (idx, item) {
- BI.each(item, function (id, it) {
- BI.each(it.data, function (i, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- if (BI.has(it, "settings")) {
- da.y = self.formatXYDataWithMagnify(da.y, self.calcMagnify(it.settings.num_level || self.constants.NORMAL));
- }
- if ((BI.isNull(self.max) || BI.parseFloat(da.y) > BI.parseFloat(self.max)) && id === 0) {
- self.max = da.y;
- }
- if ((BI.isNull(self.min) || BI.parseFloat(da.y) < BI.parseFloat(self.min)) && id === 0) {
- self.min = da.y;
- }
- if (BI.has(it, "type") && it.type == "bubble") {
- da.name = da.x;
- da.size = da.y;
- } else {
- da.name = da.x;
- da.value = da.y;
- }
- if (BI.has(da, "drilldown")) {
- self._formatDrillItems(da.drilldown);
- }
- });
- });
- });
- return items;
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- geo: options.geo,
- initDrillPath: options.initDrillPath || [],
- tooltip: options.tooltip || "",
- themeColor: options.themeColor || "#65bce7",
- mapStyles: options.mapStyles || [],
- autoCustom: options.autoCustom || c.AUTO_CUSTOM,
- showBackgroundLayer: options.showBackgroundLayer || false,
- backgroundLayerInfo: options.backgroundLayerInfo,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.MAP);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.MapChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.MapChart.EVENT_CLICK_DTOOL = "EVENT_CLICK_DTOOL";
-BI.shortcut("bi.map_chart", BI.MapChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.multiaxis.js b/src/addons/chart/chart/chart.multiaxis.js
deleted file mode 100644
index 33f869df3..000000000
--- a/src/addons/chart/chart/chart.multiaxis.js
+++ /dev/null
@@ -1,322 +0,0 @@
-/**
- * 图表控件
- * @class BI.MultiAxisChart
- * @extends BI.Widget
- * leftYxis 左值轴属性
- * rightYxis 右值轴属性
- * xAxis 分类轴属性
- */
-BI.MultiAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.MultiAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-multi-axis-chart"
- });
- },
-
- _init: function () {
- BI.MultiAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: {fontFamily: "inherit", color: "#808080", fontSize: "12px", fontWeight: ""}
- },
- labelStyle: {
- fontFamily: "inherit", color: "#808080", fontSize: "12px"
- },
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.MultiAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = this.formatChartStyle();
- this.formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = self.getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = self.getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- title = self.getXYAxisUnit(self.config.rightYAxisSecondNumberLevel, self.constants.RIGHT_AXIS_SECOND);
- axis.title.text = self.config.showRightYAxisSecondTitle === true ? self.config.rightYAxisSecondTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisSecondReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisSecondStyle, self.config.rightYAxisSecondNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisSecondNumberLevel, idx, axis.formatter);
- break;
- default:
- break;
- }
- });
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- if (config.dataSheet) {
- config.dataSheet.style = this.config.chartFont;
- }
- config.xAxis[0].title.style = config.xAxis[0].labelStyle = this.config.chartFont;
- config.legend.style = this.config.chartFont;
- config.plotOptions.dataLabels.style = this.config.chartFont;
- BI.each(config.yAxis, function (idx, axis) {
- axis.title.style = self.config.chartFont;
- });
-
- return [items, config];
- },
-
- formatChartStyle: function () {
- switch (this.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- },
-
- formatCordon: function () {
- var self = this;
- var magnify = 1;
- BI.each(this.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: {
- fontFamily: "inherit",
- color: "#808080",
- fontSize: "12px",
- fontWeight: ""
- },
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- default:
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: {
- fontFamily: "inherit",
- color: "#808080",
- fontSize: "12px",
- fontWeight: ""
- },
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- },
-
- getXYAxisUnit: function (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- default:
- break;
- }
- if (position === this.constants.X_AXIS) {
- this.config.xAxisUnit !== "" && (unit = unit + this.config.xAxisUnit);
- }
- if (position === this.constants.LEFT_AXIS) {
- this.config.leftYAxisUnit !== "" && (unit = unit + this.config.leftYAxisUnit);
- }
- if (position === this.constants.RIGHT_AXIS) {
- this.config.rightYAxisUnit !== "" && (unit = unit + this.config.rightYAxisUnit);
- }
- if (position === this.constants.RIGHT_AXIS_SECOND) {
- this.config.rightYAxisSecondUnit !== "" && (unit = unit + this.config.rightYAxisSecondUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- },
-
- populate: function (items, options, types) {
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- rightYAxisSecondTitle: options.rightYAxisSecondTitle || "",
- chartColor: options.chartColor || ["#5caae4", "#70cc7f", "#ebbb67", "#e97e7b", "#6ed3c9"],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- rightYAxisSecondStyle: options.rightYAxisSecondStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- showRightYAxisSecondTitle: options.showRightYAxisSecondTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- rightYAxisSecondReversed: options.rightYAxisSecondReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- rightYAxisSecondNumberLevel: options.rightYAxisSecondNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- rightYAxisSecondUnit: options.rightYAxisSecondUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: {fontFamily: "inherit", color: "#808080", fontSize: "12px", fontWeight: ""}
- },
- labelStyle: {
- fontFamily: "inherit", color: "#808080", fontSize: "12px"
- },
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.MultiAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.multi_axis_chart", BI.MultiAxisChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.multiaxiscombine.js b/src/addons/chart/chart/chart.multiaxiscombine.js
deleted file mode 100644
index 020c4bac4..000000000
--- a/src/addons/chart/chart/chart.multiaxiscombine.js
+++ /dev/null
@@ -1,324 +0,0 @@
-/**
- * 图表控件
- * @class BI.MultiAxisChart
- * @extends BI.Widget
- * leftYxis 左值轴属性
- * rightYxis 右值轴属性
- * xAxis 分类轴属性
- */
-BI.MultiAxisCombineChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.MultiAxisCombineChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-multi-axis-combine-chart"
- });
- },
-
- _init: function () {
- BI.MultiAxisCombineChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: {fontFamily: "inherit", color: "#808080", fontSize: "12px", fontWeight: ""}
- },
- labelStyle: {
- fontFamily: "inherit", color: "#808080", fontSize: "12px"
- },
- position: "bottom",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.MultiAxisCombineChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- config.colors = this.config.chartColor;
- config.style = this.formatChartStyle();
- this.formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- BI.each(config.yAxis, function (idx, axis) {
- var title = "";
- switch (axis.axisIndex) {
- case self.constants.LEFT_AXIS:
- title = self.getXYAxisUnit(self.config.leftYAxisNumberLevel, self.constants.LEFT_AXIS);
- axis.title.text = self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- axis.labelStyle.color = axis.lineColor = axis.tickColor = config.colors[0];
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.leftYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.leftYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS:
- title = self.getXYAxisUnit(self.config.rightYAxisNumberLevel, self.constants.RIGHT_AXIS);
- axis.title.text = self.config.showRightYAxisTitle === true ? self.config.rightYAxisTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- axis.labelStyle.color = axis.lineColor = axis.tickColor = config.colors[1];
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisStyle, self.config.rightYAxisNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisNumberLevel, idx, axis.formatter);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- title = self.getXYAxisUnit(self.config.rightYAxisSecondNumberLevel, self.constants.RIGHT_AXIS_SECOND);
- axis.title.text = self.config.showRightYAxisSecondTitle === true ? self.config.rightYAxisSecondTitle + title : title;
- axis.title.rotation = self.constants.ROTATION;
- axis.labelStyle.color = axis.lineColor = axis.tickColor = config.colors[2];
- BI.extend(axis, {
- lineWidth: self.config.lineWidth,
- showLabel: self.config.showLabel,
- enableTick: self.config.enableTick,
- reversed: self.config.rightYAxisSecondReversed,
- enableMinorTick: self.config.enableMinorTick,
- gridLineWidth: self.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(self.config.rightYAxisSecondStyle, self.config.rightYAxisSecondNumberLevel, self.config.rightNumSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, self.config.rightYAxisSecondNumberLevel, idx, axis.formatter);
- break;
- default:
- break;
- }
- });
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabel(config.plotOptions.dataLabels.enabled, items, config, this.config.chartFont);
-
- // 全局样式的图表文字
- if (config.dataSheet) {
- config.dataSheet.style = this.config.chartFont;
- }
- config.xAxis[0].title.style = config.xAxis[0].labelStyle = this.config.chartFont;
- config.legend.style = this.config.chartFont;
- config.plotOptions.dataLabels.style = this.config.chartFont;
- BI.each(config.yAxis, function (idx, axis) {
- axis.title.style = self.config.chartFont;
- });
-
- return [items, config];
- },
-
- formatChartStyle: function () {
- switch (this.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- },
-
- formatCordon: function () {
- var self = this;
- var magnify = 1;
- BI.each(this.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: {
- fontFamily: "inherit",
- color: "#808080",
- fontSize: "12px",
- fontWeight: ""
- },
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- default:
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: {
- fontFamily: "inherit",
- color: "#808080",
- fontSize: "12px",
- fontWeight: ""
- },
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- },
-
- getXYAxisUnit: function (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- default:
- break;
- }
- if (position === this.constants.X_AXIS) {
- this.config.xAxisUnit !== "" && (unit = unit + this.config.xAxisUnit);
- }
- if (position === this.constants.LEFT_AXIS) {
- this.config.leftYAxisUnit !== "" && (unit = unit + this.config.leftYAxisUnit);
- }
- if (position === this.constants.RIGHT_AXIS) {
- this.config.rightYAxisUnit !== "" && (unit = unit + this.config.rightYAxisUnit);
- }
- if (position === this.constants.RIGHT_AXIS_SECOND) {
- this.config.rightYAxisSecondUnit !== "" && (unit = unit + this.config.rightYAxisSecondUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- },
-
- populate: function (items, options, types) {
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- rightYAxisTitle: options.rightYAxisTitle || "",
- rightYAxisSecondTitle: options.rightYAxisSecondTitle || "",
- chartColor: options.chartColor || ["#5caae4", "#70cc7f", "#ebbb67", "#e97e7b", "#6ed3c9"],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- rightYAxisStyle: options.rightYAxisStyle || c.NORMAL,
- rightYAxisSecondStyle: options.rightYAxisSecondStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- showRightYAxisTitle: options.showRightYAxisTitle || false,
- showRightYAxisSecondTitle: options.showRightYAxisSecondTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- rightYAxisReversed: options.rightYAxisReversed || false,
- rightYAxisSecondReversed: options.rightYAxisSecondReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- rightYAxisNumberLevel: options.rightYAxisNumberLevel || c.NORMAL,
- rightYAxisSecondNumberLevel: options.rightYAxisSecondNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- rightYAxisUnit: options.rightYAxisUnit || "",
- rightYAxisSecondUnit: options.rightYAxisSecondUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- this.yAxis = [];
- BI.each(types, function (idx, type) {
- if (BI.isEmptyArray(type)) {
- return;
- }
- var newYAxis = {
- type: "value",
- title: {
- style: {fontFamily: "inherit", color: "#808080", fontSize: "12px", fontWeight: ""}
- },
- labelStyle: {
- fontFamily: "inherit", color: "#808080", fontSize: "12px"
- },
- position: idx > 0 ? "right" : "left",
- lineWidth: 1,
- axisIndex: idx,
- gridLineWidth: 0
- };
- self.yAxis.push(newYAxis);
- });
-
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.MultiAxisCombineChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.multi_axis_combine_chart", BI.MultiAxisCombineChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.percentaccumulatearea.js b/src/addons/chart/chart/chart.percentaccumulatearea.js
deleted file mode 100644
index c4020b36c..000000000
--- a/src/addons/chart/chart/chart.percentaccumulatearea.js
+++ /dev/null
@@ -1,245 +0,0 @@
-/**
- * 图表控件
- * @class BI.PercentAccumulateAreaChart
- * @extends BI.Widget
- */
-BI.PercentAccumulateAreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.PercentAccumulateAreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-percent-accumulate-area-chart"
- });
- },
-
- _init: function () {
- BI.PercentAccumulateAreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.PercentAccumulateAreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.text = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- BI.extend(config.yAxis[0], {
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- reversed: this.config.leftYAxisReversed,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.yAxis[0].formatter, true);
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.yAxis[0].formatter, this.config.chartFont, true);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
-
- unit = unit === "" ? unit : "(" + unit + ")";
-
- return self.config.showLeftYAxisTitle === true ? self.config.leftYAxisTitle + unit : unit;
- }
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i, stackByPercent: true});
- });
- });
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AREA);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.PercentAccumulateAreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.percent_accumulate_area_chart", BI.PercentAccumulateAreaChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.percentaccumulateaxis.js b/src/addons/chart/chart/chart.percentaccumulateaxis.js
deleted file mode 100644
index b7ced4edb..000000000
--- a/src/addons/chart/chart/chart.percentaccumulateaxis.js
+++ /dev/null
@@ -1,240 +0,0 @@
-/**
- * 图表控件 百分比堆积柱状
- * @class BI.PercentAccumulateAxisChart
- * @extends BI.Widget
- */
-BI.PercentAccumulateAxisChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.PercentAccumulateAxisChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-percent-accumulate-axis-chart"
- });
- },
-
- _init: function () {
- BI.PercentAccumulateAxisChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: self.constants.FONT_STYLE
- },
- labelStyle: self.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.PercentAccumulateAxisChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- var yTitle = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.dataSheet.enabled = this.config.showDataTable;
- config.xAxis[0].showLabel = !config.dataSheet.enabled;
- config.zoom.zoomTool.enabled = this.config.showZoom;
- if (this.config.showZoom === true) {
- delete config.dataSheet;
- delete config.zoom.zoomType;
- }
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + yTitle : yTitle;
- BI.extend(config.yAxis[0], {
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- reversed: this.config.leftYAxisReversed,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators)
- });
- self.formatNumberLevelInYaxis(config, items, this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.yAxis[0].formatter, true);
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.yAxis[0].formatter, this.config.chartFont, true);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (items) {
- return BI.map(items, function (idx, item) {
- var i = BI.UUID();
- return BI.map(item, function (id, it) {
- return BI.extend({}, it, {stack: i, stackByPercent: true});
- });
- });
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showDataTable: options.showDataTable || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- showZoom: options.showZoom || false,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.AXIS);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.PercentAccumulateAxisChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.percent_accumulate_axis_chart", BI.PercentAccumulateAxisChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.pie.js b/src/addons/chart/chart/chart.pie.js
deleted file mode 100644
index 7c9608af7..000000000
--- a/src/addons/chart/chart/chart.pie.js
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- * 图表控件
- * @class BI.PieChart
- * @extends BI.Widget
- */
-BI.PieChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.PieChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-pie-chart"
- });
- },
-
- _init: function () {
- BI.PieChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.PieChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this, o = this.options;
- delete config.zoom;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartPieStyle();
-
- this.formatChartLegend(config, this.config.chartLegend);
-
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.tooltip.formatter.identifier = "${CATEGORY}${SERIES}${VALUE}${PERCENT}";
-
- config.chartType = "pie";
- delete config.xAxis;
- delete config.yAxis;
- config.plotOptions.dataLabels.align = "outside";
- config.plotOptions.dataLabels.connectorWidth = "outside";
- config.plotOptions.dataLabels.formatter.identifier = "${VALUE}${PERCENT}";
- config.plotOptions.dataLabels.style = this.config.chartFont;
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.y = self.formatXYDataWithMagnify(da.y, 1);
- });
- });
-
- config.legend.style = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatChartPieStyle () {
- switch (self.config.chartPieType) {
- case BICst.CHART_SHAPE.EQUAL_ARC_ROSE:
- config.plotOptions.roseType = "sameArc";
- break;
- case BICst.CHART_SHAPE.NOT_EQUAL_ARC_ROSE:
- config.plotOptions.roseType = "differentArc";
- break;
- case BICst.CHART_SHAPE.NORMAL:
- default:
- delete config.plotOptions.roseType;
- break;
- }
- config.plotOptions.innerRadius = self.config.chartInnerRadius + "%";
- config.plotOptions.endAngle = self.config.chartTotalAngle;
- }
-
- },
-
- // 目前饼图不会有多个系列,如果有多个就要把它们合并在一起
- _isNeedConvert: function (items) {
- var result = BI.find(items, function (idx, item) {
- return item.length > 1;
- });
- return BI.isNotNull(result);
- },
-
- _formatItems: function (items) {
- if(this._isNeedConvert(items)) {
- // 把每个坐标轴所有的多个系列合并成一个系列
- return BI.map(items, function (idx, item) {
- var seriesItem = [];
- var obj = {data: [], name: ""};
- seriesItem.push(obj);
- BI.each(item, function (id, series) {
- BI.each(series.data, function (i, da) {
- obj.data.push(BI.extend({}, da, {x: series.name}));
- });
- });
- return seriesItem;
- });
- }
- return items;
-
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- chartPieType: options.chartPieType || c.NORMAL,
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- chartInnerRadius: options.chartInnerRadius || 0,
- chartTotalAngle: options.chartTotalAngle || BICst.PIE_ANGLES.TOTAL,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
-
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.PIE);
- });
- types.push(type);
- });
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.PieChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.pie_chart", BI.PieChart);
-
diff --git a/src/addons/chart/chart/chart.radar.js b/src/addons/chart/chart/chart.radar.js
deleted file mode 100644
index b64ae5e12..000000000
--- a/src/addons/chart/chart/chart.radar.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * 图表控件
- * @class BI.RadarChart
- * @extends BI.Widget
- */
-BI.RadarChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.RadarChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-radar-chart"
- });
- },
-
- _init: function () {
- BI.RadarChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.radiusAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- formatter: function () {
- return this > 0 ? this : (-1) * this;
- },
- gridLineWidth: 0,
- position: "bottom"
- }];
-
- this.angleAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE
- }];
-
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.RadarChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
-
- delete config.zoom;
-
- var title = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
-
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatChartRadarStyle();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
-
- config.radiusAxis = this.radiusAxis;
- config.angleAxis = this.angleAxis;
- config.radiusAxis[0].formatter = self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators);
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.radiusAxis[0].formatter);
- config.radiusAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + title : title;
- config.radiusAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.chartType = "radar";
- delete config.xAxis;
- delete config.yAxis;
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.radiusAxis[0].formatter, this.config.chartFont);
-
- // 全局样式
- config.legend.style = this.config.chartFont;
- config.radiusAxis[0].title.style = config.radiusAxis[0].labelStyle = this.config.chartFont;
- config.angleAxis[0].title.style = config.angleAxis[0].labelStyle = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatChartRadarStyle () {
- switch (self.config.chartRadarType) {
- case BICst.CHART_SHAPE.POLYGON:
- config.plotOptions.shape = "polygon";
- break;
- case BICst.CHART_SHAPE.CIRCLE:
- config.plotOptions.shape = "circle";
- break;
- }
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- config.plotOptions.tooltip.formatter.valueFormat = formatter;
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- chartRadarType: options.chartRadarType || c.POLYGON,
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.STYLE_NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- cordon: options.cordon || [],
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.RADAR);
- });
- types.push(type);
- });
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.RadarChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.radar_chart", BI.RadarChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.rangearea.js b/src/addons/chart/chart/chart.rangearea.js
deleted file mode 100644
index d692a7455..000000000
--- a/src/addons/chart/chart/chart.rangearea.js
+++ /dev/null
@@ -1,284 +0,0 @@
-/**
- * 图表控件
- * @class BI.RangeAreaChart
- * @extends BI.Widget
- * 范围面积图的构造范围的两组item的必须有对应y值item1完全大于item2
- */
-BI.RangeAreaChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.RangeAreaChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-range-area-chart"
- });
- },
-
- _init: function () {
- BI.RangeAreaChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "category",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.RangeAreaChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
- _formatConfig: function (config, items) {
- var self = this;
- var title = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.connectNulls = this.config.nullContinue;
-
- config.yAxis = this.yAxis;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + title : title;
- BI.extend(config.yAxis[0], {
- lineWidth: this.config.lineWidth,
- showLabel: this.config.showLabel,
- enableTick: this.config.enableTick,
- enableMinorTick: this.config.enableMinorTick,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- reversed: config.yAxis[0].reversed = this.config.leftYAxisReversed,
- formatter: self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators)
- });
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS, config.yAxis[0].formatter);
-
- config.xAxis[0].title.align = "center";
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle : "";
- BI.extend(config.xAxis[0], {
- lineWidth: this.config.lineWidth,
- enableTick: this.config.enableTick,
- labelRotation: this.config.textDirection,
- gridLineWidth: this.config.showGridLine === true ? 1 : 0,
- maxHeight: "40%"
- });
-
- config.chartType = "area";
- config.plotOptions.tooltip.formatter.identifier = "${CATEGORY}${VALUE}";
-
- // 为了给数据标签加个%,还要遍历所有的系列,唉
- this.formatDataLabelForAxis(config.plotOptions.dataLabels.enabled, items, config.yAxis[0].formatter, this.config.chartFont);
-
- // 全局样式的图表文字
- this.setFontStyle(this.config.chartFont, config);
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatNumberLevelInYaxis (type, position, formatter) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- if (position === item.yAxis) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- }
- });
- });
- config.plotOptions.tooltip.formatter.valueFormat = formatter;
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- _formatItems: function (data) {
- var o = this.options;
- var items = [];
- BI.each(data, function (idx, item) {
- items = BI.concat(items, item);
- });
- if (BI.isEmptyArray(items)) {
- return [];
- }
- if (items.length === 1) {
- return [items];
- }
- var colors = this.config.chartColor || [];
- if (BI.isEmptyArray(colors)) {
- colors = ["#5caae4"];
- }
- var seriesMinus = [];
- BI.each(items[0].data, function (idx, item) {
- var res = items[1].data[idx].y - item.y;
- seriesMinus.push({
- x: items[1].data[idx].x,
- y: res,
- targetIds: items[1].data[idx].targetIds
- });
- });
- items[1] = {
- data: seriesMinus,
- name: items[1].name,
- stack: "stackedArea",
- fillColor: colors[0]
- };
- BI.each(items, function (idx, item) {
- if (idx === 0) {
- BI.extend(item, {
- name: items[0].name,
- fillColorOpacity: 0,
- stack: "stackedArea",
- marker: {enabled: false},
- fillColor: "#000000"
- });
- }
- });
- return [items];
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- chartStyle: options.chartStyle || c.NORMAL,
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- leftYAxisReversed: options.leftYAxisReversed || false,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- textDirection: options.textDirection || 0,
- cordon: options.cordon || [],
- lineWidth: BI.isNull(options.lineWidth) ? 1 : options.lineWidth,
- showLabel: BI.isNull(options.showLabel) ? true : options.showLabel,
- enableTick: BI.isNull(options.enableTick) ? true : options.enableTick,
- enableMinorTick: BI.isNull(options.enableMinorTick) ? true : options.enableMinorTick,
- numSeparators: options.numSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE,
- nullContinue: options.nullContinue || false
- };
- this.options.items = items;
-
- var types = [];
- var type = [];
- BI.each(items, function (idx, axisItems) {
- type.push(BICst.WIDGET.AREA);
- });
- if (BI.isNotEmptyArray(type)) {
- types.push(type);
- }
-
- this.combineChart.populate(this._formatItems(items), types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.RangeAreaChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.range_area_chart", BI.RangeAreaChart);
\ No newline at end of file
diff --git a/src/addons/chart/chart/chart.scatter.js b/src/addons/chart/chart/chart.scatter.js
deleted file mode 100644
index 9fabe6808..000000000
--- a/src/addons/chart/chart/chart.scatter.js
+++ /dev/null
@@ -1,266 +0,0 @@
-/**
- * 图表控件
- * @class BI.ScatterChart
- * @extends BI.Widget
- */
-BI.ScatterChart = BI.inherit(BI.AbstractChart, {
-
- _defaultConfig: function () {
- return BI.extend(BI.ScatterChart.superclass._defaultConfig.apply(this, arguments), {
- baseCls: "bi-scatter-chart"
- });
- },
-
- _init: function () {
- BI.ScatterChart.superclass._init.apply(this, arguments);
- var self = this, o = this.options;
- this.xAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "bottom",
- gridLineWidth: 0
- }];
- this.yAxis = [{
- type: "value",
- title: {
- style: this.constants.FONT_STYLE
- },
- labelStyle: this.constants.FONT_STYLE,
- position: "left",
- gridLineWidth: 0
- }];
- this.combineChart = BI.createWidget({
- type: "bi.combine_chart",
- xAxis: this.xAxis,
- popupItemsGetter: o.popupItemsGetter,
- formatConfig: BI.bind(this._formatConfig, this),
- element: this.element
- });
- this.combineChart.on(BI.CombineChart.EVENT_CHANGE, function (obj) {
- self.fireEvent(BI.ScatterChart.EVENT_CHANGE, obj);
- });
- this.combineChart.on(BI.CombineChart.EVENT_ITEM_CLICK, function (obj) {
- self.fireEvent(BI.AbstractChart.EVENT_ITEM_CLICK, obj);
- });
- },
-
-
- _formatConfig: function (config, items) {
- var self = this;
- delete config.zoom;
- config.colors = this.config.chartColor;
- config.style = formatChartStyle();
- config.plotOptions.marker = {symbol: "circle", radius: 4.5, enabled: true};
- formatCordon();
- this.formatChartLegend(config, this.config.chartLegend);
- config.plotOptions.dataLabels.enabled = this.config.showDataLabel;
- config.plotOptions.dataLabels.formatter.identifier = "${X}${Y}";
-
- config.yAxis = this.yAxis;
- config.xAxis = this.xAxis;
-
- config.yAxis[0].formatter = self.formatTickInXYaxis(this.config.leftYAxisStyle, this.config.leftYAxisNumberLevel, this.config.numSeparators);
- formatNumberLevelInYaxis(this.config.leftYAxisNumberLevel);
- config.yAxis[0].title.text = getXYAxisUnit(this.config.leftYAxisNumberLevel, this.constants.LEFT_AXIS);
- config.yAxis[0].title.text = this.config.showLeftYAxisTitle === true ? this.config.leftYAxisTitle + config.yAxis[0].title.text : config.yAxis[0].title.text;
- config.yAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.yAxis[0].title.rotation = this.constants.ROTATION;
- config.yAxis[0].maxWidth = "40%";
-
- config.xAxis[0].formatter = self.formatTickInXYaxis(this.config.xAxisStyle, this.config.xAxisNumberLevel, this.config.rightNumSeparators);
- formatNumberLevelInXaxis(this.config.xAxisNumberLevel);
- config.xAxis[0].title.text = getXYAxisUnit(this.config.xAxisNumberLevel, this.constants.X_AXIS);
- config.xAxis[0].title.text = this.config.showXAxisTitle === true ? this.config.xAxisTitle + config.xAxis[0].title.text : config.xAxis[0].title.text;
- config.xAxis[0].title.align = "center";
- config.xAxis[0].gridLineWidth = this.config.showGridLine === true ? 1 : 0;
- config.xAxis[0].maxHeight = "40%";
- config.chartType = "scatter";
-
- if (BI.isNotEmptyArray(this.config.tooltip)) {
- config.plotOptions.tooltip.formatter = function () {
- var y = self.formatTickInXYaxis(self.config.leftYAxisStyle, self.config.leftYAxisNumberLevel, self.config.numSeparators)(this.y);
- var x = self.formatTickInXYaxis(self.config.xAxisStyle, self.config.xAxisNumberLevel, self.config.rightNumSeparators)(this.x);
- return this.seriesName + "(X)" + self.config.tooltip[0]
- + ":" + x + "
(Y)" + self.config.tooltip[1] + ":" + y + "
";
- };
- }
-
- if (config.plotOptions.dataLabels.enabled === true) {
- BI.each(items, function (idx, item) {
- item.dataLabels = {
- style: self.config.chartFont,
- align: "outside",
- autoAdjust: true,
- enabled: true,
- formatter: {
- identifier: "${X}${Y}",
- XFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- },
- YFormat: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- }
- }
- };
- item.dataLabels.formatter.XFormat = config.xAxis[0].formatter;
- item.dataLabels.formatter.YFormat = config.yAxis[0].formatter;
- });
- }
-
- // 全局样式图表文字
- config.legend.style = this.config.chartFont;
- config.yAxis[0].title.style = config.yAxis[0].labelStyle = this.config.chartFont;
- config.xAxis[0].title.style = config.xAxis[0].labelStyle = this.config.chartFont;
-
- return [items, config];
-
- function formatChartStyle () {
- switch (self.config.chartStyle) {
- case BICst.CHART_STYLE.STYLE_GRADUAL:
- return "gradual";
- case BICst.CHART_STYLE.STYLE_NORMAL:
- default:
- return "normal";
- }
- }
-
- function formatCordon () {
- BI.each(self.config.cordon, function (idx, cor) {
- if (idx === 0 && self.xAxis.length > 0) {
- var magnify = self.calcMagnify(self.config.xAxisNumberLevel);
- self.xAxis[0].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "top"
- }
- });
- });
- }
- if (idx > 0 && self.yAxis.length >= idx) {
- var magnify = 1;
- switch (idx - 1) {
- case self.constants.LEFT_AXIS:
- magnify = self.calcMagnify(self.config.leftYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS:
- magnify = self.calcMagnify(self.config.rightYAxisNumberLevel);
- break;
- case self.constants.RIGHT_AXIS_SECOND:
- magnify = self.calcMagnify(self.config.rightYAxisSecondNumberLevel);
- break;
- }
- self.yAxis[idx - 1].plotLines = BI.map(cor, function (i, t) {
- return BI.extend(t, {
- value: t.value.div(magnify),
- width: 1,
- label: {
- style: self.config.chartFont,
- text: t.text,
- align: "left"
- }
- });
- });
- }
- });
- }
-
- function formatNumberLevelInXaxis (type) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.x = self.formatXYDataWithMagnify(da.x, magnify);
- });
- });
- }
-
- function formatNumberLevelInYaxis (type) {
- var magnify = self.calcMagnify(type);
- BI.each(items, function (idx, item) {
- BI.each(item.data, function (id, da) {
- da.y = self.formatXYDataWithMagnify(da.y, magnify);
- });
- });
- }
-
- function getXYAxisUnit (numberLevelType, position) {
- var unit = "";
- switch (numberLevelType) {
- case BICst.TARGET_STYLE.NUM_LEVEL.NORMAL:
- unit = "";
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.TEN_THOUSAND:
- unit = BI.i18nText("BI-Wan");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.MILLION:
- unit = BI.i18nText("BI-Million");
- break;
- case BICst.TARGET_STYLE.NUM_LEVEL.YI:
- unit = BI.i18nText("BI-Yi");
- break;
- }
- if (position === self.constants.X_AXIS) {
- self.config.xAxisUnit !== "" && (unit = unit + self.config.xAxisUnit);
- }
- if (position === self.constants.LEFT_AXIS) {
- self.config.leftYAxisUnit !== "" && (unit = unit + self.config.leftYAxisUnit);
- }
- if (position === self.constants.RIGHT_AXIS) {
- self.config.rightYAxisUnit !== "" && (unit = unit + self.config.rightYAxisUnit);
- }
- return unit === "" ? unit : "(" + unit + ")";
- }
- },
-
- populate: function (items, options) {
- options || (options = {});
- var self = this, c = this.constants;
- this.config = {
- leftYAxisTitle: options.leftYAxisTitle || "",
- chartColor: options.chartColor || [],
- leftYAxisStyle: options.leftYAxisStyle || c.NORMAL,
- xAxisStyle: options.xAxisStyle || c.NORMAL,
- showXAxisTitle: options.showXAxisTitle || false,
- showLeftYAxisTitle: options.showLeftYAxisTitle || false,
- xAxisNumberLevel: options.xAxisNumberLevel || c.NORMAL,
- leftYAxisNumberLevel: options.leftYAxisNumberLevel || c.NORMAL,
- xAxisUnit: options.xAxisUnit || "",
- leftYAxisUnit: options.leftYAxisUnit || "",
- xAxisTitle: options.xAxisTitle || "",
- chartLegend: options.chartLegend || c.LEGEND_BOTTOM,
- showDataLabel: options.showDataLabel || false,
- showGridLine: BI.isNull(options.showGridLine) ? true : options.showGridLine,
- cordon: options.cordon || [],
- tooltip: options.tooltip || [],
- numSeparators: options.numSeparators || false,
- rightNumSeparators: options.rightNumSeparators || false,
- chartFont: options.chartFont || c.FONT_STYLE
- };
- this.options.items = items;
- var types = [];
- BI.each(items, function (idx, axisItems) {
- var type = [];
- BI.each(axisItems, function (id, item) {
- type.push(BICst.WIDGET.SCATTER);
- });
- types.push(type);
- });
- this.combineChart.populate(items, types);
- },
-
- resize: function () {
- this.combineChart.resize();
- },
-
- magnify: function () {
- this.combineChart.magnify();
- }
-});
-BI.ScatterChart.EVENT_CHANGE = "EVENT_CHANGE";
-BI.shortcut("bi.scatter_chart", BI.ScatterChart);
\ No newline at end of file
diff --git a/src/addons/chart/factory.charts.js b/src/addons/chart/factory.charts.js
deleted file mode 100644
index f31b75a17..000000000
--- a/src/addons/chart/factory.charts.js
+++ /dev/null
@@ -1,291 +0,0 @@
-BI.ChartCombineFormatItemFactory = {
- combineItems: function (types, items) {
- var calItems = BI.values(items);
- return BI.map(calItems, function (idx, item) {
- return BI.ChartCombineFormatItemFactory.formatItems(types[idx], item);
- });
- },
-
- formatItems: function (type, items) {
- var item = {};
- switch (type) {
- case BICst.WIDGET.BAR:
- case BICst.WIDGET.ACCUMULATE_BAR:
- case BICst.WIDGET.COMPARE_BAR:
- item = BI.extend({type: "bar"}, items);
- break;
- case BICst.WIDGET.BUBBLE:
- item = BI.extend({type: "bubble"}, items);
- break;
- case BICst.WIDGET.FORCE_BUBBLE:
- item = BI.extend({type: "forceBubble"}, items);
- break;
- case BICst.WIDGET.SCATTER:
- item = BI.extend({type: "scatter"}, items);
- break;
- case BICst.WIDGET.AXIS:
- case BICst.WIDGET.ACCUMULATE_AXIS:
- case BICst.WIDGET.PERCENT_ACCUMULATE_AXIS:
- case BICst.WIDGET.COMPARE_AXIS:
- case BICst.WIDGET.FALL_AXIS:
- item = BI.extend({type: "column"}, items);
- break;
- case BICst.WIDGET.LINE:
- item = BI.extend({type: "line"}, items);
- break;
- case BICst.WIDGET.AREA:
- case BICst.WIDGET.ACCUMULATE_AREA:
- case BICst.WIDGET.COMPARE_AREA:
- case BICst.WIDGET.RANGE_AREA:
- case BICst.WIDGET.PERCENT_ACCUMULATE_AREA:
- item = BI.extend({type: "area"}, items);
- break;
- case BICst.WIDGET.DONUT:
- item = BI.extend({type: "pie"}, items);
- break;
- case BICst.WIDGET.RADAR:
- case BICst.WIDGET.ACCUMULATE_RADAR:
- item = BI.extend({type: "radar"}, items);
- break;
- case BICst.WIDGET.PIE:
- item = BI.extend({type: "pie"}, items);
- break;
- case BICst.WIDGET.DASHBOARD:
- item = BI.extend({type: "gauge"}, items);
- break;
- case BICst.WIDGET.MAP:
- item = BI.extend({type: "areaMap"}, items);
- break;
- case BICst.WIDGET.GIS_MAP:
- item = BI.extend({type: "pointMap"}, items);
- break;
- default:
- item = BI.extend({type: "column"}, items);
- break;
- }
- return item;
- },
-
- combineConfig: function () {
- return {
- title: "",
- chartType: "column",
- plotOptions: {
- rotatable: false,
- startAngle: 0,
- borderRadius: 0,
- endAngle: 360,
- innerRadius: "0.0%",
- layout: "horizontal",
- hinge: "rgb(101,107,109)",
- dataLabels: {
- autoAdjust: true,
- style: {fontFamily: "inherit", color: "inherit", fontSize: "12px"},
- formatter: {
- identifier: "${VALUE}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat,
- XFormat: this._contentFormat2Decimal,
- YFormat: this._contentFormat2Decimal,
- sizeFormat: this._contentFormat2Decimal
- },
- align: "outside",
- enabled: false
- },
- percentageLabel: {
- formatter: {
- identifier: "${PERCENT}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat
- },
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- },
- align: "bottom",
- enabled: true
- },
- valueLabel: {
- formatter: {
- identifier: "${SERIES}${VALUE}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat
- },
- backgroundColor: "rgb(255,255,0)",
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- },
- align: "inside",
- enabled: true
- },
- hingeBackgroundColor: "rgb(220,242,249)",
- seriesLabel: {
- formatter: {
- identifier: "${CATEGORY}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat
- },
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- },
- align: "bottom",
- enabled: true
- },
- paneBackgroundColor: "rgb(252,252,252)",
- needle: "rgb(229,113,90)",
- large: false,
- connectNulls: false,
- shadow: true,
- curve: false,
- sizeBy: "area",
- tooltip: {
- formatter: {
- identifier: "${SERIES}${X}${Y}${SIZE}{CATEGORY}${SERIES}${VALUE}",
- valueFormat: this._contentFormat2Decimal,
- seriesFormat: this._contentFormat,
- percentFormat: this._contentFormatPercentage,
- categoryFormat: this._contentFormat,
- XFormat: this._contentFormat2Decimal,
- sizeFormat: this._contentFormat2Decimal,
- YFormat: this._contentFormat2Decimal
- },
- shared: false,
- padding: 5,
- backgroundColor: "rgba(0,0,0,0.4980392156862745)",
- borderColor: "rgb(0,0,0)",
- shadow: false,
- borderRadius: 2,
- borderWidth: 0,
- follow: false,
- enabled: true,
- animation: true,
- style: {
- fontFamily: "Microsoft YaHei, Hiragino Sans GB W3",
- color: "#c4c6c6",
- fontSize: "12px",
- fontWeight: ""
- }
- },
- maxSize: 80,
- fillColorOpacity: 0.5,
- step: false,
- force: false,
- minSize: 15,
- displayNegative: true,
- categoryGap: "16.0%",
- borderColor: "rgb(255,255,255)",
- borderWidth: 1,
- gap: "22.0%",
- animation: true,
- lineWidth: 2,
- bubble: {
- large: false,
- connectNulls: false,
- shadow: true,
- curve: false,
- sizeBy: "area",
- maxSize: 80,
- minSize: 15,
- lineWidth: 0,
- animation: true,
- fillColorOpacity: 0.699999988079071,
- marker: {
- symbol: "circle",
- radius: 28.39695010101295,
- enabled: true
- }
- }
- },
- dTools: {
- enabled: false,
- style: {
- fontFamily: "Microsoft YaHei, Hiragino Sans GB W3",
- color: "#1a1a1a",
- fontSize: "12px"
- },
- backgroundColor: "white"
- },
- dataSheet: {
- enabled: false,
- borderColor: "rgb(0,0,0)",
- borderWidth: 1,
- formatter: this._contentFormat2Decimal,
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- }
- },
- borderColor: "rgb(238,238,238)",
- shadow: false,
- legend: {
- borderColor: "rgb(204,204,204)",
- borderRadius: 0,
- shadow: false,
- borderWidth: 0,
- visible: true,
- style: {
- fontFamily: "inherit", color: "inherit", fontSize: "12px"
- },
- position: "right",
- enabled: false
- },
- rangeLegend: {
- range: {
- min: 0,
- color: [
- [
- 0,
- "rgb(182,226,255)"
- ],
- [
- 0.5,
- "rgb(109,196,255)"
- ],
- [
- 1,
- "rgb(36,167,255)"
- ]
- ],
- max: 266393
- },
- enabled: false
- },
- zoom: {zoomType: "xy", zoomTool: {visible: false, resize: true, from: "", to: ""}},
- plotBorderColor: "rgba(255,255,255,0)",
- tools: {
- hidden: false,
- toImage: {enabled: false},
- sort: {enabled: false},
- fullScreen: {enabled: false},
- refresh: {
- enabled: false
- }
- },
- plotBorderWidth: 0,
- style: "normal",
- colors: ["rgb(99,178,238)", "rgb(118,218,145)"],
- borderRadius: 0,
- borderWidth: 0,
- plotShadow: false,
- plotBorderRadius: 0
- };
- },
-
- _contentFormat: function () {
- return BI.contentFormat(arguments[0], "");
- },
-
- _contentFormat2Decimal: function () {
- return BI.contentFormat(arguments[0], "#.##;-#.##");
- },
-
- _contentFormatPercentage: function () {
- return BI.contentFormat(arguments[0], "#.##%;-#.##%");
- }
-};
\ No newline at end of file
diff --git a/src/core/proto/date.i18n.js b/src/core/proto/date.i18n.js
new file mode 100644
index 000000000..1ef77e287
--- /dev/null
+++ b/src/core/proto/date.i18n.js
@@ -0,0 +1,62 @@
+$(function () {
+ // 牵扯到国际化这些常量在页面加载后再生效
+ // full day names
+ Date._DN = [BI.i18nText("BI-Basic_Sunday"),
+ BI.i18nText("BI-Basic_Monday"),
+ BI.i18nText("BI-Basic_Tuesday"),
+ BI.i18nText("BI-Basic_Wednesday"),
+ BI.i18nText("BI-Basic_Thursday"),
+ BI.i18nText("BI-Basic_Friday"),
+ BI.i18nText("BI-Basic_Saturday"),
+ BI.i18nText("BI-Basic_Sunday")];
+
+ // short day names
+ Date._SDN = [BI.i18nText("BI-Basic_Simple_Sunday"),
+ BI.i18nText("BI-Basic_Simple_Monday"),
+ BI.i18nText("BI-Basic_Simple_Tuesday"),
+ BI.i18nText("BI-Basic_Simple_Wednesday"),
+ BI.i18nText("BI-Basic_Simple_Thursday"),
+ BI.i18nText("BI-Basic_Simple_Friday"),
+ BI.i18nText("BI-Basic_Simple_Saturday"),
+ BI.i18nText("BI-Basic_Simple_Sunday")];
+
+ // Monday first, etc.
+ Date._FD = 1;
+
+ // full month namesdat
+ Date._MN = [
+ BI.i18nText("BI-Basic_January"),
+ BI.i18nText("BI-Basic_February"),
+ BI.i18nText("BI-Basic_March"),
+ BI.i18nText("BI-Basic_April"),
+ BI.i18nText("BI-Basic_May"),
+ BI.i18nText("BI-Basic_June"),
+ BI.i18nText("BI-Basic_July"),
+ BI.i18nText("BI-Basic_August"),
+ BI.i18nText("BI-Basic_September"),
+ BI.i18nText("BI-Basic_October"),
+ BI.i18nText("BI-Basic_November"),
+ BI.i18nText("BI-Basic_December")];
+
+ // short month names
+ Date._SMN = [0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11];
+
+ Date._QN = ["", BI.i18nText("BI-Quarter_1"),
+ BI.i18nText("BI-Quarter_2"),
+ BI.i18nText("BI-Quarter_3"),
+ BI.i18nText("BI-Quarter_4")];
+
+ /** Adds the number of days array to the Date object. */
+ Date._MD = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+});
\ No newline at end of file
diff --git a/src/core/proto/date.js b/src/core/proto/date.js
index a2c3e4095..67d29437f 100644
--- a/src/core/proto/date.js
+++ b/src/core/proto/date.js
@@ -1,65 +1,3 @@
-$(function () {
- // 牵扯到国际化这些常量在页面加载后再生效
- // full day names
- Date._DN = [BI.i18nText("BI-Basic_Sunday"),
- BI.i18nText("BI-Basic_Monday"),
- BI.i18nText("BI-Basic_Tuesday"),
- BI.i18nText("BI-Basic_Wednesday"),
- BI.i18nText("BI-Basic_Thursday"),
- BI.i18nText("BI-Basic_Friday"),
- BI.i18nText("BI-Basic_Saturday"),
- BI.i18nText("BI-Basic_Sunday")];
-
- // short day names
- Date._SDN = [BI.i18nText("BI-Basic_Simple_Sunday"),
- BI.i18nText("BI-Basic_Simple_Monday"),
- BI.i18nText("BI-Basic_Simple_Tuesday"),
- BI.i18nText("BI-Basic_Simple_Wednesday"),
- BI.i18nText("BI-Basic_Simple_Thursday"),
- BI.i18nText("BI-Basic_Simple_Friday"),
- BI.i18nText("BI-Basic_Simple_Saturday"),
- BI.i18nText("BI-Basic_Simple_Sunday")];
-
- // Monday first, etc.
- Date._FD = 1;
-
- // full month namesdat
- Date._MN = [
- BI.i18nText("BI-Basic_January"),
- BI.i18nText("BI-Basic_February"),
- BI.i18nText("BI-Basic_March"),
- BI.i18nText("BI-Basic_April"),
- BI.i18nText("BI-Basic_May"),
- BI.i18nText("BI-Basic_June"),
- BI.i18nText("BI-Basic_July"),
- BI.i18nText("BI-Basic_August"),
- BI.i18nText("BI-Basic_September"),
- BI.i18nText("BI-Basic_October"),
- BI.i18nText("BI-Basic_November"),
- BI.i18nText("BI-Basic_December")];
-
- // short month names
- Date._SMN = [0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11];
-
- Date._QN = ["", BI.i18nText("BI-Quarter_1"),
- BI.i18nText("BI-Quarter_2"),
- BI.i18nText("BI-Quarter_3"),
- BI.i18nText("BI-Quarter_4")];
-
- /** Adds the number of days array to the Date object. */
- Date._MD = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-});
/** Constants used for time computations */
Date.SECOND = 1000;
@@ -86,7 +24,7 @@ Date.prototype.getMonthDays = function (month) {
return 29;
}
return Date._MD[month];
-
+
};
/**
@@ -546,7 +484,7 @@ Date.getDate = function () {
return new Date(utc + Date.timeZone);// + Pool.timeZone.offset);
}
return dt;
-
+
};
Date.getTime = function () {
@@ -594,5 +532,5 @@ Date.getTime = function () {
return dt.getTime() - Date.timeZone - dt.getTimezoneOffset() * 60000;
}
return dt.getTime();
-
+
};