2019-02-19 09:52:13 +00:00
/ *
| -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
| SkyCaiji ( 蓝天采集器 )
| -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
2019-06-23 02:20:58 +00:00
| Copyright ( c ) 2018 https : //www.skycaiji.com All rights reserved.
2019-02-19 09:52:13 +00:00
| -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
2019-06-23 02:20:58 +00:00
| 使用协议 https : //www.skycaiji.com/licenses
2019-02-19 09:52:13 +00:00
| -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
2021-09-10 03:28:01 +00:00
'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 ( ' cli
2019-02-19 09:52:13 +00:00
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 } ) } }
2021-09-10 03:28:01 +00:00
$ ( 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 ) } }
2019-02-19 09:52:13 +00:00
if ( config . field _title ) { $ ( this . formid + ' [name="config[field_title]"]' ) . each ( function ( ) { if ( $ ( this ) . val ( ) == config . field _title ) { $ ( this ) . prop ( 'checked' , 'checked' ) } } ) }
2021-09-10 03:28:01 +00:00
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 ( '<div class="loading" style="margin:5px 0 0 -5px;"></div>' ) } , 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 }
2019-02-19 09:52:13 +00:00
$ ( 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 ) }
2019-03-14 09:13:21 +00:00
$ ( 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 = '<div class="form-group"><div class="input-group">' ; var regLarge = /[\r\n]/ ; if ( regLarge . test ( params . url ) ) { html += '<textarea class="form-control" name="config[source_url][]" rows="5" id="url_' + generateUUID ( ) + '">' + htmlspecialchars ( params . url ) + '</textarea>' } else { html += '<input type="text" class="form-control" name="config[source_url][]" id="url_' + generateUUID ( ) + '" value="' + htmlspecialchars ( params . url ) + '">' }
2019-02-19 09:52:13 +00:00
html = html + '<div class="input-group-addon brl_0"><a class="glyphicon glyphicon-edit"></a></div>' + '<div class="input-group-addon brl_0"><a class="glyphicon glyphicon-remove"></a></div>' + '<div class="input-group-addon"><a href="javascript:;" class="glyphicon glyphicon-arrow-up"></a> <a href="javascript:;" class="glyphicon glyphicon-arrow-down"></a></div></div></div>' }
2021-09-10 03:28:01 +00:00
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 } }
2019-02-19 09:52:13 +00:00
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 } ) }
2019-03-14 09:13:21 +00:00
$ ( '#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 } ) }
2021-09-10 03:28:01 +00:00
$ ( '#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 ( '<option value="level_url:' + levelName + '">' + levelName + '</option>' ) } ) ; if ( ( $ ( $ _o . formid + ' [name="config[source_is_url]"]' ) . is ( ':checked' ) != ! 0 ) && level _urls . length > 0 ) { options += '<optgroup label="多级页">' + level _urls . join ( '' ) + '</optgroup>' }
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 ( '<option value="relation_url:' + relationName + '">' + relationName + '</option>' ) } ) ; if ( relation _urls . length > 0 ) { options += '<optgroup label="关联页">' + relation _urls . join ( '' ) + '</optgroup>' }
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 = '<option value="">--请选择--</option><option value="::all">-全部字段-</option>' ; for ( var i in fieldList ) { fieldOptions += '<option value="' + fieldList [ i ] + '">' + fieldList [ i ] + '</option>' }
$ ( 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 = '<a href="javascript:;" class="field" data-field="__field__">__field_name__</a><em class="glyphicon glyphicon-remove-circle delete"></em><input type="hidden" name="config[paging_fields][]" value="__paging_field__" />' ; 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 ( '<div class="param-label paging-field" id="' + objid + '"></div>' ) }
$ ( '#' + 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 = '<option value="">全部</option><option value="source_url">起始页</option><option value="url">内容页</option>' + 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 += '<tr><td>' + pageName + '</td><td>' ; 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 += '<a href="javascript:;" data-val="' + sign + '" style="margin-right:5px;' + color + '">' + sign + '</a>' } else { html += '<span style="margin-right:5px;color:#999;" title="被覆盖">' + sign + '</span>' } }
html += '</td><td>' ; 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 += '<a href="javascript:;" data-val="' + sign + '" style="margin-right:5px;' + color + '">' + sign + '</a>' } else { html += '<span style="margin-right:5px;color:#999;" title="被覆盖">' + sign + '</span>' } }
html += '</td></tr>' }
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 = '<optgroup label="关联页">' ; $ ( '#c_p_relation_urls [id^="relation_url_"] .name' ) . each ( function ( ) { if ( relation _url && $ ( this ) . attr ( 'data-val' ) == relation _url . name ) { return ! 0 }
optRelations += '<option value="' + $ ( this ) . attr ( 'data-val' ) + '">' + $ ( this ) . attr ( 'data-val' ) + '</option>' } ) ; optRelations += '</optgroup>' ; $ ( $ _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 = '<div style="margin-bottom:5px;">区域规则:' ; for ( var si in areaSigns ) { if ( urlSigns && urlSigns . indexOf ( areaSigns [ si ] ) > - 1 ) { areaSignHtml += '<span style="margin-right:7px;color:#999;" title="被覆盖">' + areaSigns [ si ] + '</span>' } else { areaSignHtml += '<a href="javascript:;" style="margin-right:7px;" data-val="' + areaSigns [ si ] + '">' + areaSigns [ si ] + '</a>' } }
areaSignHtml += '</div>' ; $ ( signListId ) . append ( areaSignHtml ) }
if ( urlSigns ) { var urlSignHtml = '<div>网址规则:' ; for ( var si in urlSigns ) { urlSignHtml += '<a href="javascript:;" style="margin-right:7px;" data-val="' + urlSigns [ si ] + '">' + urlSigns [ si ] + '</a>' }
urlSignHtml += '</div>' ; $ ( 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 ( '<a href="javascript:;" style="margin-right:10px;" data-val="[字段:' + fieldList [ i ] + ']">[字段:' + fieldList [ i ] + ']</a>' ) ; $ ( $ _o . formObj + ' [name="field[extract]"]' ) . append ( '<option value="' + fieldList [ i ] + '">' + fieldList [ i ] + '</option>' ) }
$ ( $ _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 = ' - 循环入库' } }
2019-02-19 09:52:13 +00:00
if ( isLoop ) { $ ( '#c_p_field_loop_tips' ) . show ( ) }
2021-09-10 03:28:01 +00:00
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 ) : '' ) ) }
2019-06-23 02:20:58 +00:00
ptitle = ptitle . join ( ' / ' ) }
2021-09-10 03:28:01 +00:00
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 } }
2019-02-19 09:52:13 +00:00
if ( hasName ) { toastr . error ( '字段名称已存在!' ) ; return ! 1 } }
2021-09-10 03:28:01 +00:00
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 += '<li><a href="javascript:;" data-val="[字段:' + fieldList [ i ] + ']">[字段:' + fieldList [ i ] + ']</a></li>' }
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 ( '<tr>' + ifTable . attr ( 'data-tpl' ) + '</tr>' ) } ) ; $ ( $ _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 ( '<textarea rows="2" data-process="if:if_val:" data-placeholder="默认传入当前字段的值" class="form-control"></textarea>' ) ; 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 ( '<input type="text" data-process="if:if_val:" class="form-control" />' ) ; 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 = '<p>执行顺序:从上至下判断,逻辑符“并且”的优先级高于“或者”</p>' + '<p>例如(字母表示条件):</p>' + '<p>a && b || c && d && e || f || g && h && i && j 等同于</p>' + '<p>(a && b) || (c && d && e) || f || (g && h && i && j)</p>' + '<p>括号中的条件都为真时才是真否则为假,整条语句中任意一个括号的结果为真最终结果为真,都为假最终结果为假</p>' ; 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 ( '<tr>' + apiTable . attr ( 'data-tpl' ) + '</tr>' ) } ) ; $ ( $ _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 ( '<tr>' + apiHdTable . attr ( 'data-tpl' ) + '</tr>' ) } ) ; $ ( $ _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 }
2019-02-19 09:52:13 +00:00
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 ( ) ) }
2021-09-10 03:28:01 +00:00
var processName = 'process[i_' + generateUUID ( ) + ']' ; moduleHtml = '<input type="hidden" name="' + processName + '[module]" value="' + params . module + '" />' + 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 ( ) }
2019-09-25 07:45:58 +00:00
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 ] + ']' ) : '[]' }
2021-09-10 03:28:01 +00:00
$ ( 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 && params . if _cond && params . if _val ) { params . if _addon = params . if _addon ? params . if _addon : { } ; for ( var i in params . if _logic ) { ifTable . find ( 'tbody' ) . append ( '<tr data-if-id="' + i + '">' + ifTable . attr ( 'data-tpl' ) + '</tr>' ) ; 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 && params . if _field [ i ] ) { $ _o . if _field _select ( curIfTr . find ( '[data-process="if:if_field:"]' ) , params . if _field [ i ] ) }
2019-09-25 07:45:58 +00:00
if ( params . if _cond [ i ] == 'func' ) { var ifFuncVal = '' ; if ( params . if _addon . func ) { ifFuncVal = params . if _addon . func [ i ] }
2021-09-10 03:28:01 +00:00
$ _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 = '<tr id="' + trId + '">' + apiTable . attr ( 'data-tpl' ) + '</tr>' ; 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 = '<tr id="' + trId + '">' + apiHdTable . attr ( 'data-tpl' ) + '</tr>' ; 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 = '<option value="">--全部--</option>' ; for ( var i in fieldList ) { fieldOptions += '<option value="' + fieldList [ i ] + '">' + fieldList [ i ] + '</option>' }
obj . html ( fieldOptions ) . val ( val ) } , }
function cpRuleTips ( isPage ) { var tips = '<p>1、规则中的特殊字符: <b>^$.*+|?[]{}()</b> 必须加上“\\”才能转义为字符,否则会识别为正则符号</p><p>2、[内容]标签的标识可由数字、字母及下划线组成</p>' ; if ( isPage ) { tips += '<p>3、页面级别: 多级页 > 多级页子页 > 内容页 > 关联页 > 关联页子页</p>' ; tips += '<p>4、[内容]标签可全局调用,但只能调用比自己级别高的页面中的标签,即内容页可调用多级页中的标签而不能调用关联页中的标签</p>' ; tips += '<p>5、页面的区域规则和网址规则中有相同标识的[内容]标签时,网址规则会覆盖区域规则中的同名标签</p>' ; tips += '<p>6、不同页面中有相同标识的[内容]标签时,低级别页面会覆盖高级别页面中的同名标签</p>' }
confirmRight ( { msg : tips , yes : '确定' , width : 500 , textAlign : 'left' } ) }
function cpDelimiterTips ( ) { var tips = '<p>如需使用换行符,请注意区别:</p><p>文本换行符:<b>\\r\\n</b>(适用于系统文件中)</p><p>标签换行符:<b><br /></b>( 适用于网页HTML中) </p>' ; confirmRight ( { msg : tips , yes : '确定' , width : 350 , textAlign : 'left' } ) }
function cpMatch ( 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 ) } }
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 ( '<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 } }
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 ) } }