| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792 |
- // 获得采集模式 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 = "<tr class='edittrue' style='background-color: #B0BED9;'>";
- html+= "<td><input type='text' class='form-control' placeholder='header的名称'></td>"
- html+= "<td><input type='text' class='form-control' placeholder='header的内容'></td>"
- html+= "</tr>"
- $("#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("<td>"+obj[0]+"</td><td>"+obj[1]+"</td>");
- 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+= "<td><input type='text' value='"+$(this).html()+"' class='form-control'></td>"
- });
- $(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 = "<tr class='edittrue' style='background-color: #B0BED9;'>";
- html+= "<td><input type='text' class='form-control'></td>"
- html+= "<td><input type='text' class='form-control'></td>"
- html+= "</tr>"
- $("#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("<td>"+obj[0]+"</td><td>"+obj[1]+"</td>");
- 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+= "<td><input type='text' value='"+$(this).html()+"' class='form-control'></td>"
- });
- $(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 = "<tr class='edittrue addtrue' style='background-color: #B0BED9;'>";
- html+= "<td><input type='text' class='form-control' placeholder='链接提取字段名:LINK,图片提取字段名:IMAGE'></td>"
- // 0: 普通 1: 列表+详情 2: 列表 3: 详情
- var crawlType = getCrawlType();
- if(crawlType == "0" || crawlType == "3"){
- html+= "<td>正文模版</td>"
- }else if(crawlType == 2){
- html+= "<td>链接模版</td>"
- }else{
- html+= "<td><select class='form-control'><option value='链接模版'>链接模版</option><option value='正文模版'>正文模版</option></select></td>";
- }
- html+= "<td><input type='text' value='ROOT' class='form-control'></td>";
- html+= "<td><input type='text' class='form-control'></td>";
- html+= "<td><input type='text' class='form-control'></td>"
- html+= "</tr>"
- $("#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, "<").replace(/>/g, ">");//转译
- obj[3] = obj[3].replace(/</g, "<").replace(/>/g, ">");//转译
- trDom.html("<td>"+obj[0]+"</td><td>"+obj[1]+"</td><td>"+obj[2]+"</td><td>"+obj[3]+"</td><td>"+obj[4]+"</td>");
- trDom.removeClass("edittrue").css("background-color", "");
- if(trDom.hasClass("addtrue")){
- // 新建 保存时,创建输出配置
- $("#outConfigTab tbody").append("<tr><td>"+obj[0]+"</td><td>value</td><td>[@"+obj[0]+"@]</td></tr>");
- //删除新建标识
- 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+= "<td><input type='text' value='"+$(this).html()+"' class='form-control' placeholder='链接提取字段名:LINK,图片提取字段名:IMAGE'></td>"
- }else if(index == 1){
- // 0: 普通 1: 列表+详情 2: 列表 3: 详情
- var crawlType = getCrawlType();
- if(crawlType == "0" || crawlType == "3"){
- html+= "<td>"+$(this).html()+"</td>"
- }else if(crawlType == 2){
- html+= "<td>"+$(this).html()+"</td>"
- }else{
- html+= "<td><select class='form-control'>";
- html+= "<option value='链接模版'";
- if($(this).html() == "链接模版"){
- html+= " selected";
- }
- html+= ">链接模版</option>";
- html+= "<option value='正文模版'";
- if($(this).html() == "正文模版"){
- html+= " selected";
- }
- html+= ">正文模版</option>";
- html+= "</select></td>";
- }
- }else if(index == 2 || index == 3){
- var tdVal = $(this).html().replace(/</g, "<").replace(/>/g, ">");
- tdObjArr.push({"index": index, "value": tdVal});
- html+= "<td><input type='text' value='' class='form-control'></td>";
- }else{
- html+= "<td><input type='text' value='"+$(this).html()+"' class='form-control'></td>";
- }
- });
- $(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 = "<tr class='edittrue addtrue' style='background-color: #B0BED9;'>";
- html+= "<td><input type='text' class='form-control' placeholder='链接提取字段名:LINK,图片提取字段名:IMAGE'></td>"
- // 0: 普通 1: 列表+详情 2: 列表 3: 详情
- var crawlType = getCrawlType();
- if(crawlType == "0" || crawlType == "3"){
- html+= "<td>正文模版</td>"
- }else if(crawlType == 2){
- html+= "<td>链接模版</td>"
- }else{
- html+= "<td><select class='form-control'><option value='链接模版'>链接模版</option><option value='正文模版'>正文模版</option></select></td>";
- }
- html+= "<td><div class='input-group'><input type='text' class='form-control'><span class='input-group-btn'>" +
- "<button id='xpath_pid' type='button' class='btn btn-primary' onclick='openXpathEdit(this)'>选择</button></span></div></td>";
- html+= "<td><div class='input-group'><input type='text' class='form-control'><span class='input-group-btn'>" +
- "<button id='xpath' type='button' class='btn btn-primary' onclick='openXpathEdit(this)'>选择</button></span></div></td>";
- html+= "<td><input type='text' class='form-control'></td>"
- html+= "</tr>"
- $("#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("<td>"+obj[0]+"</td><td>"+obj[1]+"</td><td>"+obj[2]+"</td><td>"+obj[3]+"</td><td>"+obj[4]+"</td>");
- trDom.removeClass("edittrue").css("background-color", "");
- if(trDom.hasClass("addtrue")){
- // 新建 保存时,创建输出配置
- $("#outConfigTab tbody").append("<tr><td>"+obj[0]+"</td><td>value</td><td>[@"+obj[0]+"@]</td></tr>");
- //删除新建标识
- 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+= "<td><input type='text' value='"+$(this).html()+"' class='form-control' placeholder='链接提取字段名:LINK,图片提取字段名:IMAGE'></td>"
- }else if(index == 1){
- // 0: 普通 1: 列表+详情 2: 列表 3: 详情
- var crawlType = getCrawlType();
- if(crawlType == "0" || crawlType == "3"){
- html+= "<td>"+$(this).html()+"</td>"
- }else if(crawlType == 2){
- html+= "<td>"+$(this).html()+"</td>"
- }else{
- html+= "<td><select class='form-control'>";
- html+= "<option value='链接模版'";
- if($(this).html() == "链接模版"){
- html+= " selected";
- }
- html+= ">链接模版</option>";
- html+= "<option value='正文模版'";
- if($(this).html() == "正文模版"){
- html+= " selected";
- }
- html+= ">正文模版</option>";
- html+= "</select></td>";
- }
- }else if(index == 2){
- html+= "<td><div class='input-group'><input type='text' value='"+$(this).html()+"' class='form-control'><span class='input-group-btn'>" +
- "<button id='xpath_pid' type='button' class='btn btn-primary' onclick='openXpathEdit(this)'>选择</button></span></div></td>";
- }else if(index == 3){
- html+= "<td><div class='input-group'><input type='text' value='"+$(this).html()+"' class='form-control'><span class='input-group-btn'>" +
- "<button id='xpath' type='button' class='btn btn-primary' onclick='openXpathEdit(this)'>选择</button></span></div></td>";
- }else{
- html+= "<td><input type='text' value='"+$(this).html()+"' class='form-control'></td>";
- }
- });
- $(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 = "<tr class='edittrue' style='background-color: #B0BED9;'>";
- html+= "<td><input type='text' class='form-control'></td>"
- html+= "<td><select class='form-control'><option value='value'>value</option><option value='拼接'>拼接</option></select></td>";
- html+= "<td><input type='text' class='form-control' placeholder='[@临时变量1@]_[@临时变量2@]'></td>"
- html+= "</tr>"
- $("#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("<td>"+obj[0]+"</td><td>"+obj[1]+"</td><td>"+obj[2]+"</td>");
- 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+= "<td><select class='form-control'>";
- html+= "<option value='value'";
- if($(this).html() == "value"){
- html+= " selected";
- }
- html+= ">value</option>";
- html+= "<option value='拼接'";
- if($(this).html() == "拼接"){
- html+= " selected";
- }
- html+= ">拼接</option>";
- html+= "</select></td>";
- }else{
- html+= "<td><input type='text' value='"+$(this).html()+"' class='form-control'></td>"
- }
- });
- $(dom).html(html);
- }
- //删除
- function delOutConfigTab(){
- clearTabErr("outConfigTab");
- if($("#outConfigTab tbody tr.edittrue").length > 0){
- $("#outConfigTab tbody tr.edittrue").remove();
- }else{
- swal({title: "提示", text: "请选中要删除的数据!", confirmButtonText: "确定!",confirmButtonColor: "#1ab394"});
- }
- }
- //XPath 可视化-------------------------------------------------------------------------------------
- // 0: 链接模版 1: 正文模版
- var savetype;
- // xpath可视化编辑的列数
- var count = 1;
- // 编辑类型 xpath:子节点 xpath_pid:父节点
- var xpathEditType = "xpath";
- //打开可视化编辑
- function openXpathEdit(dom){
- if($("#mainUrl").val() != ""){
- // 获得采集模式 0: 普通 1: 列表+详情 2: 列表 3: 详情
- // 列表+详情 任务时 正则和xpath 新建编辑时 展示类别编辑,否则按模式默认选项
- var crawlType = getCrawlType();
- if(crawlType == 1){// 列表+详情
- savetype = $("#xpathTab tbody tr.edittrue").find("select").val();
- }else if(crawlType == 2){//列表
- // 链接模版
- savetype = 0;
- }else if(crawlType == 3 || crawlType == 0){//详情
- // 正文模版
- savetype = 1;
- }
- // xpath可视化编辑的列数 还原
- count = 1;
- // 编辑类型 xpath:子节点 xpath_pid:父节点
- xpathEditType = $(dom).attr("id");
- jQuery.ajax({
- url: "spiderHtmlTask/extract",
- // data: {mainUrl: "http://news.cctv.com/2017/09/15/ARTIrjSD08QwGpHiuiyZ3fi1170915.shtml"},
- data: {mainUrl: $("#mainUrl").val()},
- dataType: "html",
- success: function (data) {
- //html源码转json有异常,这里处理字符串
- if (data.indexOf("$$$successXpath: true,$$$") != -1) {
- var html = data.replace("$$$successXpath: true,$$$", "").replace("/");
- var scripthtml = "<script type=\"text/javascript\">";
- scripthtml += "window.onload = function (e) {";
- scripthtml += "parent.init(document);";
- //类别:0链接模板(列表),1正文模板 (详情)
- if (savetype == 0) {
- scripthtml += "document.onclick = function (e) {parent.docClick(e);}";
- } else {
- scripthtml += "document.onclick = function (e) {parent.docClick(e,0);}";
- }
- scripthtml += "}";
- scripthtml += "<\/script>";
- html = html.replace("<\/body>", scripthtml + "<\/body>");
- $("#ifram").attr("srcdoc", html);
- openXPathClick();
- } else {
- swal({title: "提示", text: data.replace("$$$successXpath: false,$$$", ""), confirmButtonText: "确定",confirmButtonColor: "#1ab394"});
- }
- }
- });
- }else{
- swal({title: "提示", text: "入口URL不能为空", confirmButtonText: "确定",confirmButtonColor: "#1ab394"});
- }
- }
- //完成创建xpath
- function saveXpath() {
- var divs = document.getElementsByClassName("_dw_th th");
- if (divs.length > 0) {
- var xpathArr = "";
- var nameArr = "";
- var num = 0;
- for (var i = 0; i < divs.length; i++) {
- var xpath = $(divs[i]).find("xpath").html();
- var name = $(divs[i]).find("input").val();
- if (xpath && xpath != "" && name && name != "") {
- if(xpathArr != ""){
- xpathArr += "$$$$$$";
- nameArr += "$$$$$$";
- }
- xpathArr += xpath;
- nameArr += name;
- num++;
- }
- }
- // 编辑类型 xpath:子节点(唯一) xpath_pid:父节点(多值)
- if(xpathEditType == "xpath"){
- $("#xpath").parent().prev().val(xpathArr);
- }else if(xpathEditType == "xpath_pid"){
- $("#xpath_pid").parent().prev().val(xpathArr);
- }
- } else {
- alert('xpath为空!');
- return false;
- }
- closeXPathClick();
- }
- //删除xpath预览 列表(标题和链接)
- function delhtml(dom, delType) {
- // 有正文有链接 删除正文列时删除链接列
- if(delType && delType == 'text'){
- var linkDom = $(dom).parent("div").next();
- linkDom.parent("div").parent("div").next("div").find(".tr").eq(linkDom.index()).remove();
- linkDom.remove();
- }else if(delType && delType == 'link'){
- //删除链接列时删除正文列
- var textDom = $(dom).parent("div").prev();
- textDom.parent("div").parent("div").next("div").find(".tr").eq(textDom.index()).remove();
- textDom.remove();
- }
- var index = $(dom).parent("div").index();
- var tbodyDom = $(dom).parent("div").parent("div").parent("div").next("div");
- tbodyDom.find(".tr").eq(index).remove();
- $(dom).parent("div").remove();
- if (tbodyDom.html() == "") {
- // 关闭XPath预览
- hideLook();
- }
- //计量数消减
- count--;
- if(count < 1){
- count = 1;
- }
- }
- //编辑xpath标题
- function editXpathTitle(dom) {
- //$(dom).parent().find("valu_name");
- var vnObj = $(dom).parent().find("valu_name");
- $(".promptInput").val(vnObj.html());
- $(".popUp:first").addClass("showPrompt");
- $(".promptBtnCancel").click(function () {
- $(".popUp:first").removeClass("showPrompt");
- });
- $(".promptBtnConfirm").click(function () {
- vnObj.html($(".promptInput").val());
- $(".popUp:first").removeClass("showPrompt");
- });
- }
- /*<valu_name>列-' + num + '</valu_name>(总共' + totalNum + '条)*/
- function getLiThHtml(num, xpath) {
- var thhtml = '<div class="_dw_th th">'
- + '<xpath style="display: none">' + xpath + '</xpath>'
- + '<span>'
- + '<div style="position:relative;color: #000000;">'
- + '<select style="width:120px;" onchange="this.nextElementSibling.value=this.value">'
- + '<option value="标题">标题</option>'
- + '<option value="时间">时间</option>'
- + '<option value="来源">来源</option>'
- + '<option value="作者">作者</option>'
- + '</select>'
- + '<input id="input" name="input" type="text" value="标题-' + num + '" style="position:absolute;width:99px;height:23px;left:1px;top:2px;border-bottom:0px;border-right:0px;border-left:0px;border-top:0px;z-index: 9999;">'
- + '</div>'
- + '</span>'
- + '<img class="_dw_td _dw_editThead" onclick="editXpathTitle(this)" src="inspinia/image/xpath/IconEdit.png"/>'
- + '<img class="_dw_td _dw_delThead" onclick="delhtml(this)" src="inspinia/image/xpath/IconRemove.png"/>'
- + '</div>';
- return thhtml;
- }
- function getThHtml(num, totalNum, xpath) {
- var thhtml = '<div class="_dw_th th">'
- + '<xpath style="display: none">' + xpath + '</xpath>'
- + '<span>'
- + '<div style="position:relative;color: #000000;">'
- + '<select style="width:120px;" onchange="this.nextElementSibling.value=this.value">'
- + '<option value="列表1">列表1</option>'
- + '<option value="列表2">列表2</option>'
- + '<option value="列表3">列表3</option>'
- + '<option value="列表4">列表4</option>'
- + '</select>'
- + '<input id="input" name="input" type="text" value="列表-' + num + '" style="position:absolute;width:99px;height:23px;left:1px;top:2px;border-bottom:0px;border-right:0px;border-left:0px;border-top:0px;z-index: 9999;">'
- + '</div>'
- + '</span>'
- + '<img class="_dw_td _dw_editThead" onclick="editXpathTitle(this)" src="inspinia/image/xpath/IconEdit.png"/>'
- + '<img class="_dw_td _dw_delThead" onclick="delhtml(this,\'text\')" src="inspinia/image/xpath/IconRemove.png"/>'
- + '</div>'
- + '<div class="_dw_th th" style="height: 37px;">'
- + '<span>列-' + num + '-链接</span>'
- /*+ '<img class="_dw_td _dw_editThead" src="inspinia/image/xpath/IconEdit.png"/>'*/
- + '<img class="_dw_td _dw_delThead" onclick="delhtml(this,\'link\')" src="inspinia/image/xpath/IconRemove.png"/>'
- + '</div>';
- return thhtml;
- }
- function getTdHtml(list, type) {
- var titleHtml = "";
- var urlHtml = "";
- jQuery.each(list, function (i, obj) {
- // false时相当于break, 如果return true 就相当于continure。
- var titleText = obj.text;
- if (!titleText || titleText == "") {
- return true;
- }
- titleHtml += '<div class="td text value">'
- + '<span title="' + titleText + '">'
- + titleText
- + '</span></div>';
- urlHtml += '<div class="td text">'
- + '<div class="link" title="' + obj.urls + '">';
- if (!obj.urls || obj.urls == "") {
- urlHtml += "无";
- } else {
- urlHtml += obj.urls;
- }
- urlHtml += '</div>'
- + '</div>';
- });
- var tdhtml = '<div class="tr">'
- + titleHtml
- + '</div>';
- if (type === 0) {
- tdhtml += '<div class="tr">'
- + urlHtml
- + '</div>';
- }
- return tdhtml;
- }
- // 打开XPath预览
- function showLook(data, xpath, type) {
- // 编辑类型 xpath:子节点(唯一) xpath_pid:父节点(多值)
- if(xpathEditType == "xpath" && count > 1){
- alert('子节点只能选择一个!');
- return false;
- }
- var thhtml = getLiThHtml(count, xpath);
- var tdhtml = getTdHtml(data[1]);
- if (type === 0) {
- thhtml = getThHtml(count, data[0], xpath);
- tdhtml = getTdHtml(data[1], 0);
- }
- //console.log(JSON.stringify(data));
- var divs = document.getElementsByClassName("_dw_th th");
- for (var i = 0; i < divs.length; i++) {
- var value = $(divs[i]).find("xpath").html();
- if (xpath === value) {
- alert("xpath已存在")
- return false;
- }
- }
- $(".tableEditBody .table .thead .tr").append(thhtml);
- $(".tableEditBody .table .tbody").append(tdhtml);
- count++;
- $("#ifram").css("padding-bottom", "304px");
- $("#showPreview").show();
- }
- //标题
- function setFrameHtmlTitle(title) {
- $(".ruleEditTitle").html(title);
- }
- //打开xpath提取页面
- function openXPathClick() {
- //disLoadDiv();//取消加载层
- $(".main_center").hide();
- $("#pop").show().fadeIn();
- // TODO 隐藏任务编辑弹窗 否则input编辑不了
- $("#add").css('display','none');
- }
- //关闭xpath提取页面
- function closeXPathClick() {
- $(".tableEditBody .table .thead .tr").empty();
- $(".tableEditBody .table .tbody").empty();
- // 关闭XPath预览
- hideLook();
- $(".main_center").show();
- $("#pop").fadeOut().hide();
- }
- //关闭XPath预览
- function hideLook() {
- // 展示任务编辑弹窗
- $("#add").css('display','block');
- $(".tableEditBody .table .thead .tr").append("");
- $(".tableEditBody .table .tbody").append("");
- $("#ifram").css("padding-bottom", "80px");
- $("#showPreview").hide();
- }
|