Ext.define('PhysicsEvaluationSystemV1.view.base.BaseCharts', { extend : 'Ext.panel.Panel', xtype : 'basecharts', html : '<div id="main" style="width: 600px; height: 400px;"></div>', // myChart : null, config : { options : { tooltip : {}, /* * title : { text : "ECharts 入门示例" }, */ legend : { data : [ '销量' ] }, xAxis : { data : [ "衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子" ] }, yAxis : {}, series : [ { name : '销量', type : 'bar', data : [ 5, 20, 36, 10, 10, 20 ] } ], } }, mouseEvents : function() { var menuLeft = Ext.create('Ext.menu.Menu', { width : 100, plain : true }); var menuRight = Ext.create('Ext.menu.Menu', { width : 100, plain : true }); menuRight.plain = true; menuRight.add({ id : 'right_1', text : 'right_1' }); menuRight.add({ id : 'right_2', text : 'right_2' }); menuRight.add({ id : 'right_3', text : 'right_3' }); var me = this; // /////////////左鍵 me.myChart.on('click', function(params) { menuLeft.remove("left_1");// 移除第一个菜单项 menuLeft.insert({// 插入第一个菜单项 id : "left_1", text : params.data }); Ext.getBody().on("click", function(e) { menuLeft.showAt(e.getPoint()); // 显示在当前位置 }); }); // //////////////右鍵 me.myChart.on('contextmenu', function(params) { Ext.getBody().on("contextmenu", function(e) { menuRight.showAt(e.getPoint()); // 显示在当前位置 }); document.oncontextmenu = function() { return false; }; }); // //////////////鼠标移出 me.myChart.on('mouSEOut', function(params) { Ext.getBody().on("contextmenu", function(e) { menuRight.hide(); // 隐藏 }); Ext.getBody().on("click", function(e) { menuLeft.hide(); }); document.oncontextmenu = function() { return true; }; }); }, renderCharts : function(width, height) { var me = this; if (!me.myChart) { me.myChart = echarts.init(document.getElementById('main')); } me.myChart.setoption(me.options); me.myChart.resize({ width : width * 0.8, height : height * 0.8, silent : false }); }, browserResize : function(panelWidth, panelHeight) { var me = this; var initialWindowHeight = window.outerHeight; var initialWindowWidth = window.outerWidth; window.onresize = function() { // 根据浏览器与panel的比例同步缩放 var rateOfheight = initialWindowHeight / window.outerHeight; var rateOfWidth = initialWindowWidth / window.outerWidth; var newPanelHeight = me.getHeight() / rateOfheight; var newPanelWidth = me.getWidth() / rateOfWidth; me.setHeight(newPanelHeight); me.setWidth(newPanelWidth); me.renderCharts(newPanelWidth, newPanelHeight); } }, listeners : { 'afterrender' : function() { var me = this; me.renderCharts(me.getWidth(), me.getHeight()); me.mouseEvents(); }, 'resize' : function() { var me = this; me.renderCharts(me.getWidth(), me.getHeight()); me.browserResize(me.getWidth(), me.getHeight()); } } }); 测试用例: <!DOCTYPE html> <html> <head> <Meta charset="utf-8"> <title>EChartsTest</title> <link rel="stylesheet" href="build/development/PhysicsEvaluationSystemV1/classic/resources/PhysicsEvaluationSystemV1-all_1.css" /> <script type="text/javascript" src="ext/build/ext-all.js"></script> <script type="text/javascript" src="app/view/base/BaseCharts.js" charset="gbk"></script> <script src="echarts.js"></script> </head> <body> <script type="text/javascript"> Ext.create('PhysicsEvaluationSystemV1.view.base.BaseCharts',{ title:'Echarts+Extjs Test', height:'600px', width:'1000px', //layout:'fit', resizable : true, renderTo : Ext.getBody() }); </script> </body> </html>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。