UNPKG

iep-ui

Version:

An enterprise-class UI design language and Vue-based implementation

193 lines (179 loc) 4.83 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _vueTypes = require('../_util/vue-types'); var _vueTypes2 = _interopRequireDefault(_vueTypes); var _chartTemplate = require('../chart-template'); var _chartTemplate2 = _interopRequireDefault(_chartTemplate); var _propsUtil = require('../_util/props-util'); var _lodash = require('lodash'); var _colorUtils = require('../toolkits/colorUtils'); var _colorUtils2 = _interopRequireDefault(_colorUtils); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = { name: 'IepSolidBarChart', props: (0, _propsUtil.mergeProps)({ xData: _vueTypes2['default'].array.def(function () { return []; }), yData: _vueTypes2['default'].array.def(function () { return []; }), barWidth: _vueTypes2['default'].number.def(20), color: _vueTypes2['default'].array.def(function () { return ['#65EDFF', '#0077EA']; }), theme: _vueTypes2['default'].oneOf(['dark', 'light']).def('dark'), mixinOptions: _vueTypes2['default'].object.def(function () {}) }, _chartTemplate2['default'].props), render: function render() { var h = arguments[0]; var _$props = this.$props, xData = _$props.xData, yData = _$props.yData, mixinOptions = _$props.mixinOptions, theme = _$props.theme, color = _$props.color, barWidth = _$props.barWidth; var colors = { type: 'linear', x: 0, x2: 1, y: 0, y2: 1, colorStops: [{ offset: 0, color: color[0] }, { offset: 1, color: color[1] }, { offset: 0, color: color[0] }, { offset: 1, color: color[1] }] }; var barColors = { type: 'linear', x: 1, x2: 0, y: 0, y2: 0, colorStops: [{ offset: 1, color: color[0] }, { offset: 0, color: color[0] }, { offset: 0, color: color[0] }, { offset: 0, color: color[1] }] }; var props = (0, _extends3['default'])({}, (0, _lodash.omit)(this.$props, ['xData', 'yData', 'options', 'mixinOptions', 'theme', 'color']), { options: (0, _extends3['default'])({ grid: { containLabel: true, left: 0, right: 0, bottom: 0, top: '3%' }, xAxis: { axisLabel: { color: theme === 'dark' ? '#888' : '#999999', fontSize: 12, interval: 0 }, splitLine: { show: false }, axisLine: { lineStyle: { color: theme === 'dark' ? '#888' : 'rgba(153, 153, 153, 0.3)', width: 1 }, show: true }, data: xData, type: 'category' }, yAxis: { axisLabel: { color: theme === 'dark' ? '#888' : '#999999', fontSize: 12 }, splitLine: { show: theme === 'light', lineStyle: { color: theme === 'dark' ? '#fff' : 'rgba(153, 153, 153, 0.3)', type: 'dashed' } }, axisLine: { lineStyle: { color: theme === 'dark' ? '#888' : 'rgba(153, 153, 153, 0.3)', width: 1 }, show: true } }, series: [{ data: yData, type: 'bar', barWidth: barWidth, itemStyle: { normal: { color: colors } }, label: { show: true, position: 'top', distance: 10, color: theme === 'dark' ? '#fff' : '#333333' } }, { data: yData, type: 'bar', barWidth: 1.8, barGap: '-52%', itemStyle: { normal: { color: barColors } } }, { z: 3, type: 'pictorialBar', symbolPosition: 'end', data: yData, symbol: 'diamond', symbolOffset: ['24%', '-50%'], symbolSize: [barWidth, barWidth / 2], itemStyle: { normal: { color: _colorUtils2['default'].lighten(color[1], 0.46) } } }], tooltip: { trigger: 'axis', formatter: '{b} : {c}', axisPointer: { type: 'shadow' } } }, mixinOptions) }); return h(_chartTemplate2['default'], { props: props }); } };