| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | 
							- UE.plugin.register('charts', function (){
 
-     var me = this;
 
-     return {
 
-         bindEvents: {
 
-             'chartserror': function () {
 
-             }
 
-         },
 
-         commands:{
 
-             'charts': {
 
-                 execCommand: function ( cmd, data ) {
 
-                     var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table', true),
 
-                         flagText = [],
 
-                         config = {};
 
-                     if ( !tableNode ) {
 
-                         return false;
 
-                     }
 
-                     if ( !validData( tableNode ) ) {
 
-                         me.fireEvent( "chartserror" );
 
-                         return false;
 
-                     }
 
-                     config.title = data.title || '';
 
-                     config.subTitle = data.subTitle || '';
 
-                     config.xTitle = data.xTitle || '';
 
-                     config.yTitle = data.yTitle || '';
 
-                     config.suffix = data.suffix || '';
 
-                     config.tip = data.tip || '';
 
-                     //数据对齐方式
 
-                     config.dataFormat = data.tableDataFormat || '';
 
-                     //图表类型
 
-                     config.chartType = data.chartType || 0;
 
-                     for ( var key in config ) {
 
-                         if ( !config.hasOwnProperty( key ) ) {
 
-                             continue;
 
-                         }
 
-                         flagText.push( key+":"+config[ key ] );
 
-                     }
 
-                     tableNode.setAttribute( "data-chart", flagText.join( ";" ) );
 
-                     domUtils.addClass( tableNode, "edui-charts-table" );
 
-                 },
 
-                 queryCommandState: function ( cmd, name ) {
 
-                     var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table', true);
 
-                     return tableNode && validData( tableNode ) ? 0 : -1;
 
-                 }
 
-             }
 
-         },
 
-         inputRule:function(root){
 
-             utils.each(root.getNodesByTagName('table'),function( tableNode ){
 
-                 if ( tableNode.getAttr("data-chart") !== undefined ) {
 
-                     tableNode.setAttr("style");
 
-                 }
 
-             })
 
-         },
 
-         outputRule:function(root){
 
-             utils.each(root.getNodesByTagName('table'),function( tableNode ){
 
-                 if ( tableNode.getAttr("data-chart") !== undefined ) {
 
-                     tableNode.setAttr("style", "display: none;");
 
-                 }
 
-             })
 
-         }
 
-     }
 
-     function validData ( table ) {
 
-         var firstRows = null,
 
-             cellCount = 0;
 
-         //行数不够
 
-         if ( table.rows.length < 2 ) {
 
-             return false;
 
-         }
 
-         //列数不够
 
-         if ( table.rows[0].cells.length < 2 ) {
 
-             return false;
 
-         }
 
-         //第一行所有cell必须是th
 
-         firstRows = table.rows[ 0 ].cells;
 
-         cellCount = firstRows.length;
 
-         for ( var i = 0, cell; cell = firstRows[ i ]; i++ ) {
 
-             if ( cell.tagName.toLowerCase() !== 'th' ) {
 
-                 return false;
 
-             }
 
-         }
 
-         for ( var i = 1, row; row = table.rows[ i ]; i++ ) {
 
-             //每行单元格数不匹配, 返回false
 
-             if ( row.cells.length != cellCount ) {
 
-                 return false;
 
-             }
 
-             //第一列不是th也返回false
 
-             if ( row.cells[0].tagName.toLowerCase() !== 'th' ) {
 
-                 return false;
 
-             }
 
-             for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) {
 
-                 var value = utils.trim( ( cell.innerText || cell.textContent || '' ) );
 
-                 value = value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' );
 
-                 //必须是数字
 
-                 if ( !/^\d*\.?\d+$/.test( value ) ) {
 
-                     return false;
 
-                 }
 
-             }
 
-         }
 
-         return true;
 
-     }
 
- });
 
 
  |