2021-11-19 09:40:21 +08:00
|
|
|
|
<template>
|
2021-11-26 20:13:54 +08:00
|
|
|
|
<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 16:39:21 +08:00
|
|
|
|
<!-- <chartHexagon-->
|
|
|
|
|
|
<!-- :ref="'chart'+chartInfo.id"-->
|
|
|
|
|
|
<!-- v-if="isHexagonFigure(chartInfo.type)"-->
|
|
|
|
|
|
<!-- :chart-data="chartData"-->
|
|
|
|
|
|
<!-- :chart-info="chartInfo"-->
|
|
|
|
|
|
<!-- :chart-option="chartOption"-->
|
|
|
|
|
|
<!-- ></chartHexagon>-->
|
2021-11-26 20:13:54 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
</div>
|
2021-11-19 09:40:21 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2021-11-26 20:13:54 +08:00
|
|
|
|
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'
|
2021-11-26 20:13:54 +08:00
|
|
|
|
import lodash from 'lodash'
|
|
|
|
|
|
|
2021-11-19 09:40:21 +08:00
|
|
|
|
export default {
|
2021-11-26 20:13:54 +08:00
|
|
|
|
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
|
2021-11-26 20:13:54 +08:00
|
|
|
|
},
|
|
|
|
|
|
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()
|
|
|
|
|
|
}
|
2021-11-26 20:13:54 +08:00
|
|
|
|
},
|
|
|
|
|
|
mounted () {
|
|
|
|
|
|
}
|
2021-11-19 09:40:21 +08:00
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|