// 获得采集模式 0: 普通 1: 列表+详情 2: 列表 3: 详情 function getCrawlType(){ var crawlType;// 0: 普通 1: 列表+详情 2: 列表 3: 详情 // 采集模式保存在 文本域里则是人物编辑页 否则是新建任务页 if($("#crawlType").length > 0){ // 编辑任务页 crawlType = $("#crawlType").val(); }else{ // 新建任务页 crawlType = $(".crawlType:checked").val(); } return crawlType; } // 正则 和 xpath切换 function methodChange(){ if($("#method").val() == 1){ $("#regexpTabRow").show(); $("#xpathTabRow").hide(); }else if($("#method").val() == 2){ $("#regexpTabRow").hide(); $("#xpathTabRow").show(); }else { $("#regexpTabRow").hide(); $("#xpathTabRow").hide(); } } //表格错误提示 function tabErr(tabId, msg){ $("#"+tabId).prev().find("div.valierr").find("label").html(msg); } //清除表格错误提示 function clearTabErr(tabId){ $("#"+tabId).prev().find("div.valierr").find("label").html(""); } // 表格行点击事件 function clickTabFunc(tabId){ //单击编辑 $("#"+tabId+" tbody").on( 'click', 'tr', function () { if(tabId == "headerTab"){ editHeaderTab(this); }else if(tabId == "pageTab"){ editPageTab(this);regexpTab }else if(tabId == "regexpTab"){ editRegexpTab(this); }else if(tabId == "xpathTab"){ editXpathTab(this); }else if(tabId == "outConfigTab"){ editOutConfigTab(this); } }); } // 提交任务数据保存时,校验表格是否有未提交行,如有保存,并删除保存失败的行 function isSubmitTab(tabId){ if(tabId == "headerTab" && !saveHeaderTab()){ delHeaderTab(); } if(tabId == "pageTab" && !savePageTab()){ delPageTab(); } if(tabId == "regexpTab" && !saveRegexpTab()){ delRegexpTab(); } if(tabId == "xpathTab" && !saveXpathTab()){ delXpathTab(); } if(tabId == "outConfigTab" && !saveOutConfigTab()){ delOutConfigTab(); } } // header ----------------------------------------------------------------------------------- //新建 function addHeaderTab(){ // 新建前先保存 if(!saveHeaderTab()){ return false; } var html = ""; html+= "" html+= "" html+= "" $("#headerTab tbody").append(html); $("#headerTab tbody tr.edittrue").click(); } //保存 function saveHeaderTab(){ clearTabErr("headerTab"); var trDom = $("#headerTab tbody tr.edittrue"); if(trDom.length > 0){ var obj = {}; trDom.find("td").each(function(index){ obj[index] = $(this).find("input").val(); }); if(obj[0].trim() != "" && obj[1].trim() != ""){ trDom.html(""+obj[0]+""+obj[1]+""); trDom.removeClass("edittrue").css("background-color", ""); }else{ tabErr("headerTab", "header名称和内容不能为空"); return false; } } return true; } //编辑 function editHeaderTab(dom){ //判断点击的行是否已在编辑状态 if($(dom).hasClass("edittrue")){ return; } // 否则,编辑前先保存当前 if(!saveHeaderTab()){ return false; } // 标记为编辑 和 高亮 $(dom).addClass("edittrue").css("background-color", "#B0BED9"); var html = ""; $(dom).find("td").each(function(index){ html+= "" }); $(dom).html(html); } //删除 function delHeaderTab(){ clearTabErr("headerTab"); if($("#headerTab tbody tr.edittrue").length > 0){ $("#headerTab tbody tr.edittrue").remove(); }else{ swal({title: "提示", text: "请选中要删除的数据!", confirmButtonText: "确定!",confirmButtonColor: "#1ab394"}); } } // page ----------------------------------------------------------------------------------- //新建 function addPageTab(){ // 新建前先保存 if(!savePageTab()){ return false; } var html = ""; html+= "" html+= "" html+= "" $("#pageTab tbody").append(html); $("#pageTab tbody tr.edittrue").click(); } //保存 function savePageTab(){ clearTabErr("pageTab"); var trDom = $("#pageTab tbody tr.edittrue"); if(trDom.length > 0){ var obj = {}; trDom.find("td").each(function(index){ obj[index] = $(this).find("input").val(); }); if(obj[0].trim() != "" && obj[1].trim() != ""){ trDom.html(""+obj[0]+""+obj[1]+""); trDom.removeClass("edittrue").css("background-color", ""); }else{ tabErr("pageTab", "分页参数和页码范围不能为空"); return false; } } return true; } //编辑 function editPageTab(dom){ //判断点击的行是否已在编辑状态 if($(dom).hasClass("edittrue")){ return; } // 否则,编辑前先保存当前 if(!savePageTab()){ return false; } // 标记为编辑 和 高亮 $(dom).addClass("edittrue").css("background-color", "#B0BED9"); var html = ""; $(dom).find("td").each(function(index){ html+= "" }); $(dom).html(html); } //删除 function delPageTab(){ clearTabErr("pageTab"); if($("#pageTab tbody tr.edittrue").length > 0){ $("#pageTab tbody tr.edittrue").remove(); }else{ swal({title: "提示", text: "请选中要删除的数据!", confirmButtonText: "确定!",confirmButtonColor: "#1ab394"}); } } // regexp ----------------------------------------------------------------------------------- //新建 function addRegexpTab(){ // 新建前先保存 if(!saveRegexpTab()){ return false; } var html = ""; html+= "" // 0: 普通 1: 列表+详情 2: 列表 3: 详情 var crawlType = getCrawlType(); if(crawlType == "0" || crawlType == "3"){ html+= "正文模版" }else if(crawlType == 2){ html+= "链接模版" }else{ html+= ""; } html+= ""; html+= ""; html+= "" html+= "" $("#regexpTab tbody").append(html); $("#regexpTab tbody tr.edittrue").click(); } //保存 function saveRegexpTab(){ clearTabErr("regexpTab"); var trDom = $("#regexpTab tbody tr.edittrue"); if(trDom.length > 0){ var obj = {}; trDom.find("td").each(function(index){ if(index == 1){ if($(this).html().indexOf("select") != -1){ obj[index] = $(this).find("select").val(); }else{ obj[index] = $(this).html(); } }else{ obj[index] = $(this).find("input").val(); } }); if(obj[0].trim() != "" && obj[3].trim() != ""){ obj[2] = obj[2].replace(//g, ">");//转译 obj[3] = obj[3].replace(//g, ">");//转译 trDom.html(""+obj[0]+""+obj[1]+""+obj[2]+""+obj[3]+""+obj[4]+""); trDom.removeClass("edittrue").css("background-color", ""); if(trDom.hasClass("addtrue")){ // 新建 保存时,创建输出配置 $("#outConfigTab tbody").append(""+obj[0]+"value[@"+obj[0]+"@]"); //删除新建标识 trDom.removeClass("addtrue"); } }else{ tabErr("regexpTab", "字段名称和正则配置不能为空"); return false; } } return true; } //编辑 function editRegexpTab(dom){ //判断点击的行是否已在编辑状态 if($(dom).hasClass("edittrue")){ return; } // 否则,编辑前先保存当前 if(!saveRegexpTab()){ return false; } // 标记为编辑 和 高亮 $(dom).addClass("edittrue").css("background-color", "#B0BED9"); var html = ""; var tdObjArr = []; $(dom).find("td").each(function(index){ if(index == 0){ html+= "" }else if(index == 1){ // 0: 普通 1: 列表+详情 2: 列表 3: 详情 var crawlType = getCrawlType(); if(crawlType == "0" || crawlType == "3"){ html+= ""+$(this).html()+"" }else if(crawlType == 2){ html+= ""+$(this).html()+"" }else{ html+= ""; }else{ html+= ""; } }); $(dom).html(html); // 正则直接填入input会有问题, 这里用jquery赋值 $.each(tdObjArr, function(i, obj){ $(dom).find("td").eq(obj.index).find("input").val(obj.value); }); } //删除 function delRegexpTab(){ clearTabErr("regexpTab"); if($("#regexpTab tbody tr.edittrue").length > 0){ $("#regexpTab tbody tr.edittrue").remove(); }else{ swal({title: "提示", text: "请选中要删除的数据!", confirmButtonText: "确定!",confirmButtonColor: "#1ab394"}); } } // xpath ----------------------------------------------------------------------------------- //新建 function addXpathTab(){ // 新建前先保存 if(!saveXpathTab()){ return false; } var html = ""; html+= "" // 0: 普通 1: 列表+详情 2: 列表 3: 详情 var crawlType = getCrawlType(); if(crawlType == "0" || crawlType == "3"){ html+= "正文模版" }else if(crawlType == 2){ html+= "链接模版" }else{ html+= ""; } html+= "
" + "
"; html+= "
" + "
"; html+= "" html+= "" $("#xpathTab tbody").append(html); $("#xpathTab tbody tr.edittrue").click(); } //保存 function saveXpathTab(){ clearTabErr("xpathTab"); var trDom = $("#xpathTab tbody tr.edittrue"); if(trDom.length > 0){ var obj = {}; trDom.find("td").each(function(index){ if(index == 1){ if($(this).html().indexOf("select") != -1){ obj[index] = $(this).find("select").val(); }else{ obj[index] = $(this).html(); } }else{ obj[index] = $(this).find("input").val(); } }); if(obj[0].trim() != "" && obj[3].trim() != ""){ trDom.html(""+obj[0]+""+obj[1]+""+obj[2]+""+obj[3]+""+obj[4]+""); trDom.removeClass("edittrue").css("background-color", ""); if(trDom.hasClass("addtrue")){ // 新建 保存时,创建输出配置 $("#outConfigTab tbody").append(""+obj[0]+"value[@"+obj[0]+"@]"); //删除新建标识 trDom.removeClass("addtrue"); } }else{ tabErr("xpathTab", "字段名称和xpath配置不能为空"); return false; } } return true; } //编辑 function editXpathTab(dom){ //判断点击的行是否已在编辑状态 if($(dom).hasClass("edittrue")){ return; } // 否则,编辑前先保存当前 if(!saveXpathTab()){ return false; } // 标记为编辑 和 高亮 $(dom).addClass("edittrue").css("background-color", "#B0BED9"); var html = ""; $(dom).find("td").each(function(index){ if(index == 0){ html+= "" }else if(index == 1){ // 0: 普通 1: 列表+详情 2: 列表 3: 详情 var crawlType = getCrawlType(); if(crawlType == "0" || crawlType == "3"){ html+= ""+$(this).html()+"" }else if(crawlType == 2){ html+= ""+$(this).html()+"" }else{ html+= "" + ""; }else{ html+= ""; } }); $(dom).html(html); } //删除 function delXpathTab(){ clearTabErr("xpathTab"); if($("#xpathTab tbody tr.edittrue").length > 0){ $("#xpathTab tbody tr.edittrue").remove(); }else{ swal({title: "提示", text: "请选中要删除的数据!", confirmButtonText: "确定!",confirmButtonColor: "#1ab394"}); } } // outconfig ----------------------------------------------------------------------------------- //新建 function addOutConfigTab(){ // 新建前先保存 if(!saveOutConfigTab()){ return false; } var html = ""; html+= "" html+= ""; html+= "" html+= "" $("#outConfigTab tbody").append(html); $("#outConfigTab tbody tr.edittrue").click(); } //保存 function saveOutConfigTab(){ clearTabErr("outConfigTab"); var trDom = $("#outConfigTab tbody tr.edittrue"); if(trDom.length > 0){ var obj = {}; trDom.find("td").each(function(index){ if($(this).find("select").length > 0){ obj[index] = $(this).find("select").val(); }else{ obj[index] = $(this).find("input").val(); } }); if(obj[0].trim() != "" && obj[2].trim() != ""){ trDom.html(""+obj[0]+""+obj[1]+""+obj[2]+""); trDom.removeClass("edittrue").css("background-color", ""); }else{ tabErr("outConfigTab", "字段名和处理语法不能为空"); return false; } } return true; } //编辑 function editOutConfigTab(dom){ //判断点击的行是否已在编辑状态 if($(dom).hasClass("edittrue")){ return; } // 否则,编辑前先保存当前 if(!saveOutConfigTab()){ return false; } // 标记为编辑 和 高亮 $(dom).addClass("edittrue").css("background-color", "#B0BED9"); var html = ""; $(dom).find("td").each(function(index){ if(index == 1){ html+= "