www.gusucode.com > Catfish(鲶鱼) CMS系统 PHP版 v4.8.21源码程序 > Catfishcms_v4.8.21/public/common/umeditor/dialogs/formula/formula.js
(function () { var editor = null; UM.registerWidget('formula', { tpl: "<link type=\"text/css\" rel=\"stylesheet\" href=\"<%=formula_url%>formula.css\">" + "<div class=\"edui-formula-wrapper\">" + "<ul class=\"edui-tab-nav\"></ul>" + "<div class=\"edui-tab-content\"></div>" + "</div>", 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('<li class="edui-formula-latex-item" data-latex="' + f + '" style="background-position:-' + (xMax * 30) + 'px -' + (yMax * 30) + 'px"></li>'); if (++xMax >=8) { ++yMax; xMax = 0; } }); yMax++; xMax = 0; $tabContent.append('<div class="edui-tab-pane"><ul>' + contentHtml.join('') + '</ul>'); headHtml.push('<li class="edui-tab-item"><a href="javascript:void(0);" class="edui-tab-text">' + lang['lang_tab_' + k] + '</a></li>'); }); headHtml.push('<li class="edui-formula-clearboth"></li>'); $root.find('.edui-tab-nav').html(headHtml.join('')); $root.find('.edui-tab-content').append('<div class="edui-formula-clearboth"></div>'); /* 选中第一个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 }); })();