/*
|--------------------------------------------------------------------------
| SkyCaiji (蓝天采集器)
|--------------------------------------------------------------------------
| Copyright (c) 2018 https://www.skycaiji.com All rights reserved.
|--------------------------------------------------------------------------
| 使用协议 https://www.skycaiji.com/licenses
|--------------------------------------------------------------------------
*/
'use strict';function CollectorPattern(){this.formid='#form_coll';this.cpLevelUrl=null;this.cpRelationUrl=null;this.cpField=null;this.cpProcess=null}
CollectorPattern.prototype={constructor:CollectorPattern,init:function(){var $_o=this;$('#coll_tab a[data-toggle="tab"]').on('shown.bs.tab',function(e){var activeTab=$(e.target).attr('href');$($_o.formid+' [name="tab_link"]').val(activeTab.replace(/^\#+/,''))});$('#coll_tab a[data-toggle="tab"][href="#coll_pattern_link"]').bind('click',function(){if($($_o.formid+' [name="config[source_is_url]"]').is(':checked')){toastr.warning('起始页网址已设置为内容页网址!');$('#panel_coll_pattern_level_url').hide();$('#panel_coll_pattern_cont_url').hide()}else{$('#panel_coll_pattern_level_url').show();$('#panel_coll_pattern_cont_url').show()}});var tab_link_val=$($_o.formid+' [name="tab_link"]').val();if(tab_link_val){tab_link_val='#'+tab_link_val.replace(/^\#+/,'');$('#coll_tab a[data-toggle="tab"]').each(function(){if(tab_link_val==$(this).attr('href')){$('#coll_tab').children('li').removeClass('active');$(this).parents('li').eq(0).addClass('active');$('#coll_tab_content').children('.tab-pane').removeClass('active');$('#coll_tab_content').find(tab_link_val).addClass('active');(function(obj){$(document).ready(function(){$(obj).trigger('click')})})(this);return}})}
$_o.cpLevelUrl=new CpLevelUrl($_o);$_o.cpRelationUrl=new CpRelationUrl($_o);$_o.cpField=new CpField($_o);$_o.cpProcess=new CpProcess($_o);inputSelectCustom($_o.formid+' select[name="config[charset]"]','config[charset_custom]');$($_o.formid+' #coll_pattern_request_headers .dm-useragent li a').bind('click',function(){$($_o.formid+' [name="config[request_headers][useragent]"]').val($(this).attr('data-useragent'))});$($_o.formid+' #coll_pattern_request_headers .add-request-header').bind('click',function(){$_o.add_request_header('','')});$($_o.formid+' #coll_pattern_request_headers .add-request-header-img').bind('click',function(){$_o.add_request_header_img('','')});$($_o.formid+' .c-p-request-headers').on('click','.delete-request-header',function(){$(this).parents('tr').eq(0).remove()});$($_o.formid+' .c-p-request-headers-img').on('click','.delete-request-header-img',function(){$(this).parents('tr').eq(0).remove()});$(this.formid+' #coll_pattern_source .add-source-url').bind('click',function(){windowModal('添加起始网址',ulink("Cpattern/source"))});$(this.formid+' #coll_pattern_source .glyphicon-trash').bind('click',function(){$_o.source_op('clear_all')});$(this.formid+' #coll_pattern_source').on('click','.glyphicon-edit',function(){var urlTxt=$(this).parents('.input-group').find('[name="config[source_url][]"]').val();urlTxt=urlTxt?urlTxt:'';var url=ulink("Cpattern/source");var urlId=$(this).parents('.input-group').find('[name="config[source_url][]"]').attr('id');urlId=urlId?urlId:'';var options={};if(urlTxt||urlId){options.ajax={type:'post',data:{url:urlTxt,uid:urlId}}}
windowModal('添加起始网址',url,options)});$(this.formid+' #coll_pattern_source').on('click','.glyphicon-remove',function(){var obj=$(this);confirmRight(window.tpl_lang.confirm_delete,function(){obj.parents('.form-group').eq(0).remove()})});eleExchange(this.formid+' #coll_pattern_source','.glyphicon-arrow-up','.glyphicon-arrow-down','.form-group');$(this.formid).find('[name="config[source_url][]"]').eq(0).attr('id',generateUUID());inputSelectCustom($_o.formid+' select[name="config[url_web][charset]"]','config[url_web][charset_custom]');$('#coll_pattern_link_web .add-url-web-form').bind('click',function(){$_o.add_page_url_web('url','form','','')});$('#coll_pattern_link_web .c-p-url-web-form').on('click','.delete-url-web-form',function(){$(this).parents('tr').eq(0).remove()});$('#coll_pattern_link_web .add-url-web-header').bind('click',function(){$_o.add_page_url_web('url','header','','')});$('#coll_pattern_link_web .c-p-url-web-header').on('click','.delete-url-web-header',function(){$(this).parents('tr').eq(0).remove()});$($_o.formid).on('click','.c-p-url-page-signs .btn-page-signs',function(){$_o.parent_page_signs(this)});$($_o.formid+' #coll_pattern_level_url .add-level-url').bind('click',function(){var url=ulink("Cpattern/level_url");windowModal('添加多级页网址规则',url,{lg:1})});$($_o.formid+' #c_p_level_urls').on('click','.name',function(){var parent=$(this).parents('[id^="level_url_"]').eq(0);var objid=parent.attr('id');var level_url=parent.find('[name="config[level_urls][]"]').val();var options={lg:1};options.ajax={type:'post',data:{objid:objid,level_url:level_url}};windowModal('编辑多级页网址规则',ulink('Cpattern/level_url'),options)});$($_o.formid+' #c_p_level_urls').on('click','.clone',function(){var tr=$(this).parents('tr[id^="level_url_"]').eq(0);var levelUrl=tr.find('[name="config[level_urls][]"]').val();confirmRight('确定复制多级页?',function(){ajaxOpen({type:'POST',dataType:'json',url:ulink("Cpattern/clone_level_url"),data:{level_url:levelUrl},success:function(data){if(data.code==1){data=data.data;var hasName=!1;do{data.level_url.name+='_1';hasName=$($_o.formid+' #c_p_level_urls').find('.name[data-val="'+data.level_url.name+'"]');if(hasName&&hasName.length>0){hasName=!0}else{hasName=!1}}while(hasName);$_o.cpLevelUrl.add(null,data.level_url);toastr.success('多级页复制成功:'+data.level_url.name)}else{toastr.error(data.msg)}}})})});$($_o.formid+' #c_p_level_urls').on('click','.delete',function(){var curObj=$(this);confirmRight('确定删除?',function(){curObj.parents('[id^="level_url_"]').eq(0).remove()})});eleExchange($_o.formid+' #c_p_level_urls','.glyphicon-arrow-up','.glyphicon-arrow-down','tr');$($_o.formid+' #coll_pattern_relation_url .add-relation-url').bind('click',function(){var url=ulink("Cpattern/relation_url");windowModal('添加关联页网址规则',url,{lg:1})});$($_o.formid+' #c_p_relation_urls').on('click','.name',function(){var parent=$(this).parents('[id^="relation_url_"]').eq(0);var objid=parent.attr('id');var relation_url=parent.find('[name="config[relation_urls][]"]').val();var options={lg:1};options.ajax={type:'post',data:{objid:objid,relation_url:relation_url}};windowModal('编辑关联页网址规则',ulink("Cpattern/relation_url"),options)});$($_o.formid+' #c_p_relation_urls').on('click','.clone',function(){var tr=$(this).parents('tr[id^="relation_url_"]').eq(0);var relationUrl=tr.find('[name="config[relation_urls][]"]').val();confirmRight('确定复制关联页?',function(){ajaxOpen({type:'POST',dataType:'json',url:ulink("Cpattern/clone_relation_url"),data:{relation_url:relationUrl},success:function(data){if(data.code==1){data=data.data;var hasName=!1;do{data.relation_url.name+='_1';hasName=$($_o.formid+' #c_p_relation_urls').find('.name[data-val="'+data.relation_url.name+'"]');if(hasName&&hasName.length>0){hasName=!0}else{hasName=!1}}while(hasName);$_o.cpRelationUrl.add(null,data.relation_url);toastr.success('关联页复制成功:'+data.relation_url.name)}else{toastr.error(data.msg)}}})})});$($_o.formid+' #c_p_relation_urls').on('click','.delete',function(){var curObj=$(this);confirmRight('确定删除?',function(){curObj.parents('[id^="relation_url_"]').eq(0).remove()})});eleExchange($_o.formid+' #c_p_relation_urls','.glyphicon-arrow-up','.glyphicon-arrow-down','tr');$(this.formid+' #coll_pattern_field').on('click','.add-field',function(){$_o.field_editor(null,null)});$(this.formid+' #coll_pattern_field').on('click','.field-name',function(){$_o.field_editor($(this),null)});$(this.formid+' #coll_pattern_field').on('click','.add-field-default',function(){$_o.cpField.add_default()});$(this.formid+' #coll_pattern_field').on('click','.field-del',function(){var obj=$(this);confirmRight(window.tpl_lang.confirm_delete,function(){$_o.field_delete_tr(obj)})});$(this.formid+' #coll_pattern_field').on('click','.field-clone',function(){var tr=$(this).parents('tr[id^="field_"]').eq(0);var field=tr.find('[name="config[field_list][]"]').val();var process=tr.find('[name="config[field_process][]"]').val();confirmRight('确定复制字段?',function(){ajaxOpen({type:'POST',dataType:'json',url:ulink("Cpattern/clone_field"),data:{field:field,process:process},success:function(data){if(data.code==1){data=data.data;var hasField=!1;do{data.field.name+='_1';hasField=$('#coll_pattern_field .c-p-field-list').find('.field-name[data-val="'+data.field.name+'"]');if(hasField&&hasField.length>0){hasField=!0}else{hasField=!1}}while(hasField);$_o.cpField.add(null,data.field,data.process);toastr.success('字段复制成功:'+data.field.name)}else{toastr.error(data.msg)}}})})});$(this.formid+' #coll_pattern_field').on('click','.field-process',function(){var url=ulink("Cpattern/process");var process=$(this).parent().find('input[name="config[field_process][]"]').val();var prt=$(this).parents('tr[id^="field_"]').eq(0);var objid=prt.attr('id');var field=prt.find('.field-name').attr('data-val');windowModal('数据处理:'+field+' ',url,{ajax:{type:'post',data:{objid:objid,process:process}}});$_o.process_paste()});$(this.formid+' #coll_pattern_process').on('click','.add-process',function(){var url=ulink("Cpattern/process?type=common");windowModal('数据处理(通用) ',url);$_o.process_paste()});$(this.formid).on('click','[name="config[paging][open]"]',function(){if($(this).val()==1){$('#c_p_paging_open').show()}else{$('#c_p_paging_open').hide()}});$(this.formid+' #coll_pattern_paging').on('click','.add-paging-field',function(){var url=ulink("Cpattern/paging_field?is_loop=_is_loop_",{_is_loop_:$_o.field_is_loop()});windowModal('分页内容字段',url)});$(this.formid+' #c_p_paging_fields').on('click','.field',function(){var parent=$(this).parents('.paging-field').eq(0);var objid=parent.attr('id');var pagingField=parent.find('[name="config[paging_fields][]"]').val();var url=ulink("Cpattern/paging_field?objid=_objid_&paging_field=_pfield_&is_loop=_is_loop_",{_objid_:objid,_pfield_:pagingField,_is_loop_:$_o.field_is_loop()});windowModal('分页内容字段',url)});$(this.formid+' #c_p_paging_fields').on('click','.delete',function(){$(this).parents('.paging-field').eq(0).remove()});eleExchange(this.formid+' #coll_pattern_field','.glyphicon-arrow-up','.glyphicon-arrow-down','tr[id^="field_"]');$(this.formid).on('click','select[name="config[area_module]"],select[name="config[url_rule_module]"],select[name="config[paging][area_module]"],select[name="config[paging][url_rule_module]"]',function(){$_o.rule_module_slt(this)});$(this.formid+' [name="effective"]').val(1)},load:function(config){var $_o=this;if(config){$(this.formid+' [name="config[charset]"]').val(config.charset).trigger('change');$(this.formid+' [name="config[charset_custom]"]').val(config.charset_custom);$(this.formid+' [name="config[url_complete]"][value="'+parseInt(config.url_complete)+'"]').prop('checked','checked');$(this.formid+' [name="config[url_reverse]"][value="'+parseInt(config.url_reverse)+'"]').prop('checked','checked');$(this.formid+' [name="config[page_render]"][value="'+parseInt(config.page_render)+'"]').prop('checked','checked');$(this.formid+' [name="config[url_repeat]"][value="'+parseInt(config.url_repeat)+'"]').prop('checked','checked');if(config.regexp_flags){for(var i in config.regexp_flags){$(this.formid).find('[name="config[regexp_flags][]"][value="'+config.regexp_flags[i]+'"]').prop('checked',!0)}}
if(config.source_url){var source_url_html_list='';for(var i in config.source_url){source_url_html_list+=this.source_op('add',{get:1,url:config.source_url[i]})}
if(source_url_html_list){this.source_op('add',{html:source_url_html_list})}}
$(this.formid+' [name="config[source_is_url]"]').attr('checked',config.source_is_url?true:!1);$_o.load_page('url',config);if(config.level_urls){for(var i in config.level_urls){$_o.cpLevelUrl.add(null,config.level_urls[i])}
showPanelCollapse('#coll_pattern_level_url')}
if(config.relation_urls){for(var i in config.relation_urls){$_o.cpRelationUrl.add(null,config.relation_urls[i])}
showPanelCollapse('#coll_pattern_relation_url')}
if(config.field_list&&config.field_list.length>0){this.cpField.clearall();for(var i in config.field_list){var fieldProcess=null;if(config.field_process){fieldProcess=config.field_process[i]}
this.cpField.add(null,config.field_list[i],fieldProcess)}}
if(config.field_title){$(this.formid+' [name="config[field_title]"]').each(function(){if($(this).val()==config.field_title){$(this).prop('checked','checked')}})}
if(config.common_process&&config.common_process.length>0){showPanelCollapse('#coll_pattern_process');ajaxOpen({type:'post',url:ulink("Cpattern/process?type=common&op=load"),data:{process:config.common_process},dataType:'html',beforeSend:function(){$($_o.cpProcess.processForm+' .c-p-process-accordion').append('
')},success:function(data){$('body').append(data)},complete:function(){$($_o.cpProcess.processForm+' .c-p-process-accordion').find('.loading').remove()}})}
if(config.paging){$(this.formid+' [name="config[paging][max]"]').val(parseInt(config.paging.max));if(config.paging.open){$(this.formid+' [name="config[paging][open]"][value="'+parseInt(config.paging.open)+'"]').trigger('click');if(parseInt(config.paging.open)>0){showPanelCollapse('#coll_pattern_paging')}}
$_o.load_page('paging_url',config.paging)}
if(config.paging_fields){for(var i in config.paging_fields){$_o.paging_field_op('add',{paging_field:config.paging_fields[i]})}}
if(config.request_headers){var r_h_params=new Array('useragent','cookie','referer');for(var i in r_h_params){$(this.formid+' [name="config[request_headers]['+r_h_params[i]+']"]').val(config.request_headers[r_h_params[i]])}
if(config.request_headers.custom_names){var r_h_vals=config.request_headers.custom_vals?config.request_headers.custom_vals:{};for(var i in config.request_headers.custom_names){$_o.add_request_header(config.request_headers.custom_names[i],r_h_vals[i])}}
var r_h_radios=new Array('open','img','img_use_page');for(var i in r_h_radios){var rhr_v=config.request_headers[r_h_radios[i]];if(r_h_radios[i]!='img_use_page'){rhr_v=parseInt(rhr_v)}
$(this.formid+' [name="config[request_headers]['+r_h_radios[i]+']"][value="'+rhr_v+'"]').trigger('click')}
if(parseInt(config.request_headers.open)>0){showPanelCollapse('#coll_pattern_request_headers');showPanelCollapse('#c_p_request_headers_open')}
if(parseInt(config.request_headers.img)>0){showPanelCollapse('#coll_pattern_request_headers');showPanelCollapse('#c_p_request_headers_img')}
if(config.request_headers.img_names){var r_h_img_vals=config.request_headers.img_vals?config.request_headers.img_vals:{};for(var i in config.request_headers.img_names){$_o.add_request_header_img(config.request_headers.img_names[i],r_h_img_vals[i])}}}}
$(this.formid+' [name="effective_edit"]').val(1)},load_page:function(pageType,config){var $_o=this;var formObj='';var boxId='';var namePre='';if(pageType=='level_url'){formObj=$_o.cpLevelUrl.formObj;boxId='#c_p_level_url';namePre='level_url'}else if(pageType=='relation_url'){formObj=$_o.cpRelationUrl.formObj;boxId='#c_p_relation_url';namePre='relation_url'}else if(pageType=='url'){formObj=$_o.formid;boxId='#coll_pattern_link';namePre='config'}else if(pageType=='paging_url'){formObj=$_o.formid;boxId='#coll_pattern_paging';namePre='config[paging]'}
if(!config||!formObj||!boxId||!namePre){return}
if(config.area||config.area_merge){$(formObj+' [name="'+namePre+'[area]"]').val(config.area);$(formObj+' [name="'+namePre+'[area_merge]"]').val(config.area_merge);showPanelCollapse(boxId+'_area')}
if(config.area_module){$(formObj+' select[name="'+namePre+'[area_module]"]').val(config.area_module).trigger('click').trigger('change')}
if(config.url_rule||config.url_merge){$(formObj+' [name="'+namePre+'[url_rule]"]').val(config.url_rule);$(formObj+' [name="'+namePre+'[url_merge]"]').val(config.url_merge);showPanelCollapse(boxId+'_url')}
if(config.url_rule_module){$(formObj+' select[name="'+namePre+'[url_rule_module]"]').val(config.url_rule_module).trigger('click').trigger('change')}
if(config.url_must||config.url_ban){$(formObj+' [name="'+namePre+'[url_must]"]').val(config.url_must);$(formObj+' [name="'+namePre+'[url_ban]"]').val(config.url_ban);showPanelCollapse(boxId+'_filter')}
if(pageType!='paging_url'){var urlWebConfig=config.url_web?config.url_web:{};if(urlWebConfig.open){$(formObj+' [name="'+namePre+'[url_web][open]"][value="1"]').prop('checked',!0)}
if(urlWebConfig.charset){$(formObj+' select[name="'+namePre+'[url_web][charset]"]').val(urlWebConfig.charset).trigger('change')}
if(urlWebConfig.charset_custom){$(formObj+' [name="'+namePre+'[url_web][charset_custom]"]').val(urlWebConfig.charset_custom)}
if(urlWebConfig.form_method){$(formObj+' [name="'+namePre+'[url_web][form_method]"]').val(urlWebConfig.form_method)}
if(urlWebConfig.form_names){var urlWebFormVals=urlWebConfig.form_vals?urlWebConfig.form_vals:{};for(var i in urlWebConfig.form_names){$_o.add_page_url_web(pageType,'form',urlWebConfig.form_names[i],urlWebFormVals[i])}}
if(urlWebConfig.header_global){$(formObj+' [name="'+namePre+'[url_web][header_global]"][value="'+urlWebConfig.header_global+'"]').prop('checked',!0)}
if(urlWebConfig.header_names){var urlWebHeaderVals=urlWebConfig.header_vals?urlWebConfig.header_vals:{};for(var i in urlWebConfig.header_names){$_o.add_page_url_web(pageType,'header',urlWebConfig.header_names[i],urlWebHeaderVals[i])}}
if(urlWebConfig.open){showPanelCollapse(boxId+'_web')}}},source_op:function(op,params){var $_o=this;params=params?params:{};var formObj=params.formObj?params.formObj:'#form_source';if(op=='init'){$(formObj+' #source_url_sign').bind('click',function(){var sign=window.tpl_lang.sign_match.replace('{:id}','');var ipt=$('#source_url');if(ipt.val().indexOf(sign)<0){insertAtCaret(ipt,sign)}else{toastr.error('存在'+sign)}});$(formObj).find('.nav-tabs li a').bind('click',function(){$(formObj).find('input[name="source[type]"]').val($(this).attr('source-type'))});$(formObj).find('div[source-param]').find('input,textarea').bind('change',function(){if($(this).attr("type")=='radio'){return!1}
$(this).parents('div[source-param]').find('input[name="source[param]"]').prop('checked',!0)});if(params.source){$(formObj+' .nav-tabs').find('a[source-type="'+params.source.type+'"]').click();if(params.source.type=='custom'){$(formObj+' textarea[name="source[urls]"]').val(params.source.urls)}else if(params.source.type=='batch'){$(formObj+' input[name="source[url]"]').val(params.source.url);var param_type=params.source.param;if(param_type=='num'){$(formObj+' input[name="source[param_num_start]"]').val(params.source.param_num_start);$(formObj+' input[name="source[param_num_end]"]').val(params.source.param_num_end);$(formObj+' input[name="source[param_num_inc]"]').val(params.source.param_num_inc);if(params.source.param_num_desc){$(formObj+' input[name="source[param_num_desc]"]').attr('checked','checked')}}else if(param_type=='letter'){$(formObj+' input[name="source[param_letter_start]"]').val(params.source.param_letter_start);$(formObj+' input[name="source[param_letter_end]"]').val(params.source.param_letter_end);if(params.source.param_letter_desc){$(formObj+' input[name="source[param_letter_desc]"]').attr('checked','checked')}}else if(param_type=='custom'){$(formObj+' textarea[name="source[param_custom]"]').val(params.source.param_custom)}
$(formObj+' input[name="source[param]"][value="'+param_type+'"]').attr('checked','checked')}else if(params.source.type=='large'){$(formObj+' textarea[name="source[large_urls]"]').val(params.source.large_urls)}else if(params.source.type=='api'){$(formObj+' input[name="source[api]"]').val(params.source.api);$(formObj+' input[name="source[api_json]"]').val(params.source.api_json)}}}else if(op=='add'){var html='';if(params.html){html=params.html}else{var html=''}
if(params.get){return html}else{this.source_op('clear_null');$($_o.formid+' #coll_pattern_source .c-p-source-urls').append(html)}}else if(op=='add_sub'){ajaxOpen({type:'POST',dataType:'json',url:$(formObj).attr('action'),data:$(formObj).serialize(),success:function(data){data.data=data.data?data.data:{};if(data.code==1){var source_type=$(formObj).find('input[name="source[type]"]').val();if(source_type=='custom'){$('#myModal').modal('hide');var urls=data.data.urls;var ix=0;var url_html_list='';for(var i in urls){ix++;if(ix==1){if(data.data.uid){$('#'+data.data.uid).val(urls[i]);continue}}
url_html_list+=$_o.source_op('add',{get:1,url:urls[i]})}
if(url_html_list){$_o.source_op('add',{html:url_html_list})}}else if(source_type=='batch'){if(params.preview==1){var urls=data.data.urls;var txt='';for(var i in urls){txt+=urls[i]+"\r\n"}
$(formObj).find('#source_preview').val(txt)}else{if(data.data.uid){$('#'+data.data.uid).val(data.data.url)}else{$_o.source_op('add',{url:data.data.url})}
$('#myModal').modal('hide')}}else if(source_type=='large'){var large_urls=data.data.urls;large_urls=large_urls.join("\r\n");if(data.data.uid){var cur_ele=$('#'+data.data.uid).parents('.form-group').eq(0);var large_ele=$_o.source_op('add',{get:1,url:large_urls});$(cur_ele).replaceWith(large_ele)}else{$_o.source_op('add',{url:large_urls})}
$('#myModal').modal('hide')}else if(source_type=='api'){if(data.data.uid){$('#'+data.data.uid).val(data.data.url)}else{$_o.source_op('add',{url:data.data.url})}
$('#myModal').modal('hide')}}else{toastr.error(data.msg)}},error:function(data){toastr.error(data)}});return!1}else if(op=='clear_null'){$($_o.formid+' #coll_pattern_source').find('[name="config[source_url][]"]').each(function(){if(!$(this).val()){$(this).parents('.form-group').eq(0).remove()}})}else if(op=='clear_all'){confirmRight('是否清空网址?',function(){$($_o.formid+' #coll_pattern_source').find('[name="config[source_url][]"]').each(function(){$(this).parents('.form-group').eq(0).remove()})})}},get_source_options:function(){var $_o=this;var options='';var level_urls=new Array();$('#c_p_level_urls [id^="level_url_"]').each(function(){var levelName=$(this).find('.name').attr('data-val');level_urls.push(''+levelName+' ')});if(($($_o.formid+' [name="config[source_is_url]"]').is(':checked')!=!0)&&level_urls.length>0){options+=''+level_urls.join('')+' '}
var relation_urls=new Array();$('#c_p_relation_urls [id^="relation_url_"]').each(function(){var relationName=$(this).find('.name').attr('data-val');relation_urls.push(''+relationName+' ')});if(relation_urls.length>0){options+=''+relation_urls.join('')+' '}
return options},field_delete_tr:function(subEle){$(subEle).parents('tr[id^="field_"]').eq(0).remove()},field_editor:function(subEle,hiddenFunc){var field=null;var objid=null;var title='添加字段';if(subEle){objid=$(subEle).parents('tr[id^="field_"]').eq(0).attr('id');if(objid){field=$('#'+objid).find('input[name="config[field_list][]"]').val();title='编辑字段'}}
var options={hidden_func:hiddenFunc};options.ajax={type:'post',data:{objid:objid,field:field}};windowModal(title,ulink('Cpattern/field'),options)},process_paste:function(){var $_o=this;$('body').off('click','#window_process_paste').on('click','#window_process_paste',function(){ajaxOpen({type:'get',dataType:'json',url:ulink('Cpattern/clone_process?op=paste'),success:function(data){if(data.code==1){$_o.cpProcess.add(data.data);toastr.success(data.msg)}else{toastr.error(data.msg)}}})})},paging_field_op:function(op,params){var $_o=this;params=params?params:{};var formObj=params.formObj?params.formObj:'#form_paging_field';if(op=='init'){var fieldList=$_o.get_fields();var fieldOptions='--请选择-- -全部字段- ';for(var i in fieldList){fieldOptions+=''+fieldList[i]+' '}
$(formObj+' select[name="paging_field[field]"]').html(fieldOptions);$(formObj).bind('submit',function(){$_o.paging_field_op('add_sub');return!1});if(params.paging_field){$(formObj+' select[name="paging_field[field]"]').val(params.paging_field.field);$(formObj+' [name="paging_field[delimiter]"]').val(params.paging_field.delimiter)}}else if(op=='add'){params.paging_field=params.paging_field?params.paging_field:{};var tpl='__field_name__ ';var fieldName=params.paging_field.field=='::all'?'-全部字段-':params.paging_field.field;tpl=tpl.replace(/__field__/ig,params.paging_field.field).replace(/__field_name__/ig,htmlspecialchars(fieldName)).replace(/__paging_field__/ig,url_base64encode(JSON.stringify(params.paging_field)));var objid=params.objid;if(!objid){objid='paging_field_'+generateUUID();$('#c_p_paging_fields').append('
')}
$('#'+objid).html(tpl)}else if(op=='add_sub'){var objid=$(formObj+' input[name="objid"]').val();var checkField=!0;if(objid){var field=$($_o.formid+' #'+objid).find('.field').attr('data-field');if(field==$(formObj+' select[name="paging_field[field]"]').val()){checkField=!1}}
if(checkField){var hasField=!1;var fieldList=new Array();$('#c_p_paging_fields .paging-field .field').each(function(){fieldList.push($(this).attr('data-field'))});for(var i in fieldList){if($(formObj+' select[name="paging_field[field]"]').val()==fieldList[i]){hasField=!0;break}}
if(hasField){toastr.error('该字段已存在!');return!1}}
ajaxOpen({type:'POST',dataType:'json',url:$(formObj).attr('action'),data:$(formObj).serialize(),success:function(data){if(data.code==1){$('#myModal').modal('hide');$_o.paging_field_op('add',data.data)}else{toastr.error(data.msg)}},error:function(data){toastr.error(data)}});return!1}},header_source_options:function(){var sourceOptions=this.get_source_options();sourceOptions=sourceOptions?sourceOptions:'';sourceOptions='全部 起始页 内容页 '+sourceOptions;return sourceOptions},add_request_header:function(name,val){var $_o=this;name=name?name:'';val=val?val:'';var tr=$_o.clone_tpl('#coll_tpl_request_headers');tr.find('[name="config[request_headers][custom_names][]"]').val(name);tr.find('[name="config[request_headers][custom_vals][]"]').val(val);$($_o.formid+' #coll_pattern_request_headers table.c-p-request-headers tbody').append(tr)},add_request_header_img:function(name,val){var $_o=this;name=name?name:'';val=val?val:'';var tr=$_o.clone_tpl('#coll_tpl_request_headers_img');tr.find('[name="config[request_headers][img_names][]"]').val(name);tr.find('[name="config[request_headers][img_vals][]"]').val(val);$($_o.formid+' #coll_pattern_request_headers table.c-p-request-headers-img tbody').append(tr)},add_page_url_web:function(pageType,type,name,val){var $_o=this;var boxId='';var namePre='';if(pageType=='level_url'){boxId='#c_p_level_url';namePre='level_url'}else if(pageType=='relation_url'){boxId='#c_p_relation_url';namePre='relation_url'}else if(pageType=='url'){boxId='#coll_pattern_link';namePre='config'}
if(!boxId||!namePre||!type){return}
boxId+='_web';name=name?name:'';val=val?val:'';var $_o=this;var tr=$_o.clone_tpl('#coll_tpl_url_web_'+type,namePre);tr.find('[name="'+namePre+'[url_web]['+type+'_names][]"]').val(name);tr.find('[name="'+namePre+'[url_web]['+type+'_vals][]"]').val(val);tr.find('.c-p-url-page-signs').each(function(){$(this).attr('data-page-type',pageType).attr('data-input-name',namePre+$(this).attr('data-input-name'))});$(boxId).find('.c-p-url-web-'+type).append(tr)},get_fields:function(){var fields=new Array();$(this.formid+' #coll_pattern_field .c-p-field-list').find('.field-name').each(function(){var fieldName=$(this).attr('data-val');if(fieldName){fields.push(fieldName)}});return fields},rule_module_slt:function(curObj){curObj=$(curObj);var module=curObj.val();if(curObj.attr('data-module-input')){var ipt=$('[name="'+curObj.attr('data-module-input')+'"]');ipt.attr('data-val-'+module,ipt.val())}
curObj.off('change').on('change',function(){var obj=$(this);var name=obj.attr('name');var changeModule=obj.val();$('[data-module-select="'+name+'"]').find('[data-module]').hide();$('[data-module-select="'+name+'"]').find('[data-module="'+changeModule+'"]').show();if(obj.attr('data-module-input')){var ipt=$('[name="'+obj.attr('data-module-input')+'"]');if(!ipt.attr('data-placeholder-')){ipt.attr('data-placeholder-',ipt.prop('placeholder')+' ')}
if(ipt.attr('data-placeholder-'+changeModule)){ipt.prop('placeholder',ipt.attr('data-placeholder-'+changeModule))}else{ipt.prop('placeholder','')}
if(ipt.attr('data-val-'+changeModule)){ipt.val(ipt.attr('data-val-'+changeModule))}else{ipt.val('')}}})},clone_tpl:function(tplId,namePre){namePre=namePre?namePre:'';var tpl=$(tplId).clone();tpl.removeAttr('id');tpl.find('[data-name]').each(function(){$(this).attr('name',namePre+$(this).attr('data-name'));$(this).removeAttr('data-name')});return tpl},rule_signs:function(rule){var signs=new Array();signs=cpMatchN(null,null,{rule:rule,def:1});if(!signs||typeof(signs)!='object'){signs=new Array()}
return signs},parent_page_signs:function(dropdownBtn){var $_o=this;var boxObj=$(dropdownBtn).parents('.c-p-url-page-signs').eq(0);if(!boxObj||boxObj.length<=0){return}
var pageType=boxObj.attr('data-page-type');var inputName=boxObj.attr('data-input-name');var formObj='';if(pageType=='level_url'){formObj=$_o.cpLevelUrl.formObj}else if(pageType=='relation_url'){formObj=$_o.cpRelationUrl.formObj}else{formObj=$_o.formid}
if(!pageType||!inputName||!formObj){return}
var iptObj=boxObj.find('[name="'+inputName+'"]');if(!iptObj||iptObj.length<=0){iptObj=null}
var levelUrls=new Array();$('#c_p_level_urls [id^="level_url_"]').each(function(){var levelUrl=$(this).find('[name="config[level_urls][]"]').val();levelUrls.push(levelUrl)});var relationUrls=new Array();$('#c_p_relation_urls [id^="relation_url_"]').each(function(){var relationUrl=$(this).find('[name="config[relation_urls][]"]').val();relationUrls.push(relationUrl)});var urlConfig={};urlConfig.area=$($_o.formid+' [name="config[area]').val();urlConfig.url_rule=$($_o.formid+' [name="config[url_rule]"]').val();var pageConfig={name:'',area:'',url_rule:''};if(pageType=='level_url'||pageType=='relation_url'){var objid=$(formObj).find('[name="objid"]').val();if(objid){pageConfig.name=$('#'+objid).find('.name').attr('data-val')}
if(pageType=='relation_url'){pageConfig.page=$(formObj).find('[name="relation_url[page]"]').val()}
pageConfig.area=$(formObj).find('[name="'+pageType+'[area]"]').val();pageConfig.url_rule=$(formObj).find('[name="'+pageType+'[url_rule]"]').val()}
var isAreaOrUrl='';if(inputName.indexOf('[area_merge]')>-1){isAreaOrUrl='area'}else if(inputName.indexOf('[url_merge]')>-1){isAreaOrUrl='url'}else{isAreaOrUrl=''}
ajaxOpen({type:'POST',dataType:'json',url:ulink("Cpattern/parentPageSigns"),data:{level_urls:levelUrls,relation_urls:relationUrls,url_config:urlConfig,page_config:pageConfig,page_type:pageType,is_area_or_url:isAreaOrUrl},success:function(data){if(data.code==1){var allSigns=data.data;var html='';var valSigns=null;if(iptObj){valSigns=cpMatchN(null,null,{rule:iptObj.val()})}
if(!valSigns||typeof(valSigns)!='object'){valSigns=new Array()}
for(var asi in allSigns){var pageSigns=allSigns[asi]?allSigns[asi]:{};var pageName=pageSigns.name;var signs=pageSigns.signs;signs=signs?signs:{};html+=''+pageName+' ';for(var i in signs.area){var sign=signs.area[i];if(signs.area_global&&signs.area_global.indexOf(sign)>-1){var color=valSigns.indexOf(sign)>-1?'color:green;':'';html+=''+sign+' '}else{html+=''+sign+' '}}
html+=' ';for(var i in signs.url){var sign=signs.url[i];if(signs.url_global&&signs.url_global.indexOf(sign)>-1){var color=valSigns.indexOf(sign)>-1?'color:green;':'';html+=''+sign+' '}else{html+=''+sign+' '}}
html+=' '}
var dropdownMenu=boxObj.find('.dropdown-menu');if(dropdownMenu.length>0){$(dropdownMenu).find('table tbody').html(html);$(dropdownMenu).find('a[data-val]').bind('click',function(){if(iptObj){insertAtCaret(iptObj,$(this).attr('data-val'))}})}}}})},decode_base2json:function(urlBase64Str){var json={};try{json=url_base64decode(urlBase64Str);json=JSON.parse(json)}catch(e){json={}}
return json},field_is_loop:function(){var hasLoop=$(this.formid+' #coll_pattern_field .c-p-field-list').find('.field-module[data-is-loop]');if(hasLoop&&hasLoop.length>0){hasLoop=1}else{hasLoop=''}
return hasLoop}}
function CpRelationUrl(cpClass){this.$_cp=cpClass;this.formObj='#form_relation_url'}
CpRelationUrl.prototype={constructor:CpRelationUrl,init:function(relation_url){var $_o=this;$($_o.formObj).bind('submit',function(){$_o.add_sub();return!1});$($_o.formObj).on('click','select[name="relation_url[area_module]"],select[name="relation_url[url_rule_module]"]',function(){$_o.$_cp.rule_module_slt(this)});inputSelectCustom($_o.formObj+' select[name="relation_url[url_web][charset]"]','relation_url[url_web][charset_custom]');$($_o.formObj+' .add-url-web-form').bind('click',function(){$_o.$_cp.add_page_url_web('relation_url','form','','')});$($_o.formObj+' .c-p-url-web-form').on('click','.delete-url-web-form',function(){$(this).parents('tr').eq(0).remove()});$($_o.formObj+' .add-url-web-header').bind('click',function(){$_o.$_cp.add_page_url_web('relation_url','header','','')});$($_o.formObj+' .c-p-url-web-header').on('click','.delete-url-web-header',function(){$(this).parents('tr').eq(0).remove()});$($_o.formObj).on('click','.c-p-url-page-signs .btn-page-signs',function(){$_o.$_cp.parent_page_signs(this)});var optRelations='';$('#c_p_relation_urls [id^="relation_url_"] .name').each(function(){if(relation_url&&$(this).attr('data-val')==relation_url.name){return!0}
optRelations+=''+$(this).attr('data-val')+' '});optRelations+=' ';$($_o.formObj+' [name="relation_url[page]"]').append(optRelations);if(relation_url){var loadParams=['name','page'];for(var i in loadParams){if(relation_url[loadParams[i]]){$($_o.formObj+' [name="relation_url['+loadParams[i]+']"]').val(relation_url[loadParams[i]])}}
$_o.$_cp.load_page('relation_url',relation_url)}},add:function(objid,relation_url){var $_o=this;var areaSigns=$_o.$_cp.rule_signs(relation_url.area);var urlSigns=$_o.$_cp.rule_signs(relation_url.url_rule);if(areaSigns&&areaSigns.length>0){areaSigns=areaSigns.join(' ')}else{areaSigns=''}
if(urlSigns&&urlSigns.length>0){urlSigns=urlSigns.join(' ')}else{urlSigns=''}
var objEle=null;var relationPage=relation_url.page?relation_url.page:'内容页';if(objid){objEle=$($_o.$_cp.formid+' #'+objid)}else{objEle=$_o.$_cp.clone_tpl('#coll_tpl_relation_url');objEle.attr('id','relation_url_'+generateUUID());$($_o.$_cp.formid+' #c_p_relation_urls').append(objEle)}
objEle.find('.name').attr('data-val',relation_url.name).text(relation_url.name);objEle.find('.page').text(relationPage);objEle.find('[name="config[relation_urls][]"]').val(url_base64encode(JSON.stringify(relation_url)));objEle.find('.signs').val(areaSigns+(areaSigns?' , ':'')+urlSigns)},add_sub:function(){var $_o=this;var objid=$($_o.formObj+' input[name="objid"]').val();var checkName=!0;if(objid){var name=$($_o.$_cp.formid+' #'+objid).find('.name').attr('data-val');if(name==$($_o.formObj+' [name="relation_url[name]"]').val()){checkName=!1}}
if(checkName){var hasName=!1;$('#c_p_relation_urls [id^="relation_url_"] .name').each(function(){if($($_o.formObj+' [name="relation_url[name]"]').val()==$(this).attr('data-val')){hasName=!0;return!1}});if(hasName){toastr.error('该名称已存在!');return!1}}
ajaxOpen({type:'POST',dataType:'json',url:$($_o.formObj).attr('action'),data:$($_o.formObj).serialize(),success:function(data){if(data.code==1){$('#myModal').modal('hide');data=data.data;if(data){$_o.add(data.objid,data.relation_url)}}else{toastr.error(data.msg)}},error:function(data){toastr.error(data)}});return!1}}
function CpLevelUrl(cpClass){this.$_cp=cpClass;this.formObj='#form_level_url'}
CpLevelUrl.prototype={constructor:CpLevelUrl,init:function(level_url){var $_o=this;$($_o.formObj).bind('submit',function(){$_o.add_sub();return!1});$($_o.formObj).on('click','select[name="level_url[area_module]"],select[name="level_url[url_rule_module]"]',function(){$_o.$_cp.rule_module_slt(this)});inputSelectCustom($_o.formObj+' select[name="level_url[url_web][charset]"]','level_url[url_web][charset_custom]');$($_o.formObj+' .add-url-web-form').bind('click',function(){$_o.$_cp.add_page_url_web('level_url','form','','')});$($_o.formObj+' .c-p-url-web-form').on('click','.delete-url-web-form',function(){$(this).parents('tr').eq(0).remove()});$($_o.formObj+' .add-url-web-header').bind('click',function(){$_o.$_cp.add_page_url_web('level_url','header','','')});$($_o.formObj+' .c-p-url-web-header').on('click','.delete-url-web-header',function(){$(this).parents('tr').eq(0).remove()});$($_o.formObj).on('click','.c-p-url-page-signs .btn-page-signs',function(){$_o.$_cp.parent_page_signs(this)});if(level_url){var loadParams=['name'];for(var i in loadParams){if(level_url[loadParams[i]]){$($_o.formObj+' [name="level_url['+loadParams[i]+']"]').val(level_url[loadParams[i]])}}
$_o.$_cp.load_page('level_url',level_url)}},add:function(objid,level_url){var $_o=this;var areaSigns=$_o.$_cp.rule_signs(level_url.area);var urlSigns=$_o.$_cp.rule_signs(level_url.url_rule);if(areaSigns&&areaSigns.length>0){areaSigns=areaSigns.join(' ')}else{areaSigns=''}
if(urlSigns&&urlSigns.length>0){urlSigns=urlSigns.join(' ')}else{urlSigns=''}
var objEle=null;if(objid){objEle=$($_o.$_cp.formid+' #'+objid)}else{objEle=$_o.$_cp.clone_tpl('#coll_tpl_level_url');objEle.attr('id','level_url_'+generateUUID());$($_o.$_cp.formid+' #c_p_level_urls').append(objEle)}
objEle.find('.name').attr('data-val',level_url.name).text(level_url.name);objEle.find('[name="config[level_urls][]"]').val(url_base64encode(JSON.stringify(level_url)));objEle.find('.signs').val(areaSigns+(areaSigns?' , ':'')+urlSigns)},add_sub:function(){var $_o=this;var objid=$($_o.formObj+' input[name="objid"]').val();var checkName=!0;if(objid){var name=$($_o.$_cp.formid+' #'+objid).find('.name').attr('data-val');if(name==$($_o.formObj+' [name="level_url[name]"]').val()){checkName=!1}}
if(checkName){var hasName=!1;$('#c_p_level_urls [id^="level_url_"] .name').each(function(){if($($_o.formObj+' [name="level_url[name]"]').val()==$(this).attr('data-val')){hasName=!0;return!1}});if(hasName){toastr.error('该名称已存在!');return!1}}
ajaxOpen({type:'POST',dataType:'json',url:$($_o.formObj).attr('action'),data:$($_o.formObj).serialize(),success:function(data){if(data.code==1){$('#myModal').modal('hide');data=data.data;if(data){$_o.add(data.objid,data.level_url)}}else{toastr.error(data.msg)}},error:function(data){toastr.error(data)}});return!1}}
function CpField(cpClass){this.$_cp=cpClass;this.formObj='#form_field'}
CpField.prototype={constructor:CpField,init:function(fieldData){var $_o=this;var sourceOptions=$_o.$_cp.get_source_options();if(sourceOptions){$($_o.formObj+' select[name="field[source]"]').append(sourceOptions)}
$($_o.formObj+' select[name="field[source]"]').bind('change',function(){var areaSigns=null;var urlSigns=null;var fsource=$(this).val();if(!fsource){areaSigns=$_o.$_cp.rule_signs($($_o.$_cp.formid+' [name="config[area]"]').val());urlSigns=$_o.$_cp.rule_signs($($_o.$_cp.formid+' [name="config[url_rule]"]').val())}else if(fsource.indexOf('level_url:')>-1){fsource=fsource.replace('level_url:','');var levelConfig=$('#coll_pattern_level_url .name[data-val="'+fsource+'"]').parents('tr[id^="level_url_"]').eq(0).find('[name="config[level_urls][]"]').val();levelConfig=$_o.$_cp.decode_base2json(levelConfig);if(levelConfig){areaSigns=$_o.$_cp.rule_signs(levelConfig.area);urlSigns=$_o.$_cp.rule_signs(levelConfig.url_rule)}}else if(fsource.indexOf('relation_url:')>-1){fsource=fsource.replace('relation_url:','');var relationConfig=$('#coll_pattern_relation_url .name[data-val="'+fsource+'"]').parents('tr[id^="relation_url_"]').eq(0).find('[name="config[relation_urls][]"]').val();relationConfig=$_o.$_cp.decode_base2json(relationConfig);if(relationConfig){areaSigns=$_o.$_cp.rule_signs(relationConfig.area);urlSigns=$_o.$_cp.rule_signs(relationConfig.url_rule)}}
if(!areaSigns||areaSigns.length<=0){areaSigns=null}
if(!urlSigns||urlSigns.length<=0){urlSigns=null}
var signListId=$_o.formObj+' #c_p_field_sign_list';$(signListId).html('');if(areaSigns){var areaSignHtml='区域规则:';for(var si in areaSigns){if(urlSigns&&urlSigns.indexOf(areaSigns[si])>-1){areaSignHtml+='
'+areaSigns[si]+' '}else{areaSignHtml+='
'+areaSigns[si]+' '}}
areaSignHtml+='
';$(signListId).append(areaSignHtml)}
if(urlSigns){var urlSignHtml='';$(signListId).append(urlSignHtml)}
$(signListId).off('click','a[data-val]').on('click','a[data-val]',function(){insertAtCaret($($_o.formObj+' [name="field[sign]"]'),$(this).attr('data-val'))})});$($_o.formObj+' select[name="field[module]"]').bind('change',function(){$($_o.formObj+' .c-p-field-module').hide();$($_o.formObj+' .c-p-field-module[module="'+$(this).val()+'"]').show();var source_module=new Array('rule','xpath','json','auto','sign');var in_module=!1;for(var i in source_module){if($(this).val()==source_module[i]){in_module=!0;break}}
if(in_module){$($_o.formObj+' .c-p-field-source').show()}else{$($_o.formObj+' select[name="field[source]"]').val('');$($_o.formObj+' .c-p-field-source').hide()}});$($_o.formObj+' select[name="field[extract_module]"]').bind('change',function(){$('.c-p-field-extract-module').hide();$('.c-p-field-extract-module[extract-module="'+$(this).val()+'"]').show()});var fieldList=$_o.$_cp.get_fields();for(var i in fieldList){if(fieldData&&fieldData.name==fieldList[i]){continue}
$($_o.formObj+' #c_p_field_merge_list').append('[字段:'+fieldList[i]+'] ');$($_o.formObj+' [name="field[extract]"]').append(''+fieldList[i]+' ')}
$($_o.formObj+' #c_p_field_time_format_list').on('click','a[data-val]',function(){insertAtCaret($($_o.formObj+' [name="field[time_format]"]'),$(this).attr('data-val'))});$($_o.formObj+' #c_p_field_merge_list').on('click','a[data-val]',function(){insertAtCaret($($_o.formObj+' [name="field[merge]"]'),$(this).attr('data-val'))});$($_o.formObj+' input[name="field[time_start]"],#form_field input[name="field[time_end]"]').datetimepicker({lang:'ch'});$($_o.formObj).bind('submit',function(){$_o.add_sub();return!1});cpFieldInitRules($_o.formObj,'');cpFieldInitRules($_o.formObj,'extract_');if(fieldData){for(var i in fieldData){var fieldEle=$($_o.formObj+' [name="field['+i+']"]');if(fieldEle.is('input:text')){fieldEle.val(fieldData[i])}else if(fieldEle.is('select')){fieldEle.val(fieldData[i]).trigger("change")}}
if(!fieldData.hasOwnProperty('source')){$($_o.formObj+' [name="field[source]"]').trigger("change")}
$($_o.formObj+' [name="field[auto]"][value="'+fieldData.auto+'"]').prop('checked',!0);cpFieldLoadRules($_o.formObj,'',fieldData);cpFieldLoadRules($_o.formObj,'extract_',fieldData)}},add:function(objid,fieldData,processData){var $_o=this;var fieldSource='内容页';if(fieldData.source){if('source_url'==fieldData.source){fieldSource='起始页'}else if(fieldData.source.indexOf('level_url:')>-1){fieldSource='多级页:'+fieldData.source.replace('level_url:','')}else if(fieldData.source.indexOf('relation_url:')>-1){fieldSource='关联页:'+fieldData.source.replace('relation_url:','')}}
var isLoop='';if(fieldData.module=='rule'){if(fieldData.rule_multi&&fieldData.rule_multi_type=='loop'){isLoop=' - 循环入库'}}else if(fieldData.module=='xpath'){if(fieldData.xpath_multi&&fieldData.xpath_multi_type=='loop'){isLoop=' - 循环入库'}}else if(fieldData.module=='json'){if(fieldData.json_loop){isLoop=' - 循环入库'}}
if(isLoop){$('#c_p_field_loop_tips').show()}
if(objid){var eleObj=$($_o.$_cp.formid+' #'+objid);eleObj.find('.field-name').attr('data-val',fieldData.name).text(fieldData.name);eleObj.find('.field-source').attr('data-val',fieldData.source).text(fieldSource);eleObj.find('.field-module').attr('data-val',fieldData.module).text(window.tpl_lang['field_module_'+fieldData.module]+isLoop);if(isLoop){eleObj.find('.field-module').attr('data-is-loop',1)}else{eleObj.find('.field-module').removeAttr('data-is-loop')}
eleObj.find('input[name="config[field_list][]"]').val(url_base64encode(JSON.stringify(fieldData)))}else{var ptitle='';if(processData){ptitle=[];for(var i in processData){ptitle.push(window.tpl_lang['process_module_'+processData[i].module]+(processData[i].title?(':'+processData[i].title):''))}
ptitle=ptitle.join(' / ')}
var html=$_o.$_cp.clone_tpl('#coll_tpl_field');html.attr('id','field_'+generateUUID());html.find('.field-name').attr('data-val',fieldData.name).text(fieldData.name);html.find('.field-source').attr('data-val',fieldData.source).text(fieldSource);html.find('.field-module').attr('data-val',fieldData.module).text(window.tpl_lang['field_module_'+fieldData.module]+isLoop);if(isLoop){html.find('.field-module').attr('data-is-loop',1)}else{html.find('.field-module').removeAttr('data-is-loop')}
html.find('[name="config[field_list][]"]').val(url_base64encode(JSON.stringify(fieldData)));html.find('[name="config[field_process][]"]').val(processData?url_base64encode(JSON.stringify(processData)):'');if(processData){html.find('.field-process').addClass('exist-process')}
html.find('.field-process').attr('title',ptitle);html.find('[name="config[field_title]"]').val(fieldData.name);$($_o.$_cp.formid+' #coll_pattern_field .c-p-field-list').append(html)}},add_sub:function(){var $_o=this;var objid=$($_o.formObj+' input[name="objid"]').val();var checkName=!0;if(objid){var fname=$($_o.$_cp.formid+' #'+objid).find('.field-name').attr('data-val');if(fname==$($_o.formObj+' input[name="field[name]"]').val()){checkName=!1}}
if(checkName){var hasName=!1;var fieldList=$_o.$_cp.get_fields();for(var i in fieldList){if($($_o.formObj+' input[name="field[name]"]').val()==fieldList[i]){hasName=!0;break}}
if(hasName){toastr.error('字段名称已存在!');return!1}}
ajaxOpen({type:'POST',dataType:'json',url:$($_o.formObj).attr('action'),data:$($_o.formObj).serialize(),success:function(data){if(data.code==1){data=data.data;if(data){$_o.add(data.objid,data.field,data.process)}
$('#myModal').modal('hide')}else{toastr.error(data.msg)}},error:function(data){toastr.error(data)}});return!1},clearall:function(){var $_o=this;$($_o.$_cp.formid+' #coll_pattern_field .c-p-field-list tbody').html('')},add_default:function(){var $_o=this;confirmRight('添加默认字段会清除当前字段列表,是否继续?',function(){$_o.clearall();var defFields=new Array({"name":"标题","module":"auto","auto":"title"},{"name":"正文","module":"auto","auto":"content"},{"name":"keywords","module":"auto","auto":"keywords"},{"name":"description","module":"auto","auto":"description"});for(var i in defFields){$_o.add(null,defFields[i],null)}})}}
function cpFieldInitRules(boxId,namePre){namePre=namePre?namePre:'';$(boxId+' [name="field['+namePre+'rule_multi]"]').bind('change',function(){if($(this).is(':checked')){$(boxId+' #c_p_field_'+namePre+'rule_multi_str').show()}else{$(boxId+' #c_p_field_'+namePre+'rule_multi_str').hide()}});$(boxId+' select[name="field['+namePre+'xpath_attr]"]').bind('change',function(){if($(this).val()=='custom'){$(boxId+' [name="field['+namePre+'xpath_attr_custom]"]').show()}else{$(boxId+' [name="field['+namePre+'xpath_attr_custom]"]').hide()}});$(boxId+' [name="field['+namePre+'xpath_multi]"]').bind('change',function(){if($(this).is(':checked')){$(boxId+' #c_p_field_'+namePre+'xpath_multi_str').show()}else{$(boxId+' #c_p_field_'+namePre+'xpath_multi_str').hide()}});$(boxId+' select[name="field['+namePre+'json_arr]"]').bind('change',function(){if($(this).val()=='implode'){$(boxId+' #c_p_field_'+namePre+'json_arr_implode').show()}else{$(boxId+' #c_p_field_'+namePre+'json_arr_implode').hide()}})}
function cpFieldLoadRules(boxId,namePre,fieldData){namePre=namePre?namePre:'';if(fieldData){$(boxId+' [name="field['+namePre+'rule]"]').val(fieldData[namePre+'rule']);$(boxId+' [name="field['+namePre+'rule_merge]"]').val(fieldData[namePre+'rule_merge']);if(fieldData[namePre+'rule_multi']){$(boxId+' [name="field['+namePre+'rule_multi]"]').prop('checked',!0).trigger('change')}
$(boxId+' [name="field['+namePre+'rule_multi_type]"][value="'+(fieldData[namePre+'rule_multi_type']?fieldData[namePre+'rule_multi_type']:'')+'"]').prop('checked',!0);$(boxId+' [name="field['+namePre+'xpath]"]').val(fieldData[namePre+'xpath']);if(fieldData[namePre+'xpath_multi']){$(boxId+' [name="field['+namePre+'xpath_multi]"]').prop('checked',!0).trigger('change')}
$(boxId+' [name="field['+namePre+'xpath_multi_type]"][value="'+(fieldData[namePre+'xpath_multi_type']?fieldData[namePre+'xpath_multi_type']:'')+'"]').prop('checked',!0);if(fieldData[namePre+'json_loop']){$(boxId+' [name="field['+namePre+'json_loop]"]').prop('checked',!0)}
$(boxId+' [name="field['+namePre+'json_arr_implode]"]').val(fieldData[namePre+'json_arr_implode'])}}
function CpProcess(cpClass){this.$_cp=cpClass;this.processForm='';this.processBox='';this.processFormField='#form_process';this.processFormCommon='#coll_pattern_process';this.processBoxField='#window_process';this.processBoxCommon='#c_p_process_load'}
CpProcess.prototype={constructor:CpProcess,init:function(processData,isCommon,isCommonLoad){var $_o=this;$_o.processForm=isCommon?$_o.processFormCommon:$_o.processFormField;if(isCommon&&isCommonLoad){$_o.processBox=$_o.processBoxCommon}else{$_o.processBox=$_o.processBoxField}
if($($_o.processForm).is('form')){$($_o.processForm).bind('submit',function(){$_o.add_sub();return!1})}
$($_o.processBox+' .process-add').bind('click',function(){var module=$($_o.processBox+' select[name="process[module]"]').val();$_o.add({'add_new':1,'module':module})});if($($_o.processForm).prop('inited')==1){return!0}
$($_o.processForm).on('click','.p-m-html-tags a[data-val]',function(){var tag=$(this).attr('data-val');var moduleHtml=$(this).parents('.p-m-html-tags').eq(0).attr('module-html');var tagsObj=$(this).parents('section').eq(0).find('input[data-process="html:'+moduleHtml+'"]');var tags=tagsObj.val()+','+tag;tags=tags.replace(/(^,+)|(,+$)/,'');tagsObj.val(tags)});$($_o.processForm).on('change','[data-process="insert:insert_loc"]',function(){var helpEle=$(this).siblings('.help-block');if($(this).val()=='rand'){helpEle.show()}else{helpEle.hide()}});$($_o.processForm).on('click','.p-m-func-fields .dropdown-toggle',function(){if(!$(this).attr('data-fields-tpl')){$(this).attr('data-fields-tpl',$(this).parent().find('.dropdown-menu').html())}
var fieldList=$_o.$_cp.get_fields();if(fieldList){var html='';for(var i in fieldList){html+='[字段:'+fieldList[i]+'] '}
html=$(this).attr('data-fields-tpl')+html;$(this).parent().find('.dropdown-menu').html(html)}});$($_o.processForm).on('click','.p-m-func-fields .dropdown-menu a',function(){var val=$(this).attr('data-val');if(val){var obj=$(this).parents('section').eq(0).find('[data-process="func:func_param"]');obj.val(obj.val()+val)}});$($_o.processForm).on('click','.p-m-if-add',function(){var ifTable=$(this).parents('section').eq(0).find('.p-m-if-table');ifTable.append(''+ifTable.attr('data-tpl')+' ')});$($_o.processForm).on('click','.p-m-if-del',function(){var tr=$(this).parents('tr').eq(0);confirmRight('确定删除?',function(){tr.remove()})});eleExchange($_o.processForm+' .c-p-process-accordion','.p-m-if-table .glyphicon-arrow-up','.p-m-if-table .glyphicon-arrow-down','tr');$($_o.processForm).on('focus','[data-process="if:if_field:"]',function(){$_o.if_field_select($(this),$(this).val())});$($_o.processForm).on('change','[data-process="if:if_cond:"]',function(){var ifCond=$(this).val();var ifTr=$(this).parents('tr').eq(0);var ifVal=ifTr.find('input[data-process="if:if_val:"],textarea[data-process="if:if_val:"]');var ifTd=ifVal.parents('td').eq(0);ifTd.removeClass('input-group');ifTd.children().hide();ifTd.children('input,textarea').show();if(ifCond=='func'){ifTd.find('.p-m-if-func').show();if(ifVal.is('input')){ifTd.append('');ifTd.find('textarea[data-process="if:if_val:"]').attr('name',ifVal.attr('name')).val(ifVal.val());ifVal.remove()}
$_o.load_if_func(ifTd,null)}else{if(ifCond.indexOf('time_')==0){ifTd.addClass('input-group');ifTd.find('.p-m-if-time').show()}
if(ifVal.is('textarea')){ifTd.prepend(' ');ifTd.find('input[data-process="if:if_val:"]').attr('name',ifVal.attr('name')).val(ifVal.val());ifVal.remove()}}});$($_o.processForm).on('change','.p-m-if-time-val',function(){$(this).parents('tr').eq(0).find('[data-process="if:if_val:"]').val($(this).val())});$($_o.processForm).on('click','.p-m-if-func-info',function(){pluginFuncTips('processIf')});$($_o.processForm).on('click','.p-m-if-info',function(){var tips='执行顺序:从上至下判断,逻辑符“并且”的优先级高于“或者”
'+'例如(字母表示条件):
'+'a && b || c && d && e || f || g && h && i && j 等同于
'+'(a && b) || (c && d && e) || f || (g && h && i && j)
'+'括号中的条件都为真时才是真否则为假,整条语句中任意一个括号的结果为真最终结果为真,都为假最终结果为假
';confirmRight({msg:tips,yes:'确定',width:500,textAlign:'left'})});$($_o.processForm).on('click','.p-m-api-add',function(){var apiTable=$(this).parents('section').eq(0).find('.p-m-api-table');apiTable.append(''+apiTable.attr('data-tpl')+' ')});$($_o.processForm).on('click','.p-m-api-del',function(){var tr=$(this).parents('tr').eq(0);tr.remove()});inputSelectCustom(null,null,{box:$_o.processForm,slt:'[data-process="api:api_charset"]',ipt:'[data-process="api:api_charset_custom"]'});$($_o.processForm).on('change','[data-process="api:api_params:val:"]',function(){var val=$(this).val();var ipt=$(this).parents('td').eq(0).find('[data-process="api:api_params:addon:"]');if(val=='time'||val=='custom'){if(val=='time'){ipt.attr('placeholder','默认格式:Y-m-d H:i:s')}else{ipt.attr('placeholder','')}
ipt.show()}else{ipt.hide()}});$($_o.processForm).on('click','.p-m-api-header-add',function(){var apiHdTable=$(this).parents('section').eq(0).find('.p-m-api-header-table');apiHdTable.append(''+apiHdTable.attr('data-tpl')+' ')});$($_o.processForm).on('click','.p-m-api-header-del',function(){var tr=$(this).parents('tr').eq(0);tr.remove()});$($_o.processForm).on('change','[data-process="api:api_json_arr"]',function(){var ipt=$(this).parent().find('[data-process="api:api_json_implode"]');if($(this).val()=='implode'){ipt.show()}else{ipt.hide()}});$($_o.processForm).on('click','.sign-wildcard',function(){var toObj=$(this).parent().siblings('[data-process="replace:replace_from"]');cpWildcard(toObj)});$($_o.processForm).on('click','.c-p-process-title',function(){var panelTitle=$(this).parents('.panel').eq(0).find('.panel-title-title');if(panelTitle.find('input').is(':visible')){panelTitle.find('*').show();panelTitle.find('input').hide()}else{panelTitle.find('*').hide();panelTitle.find('input').show()}});(function(processForm,processBox){$(processForm).on('click','.c-p-process-clone',function(){var panelObj=$(this).parents('.panel[data-name^="process"]').eq(0);var formEle=document.createElement('form');$(formEle).append(panelObj.clone());$(panelObj).find('[name^="process"]').each(function(index){var processEle=$(formEle).find('[name^="process"]').eq(index);if($(this).is('input:radio')||$(this).is('input:checkbox')){processEle.prop('checked',$(this).is(':checked'))}else{processEle.val($(this).val())}});confirmRight({msg:'拷贝或复制数据处理',yes:'复制',no:'拷贝',close:!0},function(){ajaxOpen({type:'POST',dataType:'json',url:ulink('Cpattern/clone_process'),data:$(formEle).serialize(),success:function(data){if(data.code==1){$_o.processForm=processForm;$_o.processBox=processBox;$_o.add(data.data);toastr.success(data.msg)}}})},function(){ajaxOpen({type:'POST',dataType:'json',url:ulink('Cpattern/clone_process?op=copy'),data:$(formEle).serialize(),success:function(data){if(data.code==1){toastr.success(data.msg)}}})})})})($_o.processForm,$_o.processBox);$($_o.processForm).on('click','.c-p-process-del',function(){$_o.del(this)});eleExchange($_o.processForm+' .c-p-process-accordion','.panel-title-ops .glyphicon-arrow-up','.panel-title-ops .glyphicon-arrow-down','.panel');if(processData){for(var i in processData){if(processData[i]){$_o.add(processData[i])}}}
$($_o.processForm).prop('inited',1)},add_sub:function(){var $_o=this;ajaxOpen({type:'POST',dataType:'json',url:$($_o.processForm).attr('action'),data:$($_o.processForm).serialize(),success:function(data){if(data.code==1){$('#myModal').modal('hide');if(data.data&&data.data.objid){$($_o.$_cp.formid+' #'+data.data.objid).find('input[name="config[field_process][]"]').val(data.data.process_json?url_base64encode(data.data.process_json):'');if(data.data.process){var process=data.data.process;var ptitle=[];for(var i in process){ptitle.push(window.tpl_lang['process_module_'+process[i].module]+(process[i].title?(':'+process[i].title):''))}
ptitle=ptitle.join(' / ');$($_o.$_cp.formid+' #'+data.data.objid).find('.field-process').addClass('exist-process').attr('title',ptitle)}else{$($_o.$_cp.formid+' #'+data.data.objid).find('.field-process').removeClass('exist-process').attr('title','')}}}else{toastr.error(data.msg)}},error:function(data){toastr.error(data)}});return!1},del:function(obj){var $_o=this;confirmRight('是否删除?',function(){$(obj).parents('.panel').eq(0).remove()})},load_if_func:function(box,setVal){var $_o=this;loadPluginFunc({module:'processIf',boxObj:box,funcObj:'[data-process="if:if_addon:func:"]',paramObj:'[data-process="if:if_val:"]',funcVal:setVal,cache:!0})},add:function(params){var $_o=this;params=params?params:{};if(!params.module){toastr.error('请选择处理方式');return!1}
params.module=htmlspecialchars(params.module);params.title=params.title?htmlspecialchars(params.title):'';var parentid=$($_o.processForm+' .c-p-process-accordion').attr('id');if(!parentid){parentid='p_accordion_'+generateUUID();$($_o.processForm+' .c-p-process-accordion').attr('id',parentid)}
var dataParent=parentid?('data-parent="#'+parentid+'"'):'';var moduleHtml=$($_o.processBox+' .c-p-process-module[module="'+params.module+'"]').html();if(params.module=='html'){moduleHtml=moduleHtml.replace(/p_m_html_allow/ig,'p_m_html_allow_'+generateUUID());moduleHtml=moduleHtml.replace(/p_m_html_filter/ig,'p_m_html_filter_'+generateUUID())}
var processName='process[i_'+generateUUID()+']';moduleHtml=' '+moduleHtml;var collapseId='p_collapse_'+generateUUID();var html=$_o.$_cp.clone_tpl('#coll_tpl_process');html.attr('data-name',processName);html.find('a[data-toggle="collapse"]').attr('data-parent','#'+parentid).attr('href','#'+collapseId);if(params.title){html.find('.panel-title > a[data-toggle="collapse"]').text(window.tpl_lang['process_module_'+params.module]+':');html.find('.panel-title-title > a[data-toggle="collapse"]').text(params.title).show()}else{html.find('.panel-title > a[data-toggle="collapse"]').text(window.tpl_lang['process_module_'+params.module]);html.find('.panel-title-title > a[data-toggle="collapse"]').hide()}
html.find('.panel-title-title > input:text').attr('name',processName+'[title]').val(params.title?params.title:'');html.find('.panel-collapse').attr('id',collapseId);if(params.add_new){html.find('.panel-collapse').addClass('in')}
html.find('.panel-body').html(moduleHtml);$($_o.processForm+' .c-p-process-accordion').append(html);$($_o.processForm).show();var curCollapse=$_o.processForm+' #'+collapseId;$(curCollapse).find('[data-process]').each(function(){var eleName=$(this).attr('data-process').split(':');eleName[1]=processName+'['+eleName[1]+']';if(eleName.length>=3){eleName[1]+=eleName[2]?('['+eleName[2]+']'):'[]'}
if(eleName.length>=4){eleName[1]+=eleName[3]?('['+eleName[3]+']'):'[]'}
$(this).attr('name',eleName[1])});if(params.module=='html'){$(curCollapse).find('[data-process="html:html_allow"]').val(params.html_allow?params.html_allow:'');$(curCollapse).find('[data-process="html:html_filter"]').val(params.html_filter?params.html_filter:'');if(params.html_filter){$(curCollapse).find('a[href^="#p_m_html_filter"]').tab('show')}}else if(params.module=='insert'){$(curCollapse).find('[data-process="insert:insert_loc"]').val(params.insert_loc?params.insert_loc:'').trigger('change');$(curCollapse).find('[data-process="insert:insert_txt"]').val(params.insert_txt?params.insert_txt:'')}else if(params.module=='replace'){$(curCollapse).find('[data-process="replace:replace_from"]').val(params.replace_from?params.replace_from:'');$(curCollapse).find('[data-process="replace:replace_to"]').val(params.replace_to?params.replace_to:'')}else if(params.module=='filter'){$(curCollapse).find('[data-process="filter:filter_list"]').val(params.filter_list?params.filter_list:'');$(curCollapse).find('[data-process="filter:filter_replace"]').val(params.filter_replace?params.filter_replace:'');$(curCollapse).find('[data-process="filter:filter_pass"][value="'+params.filter_pass+'"]').prop('checked',!0)}else if(params.module=='tool'){$(curCollapse).find('[data-process="tool:tool_list"]').attr('name',processName+'[tool_list][]');if(params.tool_list){for(var ti in params.tool_list){$(curCollapse).find('[data-process="tool:tool_list"][value="'+params.tool_list[ti]+'"]').prop('checked',!0)}}}else if(params.module=='translate'){$(curCollapse).find('[data-process="translate:translate_from"]').val(params.translate_from?params.translate_from:'');$(curCollapse).find('[data-process="translate:translate_to"]').val(params.translate_to?params.translate_to:'')}else if(params.module=='batch'){$(curCollapse).find('[data-process="batch:batch_list"]').val(params.batch_list?params.batch_list:'')}else if(params.module=='substr'){$(curCollapse).find('[data-process="substr:substr_len"]').val(params.substr_len?params.substr_len:'');$(curCollapse).find('[data-process="substr:substr_end"]').val(params.substr_end?params.substr_end:'')}else if(params.module=='func'){$(curCollapse).find('[data-process="func:func_param"]').val(params.func_param?params.func_param:'');loadPluginFunc({module:'process',boxObj:$(curCollapse),funcObj:'[data-process="func:func_name"]',paramObj:'[data-process="func:func_param"]',funcVal:params.func_name,cache:!0})}else if(params.module=='if'){var ifTrTpl=$(curCollapse).find('.p-m-if-table-tpl');var ifTable=$(curCollapse).find('.p-m-if-table');ifTable.attr('data-tpl',ifTrTpl.html());ifTrTpl.remove();if(params.if_type){$(curCollapse).find('[data-process="if:if_type"]').val(params.if_type)}
if(params.if_logic&¶ms.if_cond&¶ms.if_val){params.if_addon=params.if_addon?params.if_addon:{};for(var i in params.if_logic){ifTable.find('tbody').append(''+ifTable.attr('data-tpl')+' ');var curIfTr=ifTable.find('tr[data-if-id="'+i+'"]');curIfTr.find('[data-process="if:if_logic:"]').val(params.if_logic[i]);curIfTr.find('[data-process="if:if_cond:"]').val(params.if_cond[i]).trigger('change');curIfTr.find('[data-process="if:if_val:"]').val(params.if_val[i]);if(params.if_field&¶ms.if_field[i]){$_o.if_field_select(curIfTr.find('[data-process="if:if_field:"]'),params.if_field[i])}
if(params.if_cond[i]=='func'){var ifFuncVal='';if(params.if_addon.func){ifFuncVal=params.if_addon.func[i]}
$_o.load_if_func(curIfTr,ifFuncVal);if(params.if_addon.turn){curIfTr.find('[data-process="if:if_addon:turn:"]').val(params.if_addon.turn[i])}}}}}else if(params.module=='api'){var apiTrTpl=$(curCollapse).find('.p-m-api-table-tpl');var apiTable=$(curCollapse).find('.p-m-api-table');apiTable.attr('data-tpl',apiTrTpl.html());apiTrTpl.remove();var apiHdTrTpl=$(curCollapse).find('.p-m-api-header-table-tpl');var apiHdTable=$(curCollapse).find('.p-m-api-header-table');apiHdTable.attr('data-tpl',apiHdTrTpl.html());apiHdTrTpl.remove();$(curCollapse).find('[data-process="api:api_url"]').val(params.api_url?params.api_url:'');$(curCollapse).find('[data-process="api:api_type"]').val(params.api_type?params.api_type:'');$(curCollapse).find('[data-process="api:api_charset"]').val(params.api_charset?params.api_charset:'').trigger('change');$(curCollapse).find('[data-process="api:api_charset_custom"]').val(params.api_charset_custom?params.api_charset_custom:'');if(params.api_params){params.api_params.name=params.api_params.name?params.api_params.name:{};params.api_params.val=params.api_params.val?params.api_params.val:{};params.api_params.addon=params.api_params.addon?params.api_params.addon:{};for(var i in params.api_params.name){var trId='p-m-api-param_'+generateUUID();var trTpl=''+apiTable.attr('data-tpl')+' ';apiTable.find('tbody').append(trTpl);apiTable.find('#'+trId+' [data-process="api:api_params:name:"]').val(params.api_params.name[i]);apiTable.find('#'+trId+' [data-process="api:api_params:val:"]').val(params.api_params.val[i]?params.api_params.val[i]:'').trigger('change');apiTable.find('#'+trId+' [data-process="api:api_params:addon:"]').val(params.api_params.addon[i]?params.api_params.addon[i]:'')}}
if(params.api_headers){params.api_headers.name=params.api_headers.name?params.api_headers.name:{};params.api_headers.val=params.api_headers.val?params.api_headers.val:{};for(var i in params.api_headers.name){var trId='p-m-api-header_'+generateUUID();var trTpl=''+apiHdTable.attr('data-tpl')+' ';apiHdTable.find('tbody').append(trTpl);apiHdTable.find('#'+trId+' [data-process="api:api_headers:name:"]').val(params.api_headers.name[i]);apiHdTable.find('#'+trId+' [data-process="api:api_headers:val:"]').val(params.api_headers.val[i]?params.api_headers.val[i]:'')}}
$(curCollapse).find('[data-process="api:api_json"]').val(params.api_json?params.api_json:'');$(curCollapse).find('[data-process="api:api_json_arr"]').val(params.api_json_arr?params.api_json_arr:'implode').trigger('change');$(curCollapse).find('[data-process="api:api_json_implode"]').val(params.api_json_implode?params.api_json_implode:'');$(curCollapse).find('[data-process="api:api_interval"]').val(params.api_interval?params.api_interval:'');$(curCollapse).find('[data-process="api:api_wait"]').val(params.api_wait?params.api_wait:'');$(curCollapse).find('[data-process="api:api_retry"]').val(params.api_retry?params.api_retry:'')}
if($_o.processForm!=$_o.processFormField){$('#myModal').modal('hide')}},if_field_select:function(obj,val){var $_o=this;var fieldList=$_o.$_cp.get_fields();var fieldOptions='--全部-- ';for(var i in fieldList){fieldOptions+=''+fieldList[i]+' '}
obj.html(fieldOptions).val(val)},}
function cpRuleTips(isPage){var tips='1、规则中的特殊字符:^$.*+|?[]{}() 必须加上“\\”才能转义为字符,否则会识别为正则符号
2、[内容]标签的标识可由数字、字母及下划线组成
';if(isPage){tips+='3、页面级别:多级页 > 多级页子页 > 内容页 > 关联页 > 关联页子页
';tips+='4、[内容]标签可全局调用,但只能调用比自己级别高的页面中的标签,即内容页可调用多级页中的标签而不能调用关联页中的标签
';tips+='5、页面的区域规则和网址规则中有相同标识的[内容]标签时,网址规则会覆盖区域规则中的同名标签
';tips+='6、不同页面中有相同标识的[内容]标签时,低级别页面会覆盖高级别页面中的同名标签
'}
confirmRight({msg:tips,yes:'确定',width:500,textAlign:'left'})}
function cpDelimiterTips(){var tips='如需使用换行符,请注意区别:
文本换行符:\\r\\n (适用于系统文件中)
标签换行符:<br /> (适用于网页HTML中)
';confirmRight({msg:tips,yes:'确定',width:350,textAlign:'left'})}
function cpMatch(toObj,options){if(!options){options={}}
var sign=window.tpl_lang.sign_match;var group='(?[\\s\\S]*?)';if(options.only){sign=sign.replace('{:id}','');var curVal=$(toObj).val();if(curVal.indexOf(sign)<0&&curVal.indexOf('(?')<0&&curVal.indexOf('(?')<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)}}
function cpMatchN(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(''+each+' ')}}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(''+sign+' ')}}else{if($(toObj).val().indexOf(sign)<0){insertAtCaret($(toObj),sign)}}}}
if(!toObj){return returnList}}
function cpWildcard(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)}}