skycaiji/public/static/js/admin.js

96 lines
37 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
|--------------------------------------------------------------------------
| SkyCaiji (蓝天采集器)
|--------------------------------------------------------------------------
| Copyright (c) 2018 https://www.skycaiji.com All rights reserved.
|--------------------------------------------------------------------------
| 使用协议 https://www.skycaiji.com/licenses
|--------------------------------------------------------------------------
*/
'use strict';var admincpOp={getConfig:function(key){var cpConfig=window.site_config.admincp;cpConfig=cpConfig?cpConfig:{};return key?cpConfig[key]:cpConfig},init:function(){var bodyWidth=$(document.body).width();var cpConfig=admincpOp.getConfig(null);if(cpConfig.skin){$('body').removeClass('skin-blue').addClass(cpConfig.skin)}
var menuOpts={};if(bodyWidth>767){if(cpConfig.mini==1){$('body').addClass('sidebar-collapse').addClass('sidebar-mini')}
if(cpConfig.narrow==1){$('body').addClass('layout-boxed')}
menuOpts={animationSpeed:300};if(window.navigator.userAgent.indexOf('MSIE')>-1){menuOpts={animationSpeed:0}}}else{menuOpts={animationSpeed:0}}
$('.sidebar-menu').tree(menuOpts);$(document).ready(function(){$('#treeview_skins').bind('click',function(){if($('#sidebar_skins').html().length<=0){admincpOp.skins()}});if(bodyWidth>767){if(cpConfig.mini==1){$('#chk_sidebar_mini').prop('checked',!0)}
$('#chk_sidebar_mini').bind('click',function(){var setMini=$(this).is(':checked')?1:0;admincpOp.config('mini',setMini,function(){if(setMini){$('body').addClass('sidebar-collapse').addClass('sidebar-mini')}else{$('body').removeClass('sidebar-collapse').removeClass('sidebar-mini')}})});$('.sidebar-toggle[data-toggle="push-menu"]').bind('click',function(){$('body').addClass('sidebar-mini')});if(cpConfig.narrow==1){$('#chk_sidebar_narrow').prop('checked',!0)}
$('#chk_sidebar_narrow').bind('click',function(){var setNarrow=$(this).is(':checked')?1:0;admincpOp.config('narrow',setNarrow,function(){if(setNarrow){$('body').addClass('layout-boxed')}else{$('body').removeClass('layout-boxed')}})})}else{$('#chk_sidebar_mini').parents('li').eq(0).hide();$('#chk_sidebar_narrow').parents('li').eq(0).hide()}
if($('#menu_backstage_task').length>0){$('#menu_backstage_task').bind('click',function(){windowModal('采集任务',ulink('admin/backstage/backstageTask'),{lg:1})});winBackstageTask.count()}})},config:function(op,val,successFunc){ajaxOpen({type:'post',url:ulink('backstage/admincp'),data:{op:op,val:val},success:function(data){if(successFunc&&typeof(successFunc)=='function'){successFunc()}}})},skins:function(){var skinList={'blue':{'name':window.tpl_lang.skin_blue,'top_l_style':'background:#367fa9','top_r_class':'bg-light-blue','left_style':'background: #222d32','right_style':'background: #f4f5f7'},'black':{'name':window.tpl_lang.skin_black,'top_style':'box-shadow: 0 0 2px rgba(0,0,0,0.1)','top_l_style':'background: #fefefe','top_r_style':'background: #fefefe','left_style':'background: #222','right_style':'background: #f4f5f7'},'purple':{'name':window.tpl_lang.skin_purple,'top_l_class':'bg-purple-active','top_r_class':'bg-purple','left_style':'background: #222d32','right_style':'background: #f4f5f7'},'green':{'name':window.tpl_lang.skin_green,'top_l_class':'bg-green-active','top_r_class':'bg-green','left_style':'background: #222d32','right_style':'background: #f4f5f7'},'red':{'name':window.tpl_lang.skin_red,'top_l_class':'bg-red-active','top_r_class':'bg-red','left_style':'background: #222d32','right_style':'background: #f4f5f7'},'yellow':{'name':window.tpl_lang.skin_yellow,'top_l_class':'bg-yellow-active','top_r_class':'bg-yellow','left_style':'background: #222d32','right_style':'background: #f4f5f7'},'blue-light':{'name':window.tpl_lang.skin_blue_light,'top_l_style':'background: #367fa9','top_r_class':'bg-light-blue','left_style':'background: #f9fafc"','right_style':'background: #f4f5f7'},'black-light':{'name':window.tpl_lang.skin_black_light,'top_style':'box-shadow: 0 0 2px rgba(0,0,0,0.1)','top_l_style':'background: #fefefe','top_r_style':'background: #fefefe','left_style':'background: #f9fafc','right_style':'background: #f4f5f7'},'purple-light':{'name':window.tpl_lang.skin_purple_light,'top_l_class':'bg-purple-active','top_r_class':'bg-purple','left_style':'background: #f9fafc','right_style':'background: #f4f5f7'},'green-light':{'name':window.tpl_lang.skin_green_light,'top_l_class':'bg-green-active','top_r_class':'bg-green','left_style':'background: #f9fafc','right_style':'background: #f4f5f7'},'red-light':{'name':window.tpl_lang.skin_red_light,'top_l_class':'bg-red-active','top_r_class':'bg-red','left_style':'background: #f9fafc','right_style':'background: #f4f5f7'},'yellow-light':{'name':window.tpl_lang.skin_yellow_light,'top_l_class':'bg-yellow-active','top_r_class':'bg-yellow','left_style':'background: #f9fafc','right_style':'background: #f4f5f7'},};var html='<ul class="list-unstyled clearfix">';for(var skin in skinList){var skinSet=skinList[skin];html+='<li style="float:left; width: 33.33333%; padding: 5px;">'+'<a href="javascript:void(0)" data-skin="skin-'+skin+'" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">'+'<div style="'+(skinSet.top_style?skinSet.top_style:'')+'">'+'<span style="display:block; width: 20%; float: left; height: 7px; '+(skinSet.top_l_style?skinSet.top_l_style:'')+'" class="'+(skinSet.top_l_class?skinSet.top_l_class:'')+'"></span>'+'<span class="'+(skinSet.top_r_class?skinSet.top_r_class:'')+'" style="display:block; width: 80%; float: left; height: 7px; '+(skinSet.top_r_style?skinSet.top_r_style:'')+'"></span></div>'+'<div><span style="display:block; width: 20%; float: left; height: 20px; '+(skinSet.left_style?skinSet.left_style:'')+'"></span><span style="display:block; width: 80%; float: left; height: 20px; '+(skinSet.right_style?skinSet.right_style:'')+'"></span>'+'</div>'+'</a>'+'<p class="text-center no-margin">'+skinSet.name+'</p>';+'</li>'}
html+='</ul>';$('#sidebar_skins').html(html);$('#sidebar_skins li a[data-skin]').bind('click',function(){var skin=$(this).attr('data-skin');admincpOp.config('skin',skin,function(){for(var i in skinList){i='skin-'+i;$('body').removeClass(i)}
$('body').addClass(skin)})})}};function insertAtCaret(myField,myValue){myField=$(myField);var curObj=myField[0];if(document.selection){myField.focus();var sel=document.selection.createRange();sel.text=myValue;sel.select()}else if(curObj.selectionStart||curObj.selectionStart=='0'){var startPos=curObj.selectionStart;var endPos=curObj.selectionEnd;var restoreTop=curObj.scrollTop;var value=myField.val();value=value.substring(0,startPos)+myValue+value.substring(endPos,value.length);myField.val(value);myField.focus();curObj.selectionStart=startPos+myValue.length;curObj.selectionEnd=startPos+myValue.length}else{myField.val(myField.val()+myValue);myField.focus()}}
function urlUsertoken(){return'_usertoken_='+encodeURIComponent(window.site_config.usertoken)}
function openStoreUrl(url){if(url.indexOf('clientinfo=')<0&&window.site_config.clientinfo){url+=(url.indexOf('?')>-1?'&':'?')+'clientinfo='+encodeURIComponent(window.site_config.clientinfo)}
window.open(url,'_blank')}
function eleExchange(box,move,ele,options){if(!isObject(options)){options={}}
if(!window.ele_exchange_is_touch){window.ele_exchange_is_touch=1;if('ontouchstart' in window||navigator.maxTouchPoints){window.ele_exchange_is_touch=2}}
if(window.ele_exchange_is_touch==2){$(box).on('click',move,function(){var obj=$(this).parents(ele).eq(0);var next=obj.next(ele);if(next.length>0){next.after(obj)}})}else{var curTrTds={};$(box).on('mousedown',move,function(){var obj=$(this).parents(ele).eq(0);if(obj.is('tr')){curTrTds={};obj.children('th,td').each(function(index){curTrTds[index]={width:$(this).width(),colspan:toInt($(this).attr('colspan')),hidden:$(this).is(':hidden')?true:!1}})}});var sOpts={items:ele,handle:move,axis:'y',start:function(event,ui){if(ui&&ui.item){var obj=$(ui.item[0]);if(obj.is('tr')){obj.children('th,td').each(function(index){var curTrTd=curTrTds[index];if(isObject(curTrTd)){$(this).width(curTrTd.width);if(curTrTd.colspan>0){$(this).attr('colspan',curTrTd.colspan)}
if(curTrTd.hidden){$(this).hide()}}});$('.ui-sortable-placeholder').children('th,td').each(function(index){var curTrTd=curTrTds[index];if(isObject(curTrTd)){$(this).width(curTrTd.width);if(curTrTd.colspan>0){$(this).attr('colspan',curTrTd.colspan)}
if(curTrTd.hidden){$(this).hide()}}})}}}};for(var i in options){sOpts[i]=options[i]}
$(box).sortable(sOpts)}}
function showPanelCollapse(id){$(id).parent().find('a[data-toggle][href="'+id+'"]').attr('aria-expanded',!0).removeClass('collapsed');$(id).addClass('in').attr('aria-expanded',!0).attr('style','')}
function inputSelectCustom(sltObj,iptName,onOptions,customName,changeFunc){customName=customName?customName:'custom';var onChangeFunc=function(curObj,iptEle){var ipt=$(curObj).parents('.input-select-custom').eq(0).find(iptEle);if($(curObj).val()==customName){ipt.show()}else{ipt.hide()}
if(changeFunc&&typeof(changeFunc)=='function'){changeFunc()}};if(sltObj&&iptName){$(sltObj).bind('change',function(){onChangeFunc(this,'[name="'+iptName+'"]')})}else if(onOptions&&typeof(onOptions)=='object'){$(onOptions.box).on('change',onOptions.slt,function(){onChangeFunc(this,onOptions.ipt)})}}
function visualizeData(data){var cacheData=data;data=isNull(data)?'':data;var options={lg:1,hidden_func:function(){window.win_visualize_data=null}};if(dataIsJson(data)){var jsonId='json_'+generateUUID();modal('JSON解析','<div id="'+jsonId+'"></div>',options);var jsonTreeFunc=function(){window.tool_json_tree.treeId='#'+jsonId;window.tool_json_tree.load(data)};if(window.tool_json_tree){jsonTreeFunc()}else{$.getScript(window.site_config.pub+'/static/js/admin/tool_json_tree.js',jsonTreeFunc)}}else{options.loaded_func=function(){data=data.replace(/<script[^<>]*>[\s\S]*?<\/script>/ig,'');data=data.replace(/<meta[^<>]*charset[^<>]*>/i,'');var ifrId='#myModalIframe';$(ifrId).bind('load',function(){if($(ifrId).contents().find('body').html().length<=0){$(ifrId).contents().find('body').html(data)}});$(ifrId).contents().find('body').html(data)};var title='HTML预览';if(data&&data.indexOf('<pre>')===0){title='HTML代码'}
windowIframe(title,'',options)}(function(data){if(data){$('#myModal .modal-footer .close').addClass('btn btn-default').removeClass('close');$('#myModal .modal-footer').prepend('<button type="button" class="btn btn-info btn-back" data-dismiss="modal">返回</button>');$('#myModal .modal-footer .btn-back').bind('click',function(){visualizeData(data)})}})(window.win_visualize_data);window.win_visualize_data=cacheData}
function cpEasyBrowser(url,pageSource,inputUrls){pageSource=pageSource?pageSource:'';inputUrls=inputUrls?inputUrls:{};var data={type:'browser_url',page_source:pageSource,test_url:url,input_urls:inputUrls};data=JSON.stringify(data);window.top.postMessage(data,'*')}
function cpBrowserUrl(collId,pageSource,testUrl,inputedUrls){inputedUrls=inputedUrls?inputedUrls:{};var url='cpattern_test/browser?coll_id=_collid_&page_source=_source_&test_url=_url_';if(inputedUrls){for(var i in inputedUrls){url+='&'+i+'='+encodeURIComponent(inputedUrls[i])}}
url=ulink(url,{'_collid_':collId,'_source_':pageSource,'_url_':testUrl});return url}
var pluginFuncOp={load:function(params){params=params?params:{};var cacheParams=params;var boxObj=$(params.boxObj);var funcObj=boxObj.find(params.funcObj);var paramObj=params.paramObj?boxObj.find(params.paramObj):null;var funcVal=params.funcVal?params.funcVal:'';var winCacheName='win_cache_plugin_func_'+params.module;boxObj.find('.plugin-func-refresh').off('click').bind('click',function(){window[winCacheName]=null;funcObj.removeAttr('data-is-loaded');funcObj.find('[data-is-func]').remove();cacheParams.show_refresh=1;pluginFuncOp.load(cacheParams);return!1});if(paramObj&&paramObj.length>0){if(!funcObj.attr('data-change-pla')){funcObj.attr('data-change-pla',1);funcObj.bind('change',function(){var reStrFunc=function(str){if(str){var regLineR=new RegExp("\\\\r",'g');var regLineN=new RegExp("\\\\n",'g');str=str.replace(regLineR,"\r").replace(regLineN,"\n")}else{str=''}
return str};paramObj=boxObj.find(params.paramObj);var placeholder=paramObj.attr('data-placeholder');placeholder=reStrFunc(placeholder);if($(this).val()){var sltOption=$(this).find('option:selected');var funcPrams=sltOption.attr('data-params');funcPrams=funcPrams?funcPrams:'';var funcComment=sltOption.attr('data-comment');funcComment=funcComment?funcComment:'';if(funcPrams||funcComment){if(funcPrams){placeholder+="\r\n函数参数:"+reStrFunc(funcPrams)}
if(funcComment){placeholder+="\r\n函数注释:"+reStrFunc(funcComment)}}}
var rows=3;if(placeholder){var regLine=new RegExp("[\\r\\n]+",'g');var matchLine=placeholder.split(regLine);if(matchLine&&typeof(matchLine)=='object'){rows=parseInt(matchLine.length)+1}}
if(rows>8){rows=8}
if(rows<3){rows=3}
paramObj.attr('placeholder',placeholder).attr('rows',rows)})}}
var setFuncVal=function(){funcObj.val(funcVal).trigger('change')};var optEptObj=funcObj.find('option[value=""]');if(optEptObj.length<=0){optEptObj=null}
if(funcObj.attr('data-is-loaded')){setFuncVal()}else{if(params.cache&&window[winCacheName]){funcObj.attr('data-is-loaded',1);if(optEptObj){optEptObj.after(window[winCacheName])}else{funcObj.append(window[winCacheName])}
setFuncVal()}else{var funcUrl=ulink('collector/plugin_func?module=_module_',{'_module_':params.module});ajaxOpen({type:'GET',dataType:'json',url:funcUrl,async:params.cache?false:!0,success:function(data){if(funcObj.attr('data-is-loaded')){setFuncVal()}else{funcObj.attr('data-is-loaded',1);if(data.code==1){var html='';var apps=data.data;if(apps&&typeof(apps)=='object'){for(var app in apps){var appData=apps[app];appData=appData?appData:{};var methods=appData.methods;if(methods){html+='<optgroup label="'+htmlspecialchars(appData.name+''+app+'')+'" data-is-func="1">';for(var m in methods){var mMethod=methods[m];mMethod=mMethod?mMethod:{};html+='<option value="'+app+':'+m+'" data-params="'+(mMethod.params?mMethod.params:'')+'" data-comment="'+(mMethod.comment?mMethod.comment:'')+'">'+m+''+(mMethod.comment_cut?mMethod.comment_cut:'')+'</option>'}
html+='</optgroup>'}}}
if(optEptObj){optEptObj.after(html)}else{funcObj.append(html)}
if(params.cache){window[winCacheName]=html}}}
if(params.show_refresh){toastr.success('已刷新')}},error:function(xhr,status,error){funcObj.removeAttr('data-is-loaded');toastr.error('函数插件载入失败:'+status+' '+error+' <a href="'+funcUrl+'" target="_blank" style="color:#ddd;">查看详细</a>')},complete:function(xhr,status){setFuncVal()}})}}},addHtml:function(params,module){if(!isObject(params)){params={}}
var funcData=isObject(params.funcData)?params.funcData:{};var funcName=params.funcName?params.funcName:'';var funcParamName=params.funcParamName?params.funcParamName:'';var tplId=params.tplId?params.tplId:'';tplId='#'+tplId;var listId=params.listId?params.listId:'';listId='#'+listId;var funcId=params.funcId?params.funcId:'';var html=$(tplId).html();html=$(html);var randId=generateUUID();funcName=funcName.replace('{id}',randId);funcParamName=funcParamName.replace('{id}',randId);funcId=funcId.replace('{id}',randId);html.find('[data-func-a]').attr('href','#'+funcId).html('使用函数'+(funcData.func?(''+funcData.func):''));html.find('[data-func-panel]').attr('id',funcId);html.find('[data-func-func]').attr('name',funcName);html.find('[data-func-func-param]').attr('name',funcParamName).val(funcData.func_param?funcData.func_param:'');$(listId).append(html);var loadParams={'boxObj':funcId?$('#'+funcId):html.find('[data-func-panel]'),'module':module,'funcObj':'[name="'+funcName+'"]','paramObj':'[name="'+funcParamName+'"]','funcVal':funcData.func};pluginFuncOp.load(loadParams)},initHtml:function(listObj){$(listObj).on('click','a[data-func-insert]',function(){var val=$(this).attr('data-func-insert');if(val){var obj=$(this).parents('[data-func-box]').eq(0).find('textarea[data-func-func-param]');insertAtCaret(obj,obj.val()?("\r\n"+val):val)}});$(listObj).on('click','a[data-func-remove]',function(){var curObj=$(this);confirmRight('确定删除?',function(){curObj.parents('[data-func-box]').eq(0).remove()})});eleExchange(listObj,'a[data-func-move]','[data-func-box]')},tips:function(module){var tips='';if(module=='process'||module=='contentSign'){tips='<p>如需扩展系统函数,请在根目录/data/config.php中添加配置</p>'+"<p>'EXTEND_PROCESS_FUNC'=&gt;array('PHP函数名'=&gt;'描述')</p>"+'<p>如需扩展插件函数,可创建<a href="'+ulink('develop/func?module='+module)+'" target="_blank">函数插件</a></p>'}else if(module=='processIf'){tips='<p>选择函数,取反可获取函数结果的相反值</p>'+'<p>默认将当前字段作为参数传入,如需传入多个参数,一行一个值,可输入任何内容或调用字段</p>'+'<p>请按函数传参,否则运行出错!</p>'+'<p>如需扩展系统函数,请在根目录/data/config.php中添加配置</p>'+"<p>'EXTEND_PROCESS_IF'=&gt;array('PHP函数名'=&gt;'描述')</p>"+'<p>如需扩展插件函数,可创建<a href="'+ulink('develop/func?module=processIf')+'" target="_blank">函数插件</a></p>'}else if(module=='downloadImg'||module=='downloadFile'){window.open(ulink('develop/func?module='+module));return!1}
confirmRight({msg:tips,yes:'确定',width:500,textAlign:'left'})}};function tipsCurlPost(){var tips='<p>表单数据模拟form表单输入的数据</p><p>表单上传模拟form表单输入并上传的数据</p>'+'<p>JSON数组以json格式发送数据可在“发送数据”的“值”中直接输入json字符串。在“名称”中填入json数组键名根节点名称使用###表示,子节点名称使用.分隔例如a.b.c</p>';confirmRight({msg:tips,yes:'确定',width:500,textAlign:'left'})}
function collectorWindow(title,uri,uriVals,options){options=options?options:{};options.backdrop_static=1;title=isNull(title)?'':title;title+='<div class="loading-sm" style="margin-left:5px;"></div>';window.win_collector_window_params={title:title,uri:uri,uriVals:uriVals,options:options};windowModal(title,ulink('admin/collector/echo_msg?op=run'),{lg:options.lg})}
var collectorEchoMsg={config:{},processes:{},close_non_stop:!1,end_set_timeout:null,run:function(config){collectorEchoMsg.config=isObject(config)?config:{};collectorEchoMsg.processes={};collectorEchoMsg.close_non_stop=!1;var winParams=window.win_collector_window_params;winParams=isObject(winParams)?winParams:{};var uri=winParams.uri?winParams.uri:'';var uriVals=isObject(winParams.uriVals)?winParams.uriVals:{};var options=isObject(winParams.options)?winParams.options:{};var winProcessBox=$('#myModal #win_cem_process_box').clone();if(uri){var title=winParams.title+'<small style="margin-left:10px;">日志读取间隔<input type="number" class="form-control input-sm" style="display:inline;width:40px;height:20px;padding:1px 2px 1px 2px;margin:0px 3px 0px 3px;" id="win_cem_interval" value="'+collectorEchoMsg.get_interval()+'" />秒<button type="button" class="btn btn-default btn-xs" id="win_cem_interval_btn" style="margin-left:3px;">保存</button>';var closeFuncs=new Array();if(!isNull(options.close_func)){if(isObject(options.close_func)){closeFuncs=options.close_func}else{closeFuncs.push(options.close_func)}}
closeFuncs.push(function(){if(!collectorEchoMsg.close_non_stop){collectorEchoMsg.stop_all()}});options.close_func=closeFuncs;windowIframe(title,'',options);$('#myModal #myModalIframe').hide();$('#myModal #win_cem_interval_btn').bind('click',function(){collectorEchoMsg.set_interval($('#win_cem_interval').val())});var runUrl=ulink(uri,uriVals);ajaxOpen({type:'get',url:runUrl,dataType:'json',async:!0,success:function(data){if(data.code==1){var processes=data.data?data.data:{};var collectorKey=processes.collector_key?processes.collector_key:'';var processKeys=isObject(processes.process_keys)?processes.process_keys:[];var processNum=processKeys.length;if(!collectorKey||processNum<=0){return}
$('#myModal .modal-body').append(winProcessBox);if(processNum>1){$('#myModal .modal-body').addClass('win-cem-process-body')}
var processNavHtml='';for(var i=0;i<processNum;i++){processNavHtml+='<li><a href="javascript:;" data-collector-process="'+collectorKey+'-'+processKeys[i]+'">进程'+processKeys[i]+'</a></li>'}
$('#win_cem_process_nav').html(processNavHtml);$('#win_cem_process_nav [data-collector-process]').bind('click',function(){collectorEchoMsg.process($(this).attr('data-collector-process'))});runUrl+=(runUrl.indexOf('?')>-1?'&':'?')+'collector_key='+collectorKey;$('#myModal #myModalIframe').attr('src',runUrl);window.setTimeout(function(){collectorEchoMsg.process(collectorKey+'-'+processKeys[0])},200)}else{ajaxDataMsg(data);$('#myModal').modal('hide')}}})}},process:function(collectorProcess){if(!collectorProcess){return}
if(!collectorEchoMsg.processes[collectorProcess]){collectorEchoMsg.processes[collectorProcess]={}}
$('#win_cem_process_nav li').removeClass('active');$('#win_cem_process_nav').find('[data-collector-process="'+collectorProcess+'"]').parents('li').eq(0).addClass('active');$('#myModal .win-cem-ifr-box').hide();var ifrId='win_cem_ifr_'+collectorProcess;var ifr=document.getElementById(ifrId);if(!ifr){ifr=document.createElement('iframe');$(ifr).attr('id',ifrId);$(ifr).attr('frameborder','0');$(ifr).attr('scrolling','yes');$(ifr).bind('load',function(){collectorEchoMsg.processes[collectorProcess].line=0;collectorEchoMsg.processes[collectorProcess].html='';collectorEchoMsg.read(collectorProcess)});var box=document.createElement('div');$(box).addClass('win-cem-ifr-box');$(box).append(ifr);$('#myModal .modal-body').append(box)}else{collectorEchoMsg.read(collectorProcess)}
$(ifr).parents('.win-cem-ifr-box').eq(0).show()},read:function(collectorProcess){if(!collectorProcess){return}
if(!collectorEchoMsg.processes[collectorProcess]){return}
var interval=collectorEchoMsg.get_interval();var ifrId='win_cem_ifr_'+collectorProcess;if(collectorEchoMsg.processes[collectorProcess].read_timeout){window.clearTimeout(collectorEchoMsg.processes[collectorProcess].read_timeout)}
var startTime=new Date().getTime();var readFunc=function(){collectorEchoMsg.processes[collectorProcess].read_ajax=ajaxOpen({type:'get',dataType:'json',async:!0,url:ulink('admin/collector/echo_msg?op=read&collector_process=_c_p_&line=_line_&start=_start_&end=_end_',{'_c_p_':collectorProcess,'_line_':collectorEchoMsg.processes[collectorProcess].line,'_start_':startTime,'_end_':(new Date().getTime())}),success:function(data){if(data.code==1&&data.data){var line=toInt(data.data.line);if(line>0){collectorEchoMsg.processes[collectorProcess].line=line;collectorEchoMsg.ifr_html(collectorProcess,data.data.html);if(data.data.js){$('#'+ifrId).contents().find('head').append(data.data.js)}}}},complete:function(){collectorEchoMsg.processes[collectorProcess].read_timeout=window.setTimeout(function(){if($('#'+ifrId).is(':visible')){if(!collectorEchoMsg.processes[collectorProcess].end){readFunc()}}},interval*1000)}})};readFunc()},ifr_html:function(collectorProcess,html){html=html?html:'';var cpHtml=collectorEchoMsg.processes[collectorProcess].html;cpHtml=cpHtml?cpHtml:'';cpHtml+=html;collectorEchoMsg.processes[collectorProcess].html=cpHtml;var ifrBody=$('#win_cem_ifr_'+collectorProcess).contents().find('body').get(0);ifrBody.innerHTML=cpHtml},end:function(collectorProcess,errorMsg){if(collectorEchoMsg.end_set_timeout){window.clearTimeout(collectorEchoMsg.end_set_timeout)}
if(collectorProcess){if(errorMsg){errorMsg='<div style="color:red;font-weight:bold;margin:5px 0;" id="win_cem_error">'+url_base64decode(errorMsg)+'</div>';collectorEchoMsg.ifr_html(collectorProcess,errorMsg)}
var endAll=!1;var statusFunc=function(){var interval=collectorEchoMsg.get_interval();ajaxOpen({type:'get',dataType:'json',async:!0,url:ulink('admin/collector/echo_msg?op=status&collector_process=_cpkey_',{'_cpkey_':collectorProcess}),success:function(data){if(data.code==1){var statusList=data.data;if(isObject(statusList)){var pStatus=isObject(statusList.processes)?statusList.processes:{};$('#win_cem_process_nav').find('[data-collector-process]').each(function(){var cpkey=$(this).attr('data-collector-process');var pkey=cpkey?cpkey.split('-'):[];pkey=pkey[1]?pkey[1]:'';if(pkey&&!pStatus[pkey]){collectorEchoMsg.stop_process(cpkey);$(this).css('color','green')}});if(!statusList.main){endAll=!0;$('#myModal .modal-title').find('.loading-sm').remove()}}}},complete:function(){collectorEchoMsg.end_set_timeout=window.setTimeout(function(){var curKey=$('#win_cem_process_nav li.active').find('[data-collector-process]').attr('data-collector-process');if(collectorProcess==curKey){if(collectorEchoMsg.processes[collectorProcess].end){if(!endAll){statusFunc()}}}},interval*1000)}})};statusFunc()}},set_interval:function(num){ajaxOpen({type:'get',dataType:'json',async:!0,url:ulink('admin/collector/echo_msg?op=set_interval&interval=_num_',{'_num_':num}),success:function(data){ajaxDataMsg(data)}})},get_interval:function(){var interval=toInt(collectorEchoMsg.config.interval);interval=interval<=0?2:interval;return interval},stop_all:function(){var processes=collectorEchoMsg.processes;var cpKey='';if(processes){for(var key in processes){cpKey=key;collectorEchoMsg.stop_process(key)}}
if(collectorEchoMsg.end_set_timeout){window.clearTimeout(collectorEchoMsg.end_set_timeout)}
ajaxOpen({type:'get',url:ulink('admin/collector/echo_msg?op=stop&collector_process=_cpkey_',{'_cpkey_':cpKey}),dataType:'json',async:!0,success:function(data){}})},stop_process:function(collectorProcess){if(isObject(collectorEchoMsg.processes[collectorProcess])){collectorEchoMsg.processes[collectorProcess].end=1;if(collectorEchoMsg.processes[collectorProcess].read_ajax){collectorEchoMsg.processes[collectorProcess].read_ajax.abort()}
if(collectorEchoMsg.processes[collectorProcess].read_timeout){window.clearTimeout(collectorEchoMsg.processes[collectorProcess].read_timeout)}}},echo_url_msg:function(data){var fid='ifr_collectorEchoMsg_show_url_data';if(!document.getElementById(fid)){$('body').append('<form id="'+fid+'" action="'+ulink('collector/echo_url_msg')+'" method="post" target="_echo_url_msg" style="display:none;"><input type="text" name="_usertoken_" value="'+window.site_config.usertoken+'" /><textarea name="data"></textarea></form>')}
if(!isObject(data)){data={}}
data=JSON.stringify(data);$('#'+fid).find('[name="data"]').val(data);$('#'+fid).submit()},};var winBackstageTask={count:function(delay){delay=toInt(delay);var countFunc=function(){ajaxOpen({type:'get',dataType:'json',async:!0,url:ulink('admin/backstage/backstageTask?op=count'),success:function(data){if(data.code==1&&data.data){var count=toInt(data.data.count);count=count>0?count:'';$('#menu_backstage_task .label').text(count)}else{$('#menu_backstage_task .label').text('')}}})};if(delay>0){window.setTimeout(countFunc,delay)}else{countFunc()}},collected_set_timeout:null,init:function(){$('#win_backstage_task a[href^="#win_bk_tasks_nav_"]').bind('click',function(){var curTaskType=$($(this).attr('href')).attr('data-task-type');winBackstageTask.tasks(curTaskType)});$('#win_backstage_task a[href="#win_bk_tasks_nav_0"]').trigger('click');$('#myModal').on('hidden.bs.modal',function(e){winBackstageTask.count()})},tasks:function(taskType,url){$('#win_bk_tasks_nav_'+taskType).html('<div class="loading-sm"></div>');ajaxOpen({type:'get',dataType:'json',async:!0,url:(url?url:ulink('admin/backstage/backstageTask?op=tasks'+taskType)),success:function(data){if(data.code==1&&data.data){var count0=toInt(data.data.count0);var count1=toInt(data.data.count1);$('#win_backstage_task').find('a[href="#win_bk_tasks_nav_0"]').find('span').text(count0);$('#win_backstage_task').find('a[href="#win_bk_tasks_nav_1"]').find('span').text(count1);$('#win_backstage_task').find('a[href="#win_bk_tasks_nav_'+taskType+'"]').tab('show');$('#win_bk_tasks_nav_'+taskType).html(data.data.html)}else{$('#win_bk_tasks_nav_'+taskType).html('无任务')}
winBackstageTask.count();winBackstageTask.status()}})},init_tasks:function(taskType){taskType=toInt(taskType);$('#win_bk_tasks_box_'+(taskType==0?1:0)).html('');$('[id^="win_bk_tasks_box_"] a[data-parent^="#win_bk_tasks_box_"]').bind('click',function(){var curTaskId=$($(this).attr('href')).attr('data-task-id');var curTaskType=$(this).parents('[id^="win_bk_tasks_nav_"]').eq(0).attr('data-task-type');winBackstageTask.collected(curTaskId,curTaskType)});$('[id^="win_bk_tasks_box_"] .fa-remove').bind('click',function(){var obj=$(this);var curTaskId=$(this).attr('data-task-id');ajaxOpen({type:'get',dataType:'json',async:!0,url:ulink('admin/task/bkdelete?id='+curTaskId),success:function(data){obj.parents('.panel').remove();var spanObj=$('#win_backstage_task').find('a[href="#win_bk_tasks_nav_'+taskType+'"]').find('span');var spanCount=spanObj.text();spanCount=spanCount?parseInt(spanCount):0;spanCount=spanCount>0?(spanCount-1):0;spanObj.text(spanCount)}})});$('#win_bk_tasks_box_'+taskType+' .pagination').addClass('pagination-sm');$('#win_bk_tasks_box_'+taskType+' .pagination a').bind('click',function(){var curTaskType=$(this).parents('[id^="win_bk_tasks_nav_"]').eq(0).attr('data-task-type');winBackstageTask.tasks(curTaskType,$(this).attr('href'));return!1})},collected:function(taskId,taskType,url){if(winBackstageTask.collected_set_timeout){window.clearTimeout(winBackstageTask.collected_set_timeout)}
if(!url){url=ulink('admin/backstage/backstageTask?op=collected&tid='+taskId)}
ajaxOpen({type:'get',dataType:'html',async:!0,url:url,success:function(data){$('#win_bk_collected_'+taskId).html(data)},complete:function(){if(!isNull(taskType)&&0==toInt(taskType)){winBackstageTask.collected_set_timeout=window.setTimeout(function(){var isEnd=$('#win_bk_tasks_box_0').find('a[href="#win_bk_collected_'+taskId+'"]').attr('data-is-end');var isVisible=$('#win_bk_tasks_box_0 #win_bk_collected_'+taskId).is(':visible');if(!isEnd&&isVisible){winBackstageTask.collected(taskId,taskType,url)}else{window.clearTimeout(winBackstageTask.collected_set_timeout)}},3000)}}})},init_collected:function(taskStatus,taskId){$('[id^="win_bk_collected_"] .pagination').addClass('pagination-sm');$('[id^="win_bk_collected_"] .pagination a').bind('click',function(){var curTaskId=$(this).parents('[id^="win_bk_collected_"]').eq(0).attr('data-task-id');var curTaskType=$(this).parents('[id^="win_bk_tasks_nav_"]').eq(0).attr('data-task-type');winBackstageTask.collected(curTaskId,curTaskType,$(this).attr('href'));return!1});if(taskStatus&&taskId){winBackstageTask.set_task_end(taskId,taskStatus);winBackstageTask.count();winBackstageTask.status()}},set_task_end:function(taskId,status){if(taskId&&status){$('#win_bk_tasks_box_0').find('a[href="#win_bk_collected_'+taskId+'"]').attr('data-is-end','1').find('.is_loading').html('<small>'+status+'</small>')}},status_set_timeout:null,status:function(isLoop){if(!isLoop){window.clearTimeout(winBackstageTask.status_set_timeout)}
var taskIds=[];$('#win_bk_tasks_box_0').find('[id^="win_bk_collected_"]').each(function(){var taskId=$(this).attr('data-task-id');taskIds.push(taskId)});if(taskIds.length>0){ajaxOpen({type:'post',dataType:'json',async:!0,data:{tids:taskIds},url:ulink('admin/backstage/backstageTask?op=status'),success:function(data){var statusList=data.data;if(isObject(statusList)){for(var tid in statusList){if(statusList[tid]){winBackstageTask.set_task_end(tid,statusList[tid])}}}
var isVisible=$('#win_bk_tasks_box_0').is(':visible');var isEnd=!0;$('#win_bk_tasks_box_0').find('a[href^="#win_bk_collected_"]').each(function(){if(!$(this).attr('data-is-end')){isEnd=!1;return!1}});if(!isEnd&&isVisible){winBackstageTask.status_set_timeout=window.setTimeout(function(){winBackstageTask.status(!0)},3000)}else{window.clearTimeout(winBackstageTask.status_set_timeout)}}})}}};function ajax_check_userpwd(ajaxSet){var oldSuccess=ajaxSet.success;ajaxSet.success=function(data){if(data.data&&data.data._check_pwd_){if(data.msg){toastr.error(data.msg)}
var msg='<div style="text-align:left;"><div style="margin-bottom:8px;">该操作需要验证您的登录密码</div>'+'<input class="form-control" type="password" id="confirm_ipt_check_pwd" placeholder="登录密码" />'+'<div class="checkbox" style="margin-bottom:0;"><label><input type="checkbox" value="1" id="confirm_ipt_check_skip" '+(admincpOp.getConfig('check_skip')?' checked="checked" ':'')+' /> 1小时内不再验证</label></div></div>';confirmRight({closeAfterFunc:!0,yes:'确定',no:'取消',msg:msg},function(){var ajaxSetData=isNull(ajaxSet.data)?{}:ajaxSet.data;var checkPwd=$('#confirm_ipt_check_pwd').val();var checkSkip=$('#confirm_ipt_check_skip').is(':checked')?1:'';if(typeof(ajaxSetData)=='object'){ajaxSetData._check_pwd_=checkPwd;ajaxSetData._check_skip_=checkSkip}else{ajaxSetData=ajaxSetData?(ajaxSetData+'&'):'';ajaxSetData+='_check_pwd_='+encodeURIComponent(checkPwd);ajaxSetData+='&_check_skip_='+encodeURIComponent(checkSkip)}
ajaxSet.data=ajaxSetData;ajaxSet.success=oldSuccess;ajax_check_userpwd(ajaxSet)});$('#confirm_ipt_check_skip').bind('click',function(){admincpOp.config('check_skip',$(this).is(':checked')?1:0)});$('body').on('keyup','#confirm_ipt_check_pwd',function(event){if(event.keyCode=="13"){$('#confirm_right .cr-btn-yes').trigger("click")}})}else{if(oldSuccess&&typeof(oldSuccess)=='function'){oldSuccess(data)}}};ajaxOpen(ajaxSet)}
function editorCodeIfr(ifrEle,options){options=isObject(options)?options:{};if(options.set_value!=null&&typeof(options.set_value)!='undefined'){$(document).ready(function(){$(ifrEle).attr('src','');$(ifrEle).attr('src',ulink('develop/editor_code'));$(ifrEle).off('load').bind('load',function(){if(options.set_value&&$(ifrEle)[0].contentWindow.editor_code_op){$(ifrEle)[0].contentWindow.editor_code_op.set(options.set_value)}})})}else if(options.get_value){var ifrEle=$(ifrEle)[0];var val='';if(ifrEle&&ifrEle.contentWindow.editor_code_op){val=ifrEle.contentWindow.editor_code_op.get()}
return val}}
var ruleInsertSign={match:function(toObj,options){if(!options){options={}}
var sign=window.tpl_lang.sign_match;var group='(?<nr{:id}>[\\s\\S]*?)';if(options.only){sign=sign.replace('{:id}','');var curVal=$(toObj).val();if(curVal.indexOf(sign)<0&&curVal.indexOf('(?<nr>')<0&&curVal.indexOf('(?<content>')<0){if(options.group){sign=group.replace('{:id}','')}
insertAtCaret($(toObj),sign)}else{toastr.error('存在'+sign+'或捕获组')}}else{var regSign=new RegExp(sign.replace('{:id}','(\\w*)').replace('[','\\[').replace(']','\\]'),'g');var regZimu=new RegExp("^([a-zA-Z]+)(\\d+)$",'i');var regP=new RegExp("\\(\\?<(?:content|nr)(\\w*)>",'g');var list=null;var max=0;var zm='';while((list=regSign.exec($(toObj).val()))!=null){var num=0;if(options.zimu){var zimu=regZimu.exec(list[1]);if(zimu){zm=zimu[1];num=parseInt(zimu[2])}}else{num=parseInt(list[1])}
if(num>max){max=num}}
list=null;while((list=regP.exec($(toObj).val()))!=null){var num=0;if(options.zimu){var zimu=regZimu.exec(list[1]);if(zimu){zm=zimu[1];num=parseInt(zimu[2])}}else{num=parseInt(list[1])}
if(num>max){max=num}}
if(options.group){sign=group}
var signId='';if(options.zimu){if(!zm){var ranNum=Math.ceil(Math.random()*25);zm=String.fromCharCode(('A').charCodeAt(0)+ranNum);ranNum=Math.ceil(Math.random()*25);zm+=String.fromCharCode(('a').charCodeAt(0)+ranNum)}
signId=zm+(max+1)}else{signId=max+1}
sign=sign.replace('{:id}',signId);insertAtCaret($(toObj),sign)}},matchN:function(fromObj,toObj,options){if(!options){options={}}
var sign=window.tpl_lang.sign_match;var rule='';if(fromObj){rule=$(fromObj).val()}else if(options.rule){rule=options.rule}
var reP=new RegExp("\\(\\?<(?:content|nr)(\\w*)>.*?\\)",'g');rule=rule.replace(reP,sign.replace('{:id}',"$1"));var regSign=new RegExp(sign.replace('{:id}','(\\w*)').replace('[','\\[').replace(']','\\]'),'g');var list=null;var hasSign=!1;var returnList=new Array();while((list=regSign.exec(rule))!=null){hasSign=!0;var each=list[0];if(!toObj){returnList.push(each)}else if($(toObj).is('select')){if($(toObj).find('option[value="'+each+'"]').length<=0){$(toObj).append('<option value="'+each+'">'+each+'</option>')}}else{if($(toObj).val().indexOf(each)<0){insertAtCaret($(toObj),each)}}}
if(!hasSign){if(options.def){sign=sign.replace('{:id}','');if(!toObj){returnList.push(sign)}else if($(toObj).is('select')){if($(toObj).find('option[value="'+sign+'"]').length<=0){$(toObj).append('<option value="'+sign+'">'+sign+'</option>')}}else{if($(toObj).val().indexOf(sign)<0){insertAtCaret($(toObj),sign)}}}}
if(!toObj){return returnList}},wildcard:function(toObj,options){if(!options){options={}}
var wildcard=window.tpl_lang.sign_wildcard;if(options.only){if($(toObj).val().indexOf(wildcard)<0){insertAtCaret($(toObj),wildcard)}}else{insertAtCaret($(toObj),wildcard)}},tips:function(isPage,isPn){isPage=isPage==1?true:!1;isPn=isPn==1?true:!1;var tips='<p>1、规则中的特殊字符<b>^$.*+|?[]{}()</b> 必须加上“\\”才能转义为字符,否则会识别为正则符号</p><p>2、[内容]标签的标识可由数字、字母及下划线组成</p>';if(isPage){if(isPn){tips+='<p>3、分页[内容]标签不可全局调用,只能在当前分页中调用</p>'}else{tips+='<p>3、页面级别多级页 &gt; 多级页子页 &gt; 内容页 &gt; 关联页 &gt; 关联页子页</p>';tips+='<p>4、[内容]标签可全局调用,但只能调用比自己级别高的页面中的标签,即内容页可调用多级页中的标签而不能调用关联页中的标签</p>';tips+='<p>5、同一页面中有相同标识的[内容]标签时,后面的标签会覆盖前面的同名标签。不同页面中有相同标识的[内容]标签时,低级别页面会覆盖高级别页面中的同名标签</p>'}}
confirmRight({msg:tips,yes:'确定',width:500,textAlign:'left'})},tool_tips:function(){var tips='<p>规则中的特殊字符:<b>^$.*+|?[]{}()</b> 必须加上“\\”才能转义为字符,否则会识别为正则符号</p>';confirmRight({msg:tips,yes:'确定',width:500,textAlign:'left'})}}