This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
nezha-nezha-fronted/nezha-fronted/src/components/chart/chart.vue

102 lines
2.6 KiB
Vue
Raw Normal View History

2021-11-19 09:40:21 +08:00
<template>
<div class="nz-chart">
<chart-no-data v-if="isNoData"></chart-no-data>
<template v-else>
<chart-time-series
v-if="isTimeSeries(chartInfo.type)"
:chart-data="chartData"
:chart-info="chartInfo"
:chart-option="chartOption"
></chart-time-series>
2021-11-30 17:15:29 +08:00
<chartHexagon
:ref="'chart'+chartInfo.id"
v-if="isHexagonFigure(chartInfo.type)"
:chart-data="chartData"
:chart-info="chartInfo"
:chart-option="chartOption"
></chartHexagon>
</template>
</div>
2021-11-19 09:40:21 +08:00
</template>
<script>
import chartAssetInfo from './chart/chartAssetInfo'
import chartBar from './chart/chartBar'
import chartClock from './chart/chartClock'
import chartDiagram from './chart/chartDiagram'
import chartEndpointInfo from './chart/chartEndpointInfo'
import chartGauge from './chart/chartGauge'
import chartGroup from './chart/chartGroup'
import chartLog from './chart/chartLog'
import chartNoData from './chart/chartNoData'
import chartPie from './chart/chartPie'
import chartStat from './chart/chartStat'
import chartTable from './chart/chartTable'
import chartText from './chart/chartText'
import chartTimeSeries from './chart/chartTimeSeries'
import chartTreemap from './chart/chartTreemap'
import chartUrl from './chart/chartUrl'
import chartValue from './chart/chartValue'
2021-11-30 16:39:21 +08:00
import chartHexagon from './chart/chartHexagon'
import { getOption, isTimeSeries, isHexagonFigure } from './chart/tools'
import lodash from 'lodash'
2021-11-19 09:40:21 +08:00
export default {
name: 'chart',
components: {
chartAssetInfo,
chartBar,
chartClock,
chartDiagram,
chartEndpointInfo,
chartGauge,
chartGroup,
chartLog,
chartNoData,
chartPie,
chartStat,
chartTable,
chartText,
chartTimeSeries,
chartTreemap,
chartUrl,
2021-11-30 16:39:21 +08:00
chartValue,
chartHexagon
},
props: {
chartInfo: Object,
chartData: [Object, Array, String], // 数据查询后传入chart组件chart组件内不查询只根据接传递的数据来渲染
customChartOption: Object // 需要自定义echarts的option时传入非必须传入该值时仍需传对应格式的chartData
},
data () {
return {
}
},
computed: {
isNoData () {
return !this.chartData || this.chartData.length === 0
},
chartOption () {
if (this.customChartOption) {
return lodash.cloneDeep(this.customChartOption)
} else {
return getOption(this.chartInfo.type)
}
}
},
methods: {
2021-11-30 16:39:21 +08:00
isTimeSeries,
isHexagonFigure,
resize () {
this.$refs['chart' + this.chartInfo.id].resize()
}
},
mounted () {
}
2021-11-19 09:40:21 +08:00
}
</script>
<style scoped>
</style>