12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- (function () {
- Vue.component('bar-chart', {
- template: '<div class="chart_box" >\
- <div v-show="!isEmpty" :id="chartid" class="chart_box"></div>\
- <div class="noData" v-show="isEmpty" class="chart-no-data">\
- <p v-show="isEmpty" style="text-align: center">{{title}}</p>\
- <img src="../../bigData/images/noData.png" alt="">\
- 暂无数据\
- </div>\
- </div>',
- props: ['config'],
- data: function () {
- return {
- chartid: _.uniqueId("chart_"),
- chart: null,
- isEmpty: false,
- title:''
- }
- },
- mounted: function () {
- var that =this;
- this.$nextTick(function () {
- that.chart = echarts.init(document.getElementById(that.chartid));
- if (that.config) {
- that.chart.setOption(that.setOption( that.config));
- }
- })
- },
- methods: {
- setOption: function (options) {
- var vm = this;
- if(!options)return
- var options = $.extend({}, defaults, options);
- vm.chart.on('click', function (param){
- vm.$emit('click-item', {param:param});
- });
-
- return options
- }
- },
- watch: {
- config: function (data) {
- if (data) {
- debugger
- if(!data.series[0].data){
- this.isEmpty = true;
- this.title =data.title && data.title.text; //无数据时渲染的标题
- }else{
- if(data.series[0].data.length == 0){
- this.isEmpty = true;
- this.title =data.title && data.title.text; //无数据时渲染的标题
- }
- }
- this.chart.setOption(this.setOption(data));
- }
- }
- }
- })
- var defaults = {
- }
- })()
|