(function () { var editor = null; UM.registerWidget('formula', { tpl: "formula.css\">" + "
" + "" + "
" + "
", sourceData: { formula: { 'common': [ "{/}frac{ }{ }", "^{ }/_{ }", "x^{ }", "x_{ }", "x^{ }_{ }", "{/}bar{ }", "{/}sqrt{ }", "{/}nthroot{ }{ }", "{/}sum^{ }_{n=}", "{/}sum", "{/}log_{ }", "{/}ln", "{/}int_{ }^{ }", "{/}oint_{ }^{ }" ], 'symbol': [ "+", "-", "{/}pm", "{/}times", "{/}ast", "{/}div", "/", "{/}bigtriangleup", "=", "{/}ne", "{/}approx", ">", "<", "{/}ge", "{/}le", "{/}infty", "{/}cap", "{/}cup", "{/}because", "{/}therefore", "{/}subset", "{/}supset", "{/}subseteq", "{/}supseteq", "{/}nsubseteq", "{/}nsupseteq", "{/}in", "{/}ni", "{/}notin", "{/}mapsto", "{/}leftarrow", "{/}rightarrow", "{/}Leftarrow", "{/}Rightarrow", "{/}leftrightarrow", "{/}Leftrightarrow" ], 'letter': [ "{/}alpha", "{/}beta", "{/}gamma", "{/}delta", "{/}varepsilon", "{/}varphi", "{/}lambda", "{/}mu", "{/}rho", "{/}sigma", "{/}omega", "{/}Gamma", "{/}Delta", "{/}Theta", "{/}Lambda", "{/}Xi", "{/}Pi", "{/}Sigma", "{/}Upsilon", "{/}Phi", "{/}Psi", "{/}Omega" ] } }, initContent: function (_editor, $widget) { var me = this, formula = me.sourceData.formula, lang = _editor.getLang('formula').static, formulaUrl = UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/formula/', options = $.extend({}, lang, { 'formula_url': formulaUrl }), $root = me.root(); if (me.inited) { me.preventDefault(); return; } me.inited = true; editor = _editor; me.$widget = $widget; $root.html($.parseTmpl(me.tpl, options)); me.tabs = $.eduitab({selector: "#edui-formula-tab-Jpanel"}); /* 初始化popup的内容 */ var headHtml = [], xMax = 0, yMax = 0, $tabContent = me.root().find('.edui-tab-content'); $.each(formula, function (k, v) { var contentHtml = []; $.each(v, function (i, f) { contentHtml.push('
  • '); if (++xMax >=8) { ++yMax; xMax = 0; } }); yMax++; xMax = 0; $tabContent.append('
    '); headHtml.push('
  • ' + lang['lang_tab_' + k] + '
  • '); }); headHtml.push('
  • '); $root.find('.edui-tab-nav').html(headHtml.join('')); $root.find('.edui-tab-content').append('
    '); /* 选中第一个tab */ me.switchTab(0); }, initEvent: function () { var me = this; //防止点击过后关闭popup me.root().on('click', function (e) { return false; }); //点击tab切换菜单 me.root().find('.edui-tab-nav').delegate('.edui-tab-item', 'click', function (evt) { me.switchTab(this); return false; }); //点击选中公式 me.root().find('.edui-tab-pane').delegate('.edui-formula-latex-item', 'click', function (evt) { var $item = $(this), latex = $item.attr('data-latex') || ''; if (latex) { me.insertLatex(latex.replace("{/}", "\\")); } me.$widget.edui().hide(); return false; }); }, switchTab:function(index){ var me = this, $root = me.root(), index = $.isNumeric(index) ? index:$.inArray(index, $root.find('.edui-tab-nav .edui-tab-item')); $root.find('.edui-tab-nav .edui-tab-item').removeClass('edui-active').eq(index).addClass('edui-active'); $root.find('.edui-tab-content .edui-tab-pane').removeClass('edui-active').eq(index).addClass('edui-active'); /* 自动长高 */ me.autoHeight(0); }, autoHeight: function () { this.$widget.height(this.root() + 2); }, insertLatex: function (latex) { editor.execCommand('formula', latex ); }, width: 350, height: 400 }); })();