1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | Sales2013 = new Meteor.Collection("regional_sales"); if (Meteor.is_client) { Template.salesdata.dataset = function () { return Sales2013.find({}); }; Template.datapoint.selected = function () { return Session.equals("selected_datapoint", this._id) ? "selected" : ''; }; Template.datapoint.events = { 'click': function () { Session.set("selected_datapoint", this._id); } }; Template.salesdata.rendered = function() { $('.editable').editable(function(value, settings) { Sales2013.update(Session.get("selected_datapoint"), {$set: {total: parseInt(value)}}); return(value); }, { type : 'text', style : 'inherit', width : 100, submit : 'OK', }); var cur = Sales2013.find(); if (cur.count() === 0) // do not render pie if no data return; var data = []; cur.forEach( function(sale) { data.push( [sale.region, sale.total]); }); var plot1 = $.jqplot ('chart', [data], { seriesDefaults: { // Make this a pie chart. renderer: $.jqplot.PieRenderer, rendererOptions: { // Put data labels on the pie slices. // By default, labels show the percentage of the slice. showDataLabels: true } }, legend: { show:true, location: 'e' } } ); } } if (Meteor.is_server) { Meteor.startup(function () { Sales2013.remove({}); Sales2013.insert({region:"US East", total: 2032333}); Sales2013.insert({region:"US Central", total: 150332}); Sales2013.insert({region:"US West", total: 1202412}); Sales2013.insert({region:"Asia Pacific", total: 701223}); }); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <head> <title>Sales by Region</title> </head> <body> <div id="title"> <h1>Global Sales 2013</h1> </div> <div id="container"> <div id="salestable"> {{> salesdata}} </div> <div id="chart"> </div> </div> </body> <template name="salesdata"> <div class="salesdata"> {{#each dataset}} {{> datapoint}} {{/each}} </div> </template> <template name="datapoint"> <div class="datapoint {{selected}}"> <span class="region">{{region}}</span> <span class="sales editable">{{total}}</span> </div> </template> |
1 2 3 4 5 6 7 8 9 | if (Meteor.is_server) { Meteor.startup(function () { Sales2013.remove({}); Sales2013.insert({region:"US East", total: 2032333}); Sales2013.insert({region:"US Central", total: 150332}); Sales2013.insert({region:"US West", total: 1202412}); Sales2013.insert({region:"Asia Pacific", total: 701223}); }); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | Template.salesdata.rendered= function() { $('.editable').editable(function(value, settings) { Sales2013.update(Session.get("selected_datapoint"), {$set: {total: parseInt(value)}}); return(value); }, { type : 'text', style : 'inherit', width : 100, submit : 'OK', }); var cur = Sales2013.find(); if (cur.count() === 0) // do not render pie if no data return; var data = []; cur.forEach( function(sale) { data.push( [sale.region, sale.total]); }); var plot1 = $.jqplot ('chart', [data], { seriesDefaults: { // Make this a pie chart. renderer: $.jqplot.PieRenderer, rendererOptions: { // Put data labels on the pie slices. // By default, labels show the percentage of the slice. showDataLabels: true } }, legend: { show:true, location: 'e' } } ); } |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |