iep-ui
Version:
An enterprise-class UI design language and Vue-based implementation
110 lines (102 loc) • 3.11 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _vueTypes = require('../_util/vue-types');
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _enum = require('./enum');
var _lodash = require('lodash');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
exports['default'] = {
name: 'Tooltip',
props: {
chartData: {
type: Object,
'default': function _default() {}
},
theme: _vueTypes2['default'].oneOf(['dark', 'light']).def('dark')
},
data: function data() {
return {};
},
render: function render() {
var h = arguments[0];
var chartData = this.$props.chartData;
var eventVNodes = null;
var footerNodes = function footerNodes() {
return chartData.list.map(function (item) {
var dom = '';
if (chartData.mode === 'air') {
switch (item.name) {
case 'weather':
dom = h('img', {
attrs: { src: item.icon }
});
break;
case 'windDirection':
dom = (0, _lodash.isNumber)(item.rotate) ? h('img', {
attrs: { src: _enum.WIND },
style: { transform: 'rotate(' + item.rotate * -1 + 'deg)' } }) : '--';
break;
default:
dom = h('span', [item.value, item.mark ? h(
'span',
{ style: 'padding: 0 5px' },
[item.mark]
) : '', !isNaN(item.value * 1) ? item.unit : '']);
break;
}
} else {
dom = h('span', [item.value, !isNaN(item.value * 1) ? item.unit : '']);
}
if (item.event) {
eventVNodes = h(
'div',
{ 'class': 'tooltip-multiple-footer-item' },
[h(
'div',
{ 'class': 'tooltip-multiple-footer-item-left' },
[h('img', {
attrs: { src: _enum.WARN }
}), h('span', ['\u4E8B\u4EF6'])]
), h(
'div',
{ 'class': 'tooltip-multiple-footer-item-right' },
[h('span', [item.event])]
)]
);
}
return h(
'div',
{ 'class': 'tooltip-multiple-footer-item' },
[h(
'div',
{ 'class': 'tooltip-multiple-footer-item-left' },
[h('span', {
style: {
'--bg-color': item.color && item.color !== 'transparent' ? item.color : '#116EFA'
}
}), h('span', [item.text])]
), h(
'div',
{ 'class': 'tooltip-multiple-footer-item-right' },
[dom]
)]
);
});
};
return h(
'div',
{ 'class': ['tooltip-multiple', 'tooltip-multiple-inner-' + this.theme] },
[h(
'div',
{ 'class': 'tooltip-multiple-header' },
[chartData.title]
), h(
'div',
{ 'class': 'tooltip-multiple-footer' },
[footerNodes(), eventVNodes]
)]
);
}
};
;