12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /**
- * yvan.grid.js
- * @author luoyifan
- * 2018-12-27 10:17:00
- */
- 'use strict';
- (function ($) {
- if (!echarts) {
- console.warn('no echarts!!');
- return;
- }
- function resizeMe() {
- var $panel = $(this);
- var $chart = $panel.down('echarts');
- var state = $.data($chart[0], 'echarts');
- state.handle.resize();
- }
- function bindEvents(target) {
- var $panel = $(target).parent();
- if ($panel.data().hasOwnProperty('panel')) {
- $panel.panel({ onResize: resizeMe });
- resizeMe.call($panel[0]);
- }
- }
- function show(target) {
- var state = $.data(target, 'echarts');
- var opts = state.options;
- state.handle.setOption(opts);
- }
- $.fn.echarts = function (options, param) {
- if (typeof options === 'string') {
- return $.fn.echarts.methods[options](this, param);
- }
- options = options || {};
- return this.each(function () {
- var state = $.data(this, 'echarts');
- if (state) {
- $.extend(state.options, options);
- } else {
- state = $.data(this, 'echarts', {
- options: $.extend({}, $.fn.echarts.defaults, options),
- handle: echarts.init(this)
- });
- }
- //setSize(this);
- bindEvents(this);
- show(this);
- });
- };
- $.fn.echarts.methods = {
- options: function (jq) {
- return $.data(jq[0], 'echarts').options;
- },
- setOption: function (jq, options) {
- return jq.each(function () {
- var state = $.data(this, 'echarts');
- $.extend(state.options, options);
- show(this);
- });
- }
- };
- //扩展到 power.xtype
- $.extend($.fn.power.defaults.xtype, {
- 'echarts': function ($target, item, context) {
- item.id = item.id || $.yvan.createId('echarts');
- var $dom = $('<div></div>');
- $.yvan.fillCommonProperties($dom, item);
- $dom.css({ width: '100%', height: '100%' });
- $target.append($dom);
- $dom.echarts(item);
- return $dom;
- }
- });
- $.fn.echarts.defaults = {};
- })(jQuery);
|