UNPKG

iep-ui

Version:

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

110 lines (102 loc) 3.11 kB
'use strict'; 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] )] ); } };