// 选中的地区集合 var selectProvince = [] ;//20181217 var selectArea = [] var selectAreaCity = [] var selectAreaNow = null var selectAreaArr = [] var keyAllArr = [] //毫秒值 var msecs = 1000; // var beforeDelKeyIndex = null /* 切换市区显示 */ function toggleDialog(f) { if(f) { $(".dialog").show() }else { $(".dialog").hide() } } /* 添加市Span */ function showMoreCity (arr) { var box = $('.dialog>.select-area-box') var tempHTML = '' box.html(tempHTML) // console.log('--arr--', arr) arr.forEach(function (value) { // console.log('--value--', value.name) var are = value.name; //已选地区,展开省市时需选中 var clazz = ""; if(selectArea.length>0){ if((are=="全省" && selectAreaNow && $.inArray(selectAreaNow,selectProvince)!=-1) || $.inArray(are,selectArea)!=-1){ clazz = "select"; selectAreaCity.push(are); } } tempHTML += '' + are + '' }) box.html(tempHTML) } /* 省地区选中 */ $(document).on('click','span.select-area', function () { var dom = $(this) var t = dom.text() if(t === '全国'){ selectProvince = []; selectArea.forEach(function (value) { delAddBox(value) }) return addDelBox(t,'#area-del') } /* 判断来源 */ var f = dom.parent().parent().hasClass('dialog') if(f) { // console.log(t) if(t === '全省') { // console.log($(this)) selectAreaCity = [t] $(this).nextAll().removeClass('select') } else { var tempI = selectAreaCity.indexOf('全省') if(tempI !== -1) { selectAreaCity.splice(tempI,1) } if(selectAreaCity.indexOf(t) !== -1) { selectAreaCity.splice(selectAreaCity.indexOf(t),1) } else { selectAreaCity.push(t) } $(this).parent().children('.select-area:eq(0)').removeClass('select') } dom.toggleClass('select') return true } else { if(t !== selectAreaNow) { selectAreaCity = [] } delAddBox('全国') selectAreaNow = t } /* 展开市级 */ dom.siblings().removeClass('click') var area = null chinaMapJSON.some(function (value) { var f = value.name.indexOf(t) !== -1 if (f) { area = value } return f }) //console.log("t:"+t) if(area.ProRemark !== '直辖市'&& area.ProRemark!='特别行政区'&& t!='台湾') { var top = ["安徽", "北京", "重庆", "福建", "广东", "广西", "贵州", "甘肃", "河北", "湖北", "黑江", "海南", "河南", "湖南", "吉林", "江苏", "江西"] if(top.indexOf(t) !== -1) { $(".dialog").addClass('top') } else { $(".dialog").removeClass('top') } dom.addClass('click') toggleDialog(true) var tempA = [{name: '全省'}].concat(area.city) selectAreaArr = area.city.map(function (v) { // return v.name.replace(/市$/g,'') return v.name }) // console.log(area.city); showMoreCity(tempA) } else { addDelBox(t,'#area-del') toggleDialog(false) selectProvince.push(t); } }) /* 删除地区标签 */ $(document).on('click','.delete-close>i',function () { var dom = $(this).parent() var arr = dom.attr('data-arr') var index = dom.index() var f = arr === "inputDel_0" if(f) { // beforeDelKeyIndex = dom.parent().index('#inputDel_0 .column') index = window[arr].indexOf(dom.find('.key span').text()) // console.log(index) window[arr].splice(index,1) keyAllArr.splice(index,1) dom.remove() } else { window[arr].splice(index,1) var i = selectProvince.indexOf(dom.text()); if (i != -1){ selectProvince.splice(i,1); } dom.remove() //20181228 if(arr == "selectArea" && $("#area-del").children().length==0){ resetAreaLT(); } } //20181227 if (arr && arr.indexOf("inputDel")>-1){ if($("div[data-arr='"+arr+"']").length==0){ $("div[id='"+arr+"']").siblings(".user-input").find("input").show(); $("div[id='"+arr+"']").siblings(".add-input-w-").hide(); } } }) /*移除delBox*/ function removeDelBox(select) { $("#area-del").find("div[data-arr='selectArea'][data-val='全国']").remove(); if(select=="全国"){ if(!Array.isArray(window['selectArea'])) { window['selectArea'] = [] } $("#area-del").html(""); }else if (select=="全省"){ $("#area-del").find("div[data-arr='selectArea'][data-parent='"+select+"']").remove(); window['selectArea'].splice() }else{ } } /* 添加可删除标签 */ function addDelBox(str,box,arr,template){ // console.log('--template,arr--', template,arr) arr = arr || 'selectArea' var tempKey = arr ? 'data-arr="'+arr+'"' : '' template = template || '
'+str+'
' var tempArr = window[arr] if(!Array.isArray(tempArr)) { window[arr] = [] tempArr = window[arr] } if(tempArr.indexOf(str) === -1) { var pDom = $(box) var tempHTML = pDom.html() + template pDom.html(tempHTML) tempArr.push(str) } //20181228 if(box == "#area-del" && $(box).children().length>0){ $(box).parent().prev().css("padding-top","20px"); } } /* 确定选中 */ function areaSelect (f) { if(f) { // console.log(selectAreaCity); var sf = selectAreaCity.indexOf('全省') !== -1 if(sf) { if (selectProvince.indexOf(selectAreaNow) ==-1 ){ selectProvince.push(selectAreaNow) } selectAreaCity = [selectAreaNow] // console.log('s1',selectArea) selectAreaArr.forEach(function (value) { var tempI = selectArea.indexOf(value) // console.log(value,tempI) if(tempI !== -1) { delAddBox(value) } }) addDelBox(selectAreaNow,'#area-del') } else { delAddBox(selectAreaNow) selectAreaCity.forEach(function (value) { addDelBox(value,'#area-del') }) } } else { selectAreaCity = [] } $("span.select-area").removeClass('click') selectAreaNow = null toggleDialog(false) //20181228 if(selectArea.length == 0){ resetAreaLT(); } } /* 删除box */ function delAddBox(n) { $('#area-del .delete-close').each(function () { if($(this).text() === n) { var i = selectProvince.indexOf(n); if (i != -1){ selectProvince.splice(i,1); } $(this).remove() } }) selectArea = [] $('#area-del .delete-close').each(function () { selectArea.push($(this).text()) }) } /* 输入事件 */ $(".user-input input").on('input',function () { var dom = $(this) var f = $.trim(dom.val()).length> 0 if(f) { dom.next().show() } else { dom.next().hide() } }) /* 生成子标签 */ function createCKey(title,arr,clazz) { if(arr.length === 0) { return '' } var all = arr.map(function (value) { return ''+value+'' }).join('') return '
'+title+':
'+all+'
' } /* 添加关键词标签 */ function createKeyBox(t) { var appArr = appendArr var exArr = excludeArr var key = t var all = createCKey('关键词',[key],"key") + createCKey('附加词',appArr,"app") + createCKey('排除词',exArr,"ex") var template = '
'+all+'
' return template } function fixLeft(){ var one = $("#inputDel_0 .column:eq(0)") var two = $("#inputDel_0 .column:eq(1)") var three = $("#inputDel_0 .column:eq(2)") // console.log(one.children('div').length,two.children('div').length,three.children('div').length) if(one.children('div').length === 0) { two.css('margin-left','0') }else { two.css('margin-left','8px') } if(two.children('div').length === 0) { two.css('margin-left','8px') if(one.children('div').length === 0){ three.css('margin-left','0') }else { three.css('margin-left','8px') } }else { three.css('margin-left','8px') } if(three.children('div').length === 0) { three.css('margin-left','8px') } } $("#inputDel_0 .column").on('DOMNodeRemoved','div',function(){ // console.log('-----------------------') setTimeout(function(){ fixLeft() },80) }) /* 添加可删除Input标签 */ function addDelInput(t,type) { var d = document.createElement('div') var text = $(t).prev().val() if(!text){ return; } $(d).html(text) text = $(d).text() text = text.replace(/(^\s*)|(\s*$)/g, ""); // console.log('--text--', text) var box = 'inputDel_' + type var template = null var arr = box switch (type) { case 0: { template = createKeyBox(text) var LArr = [$("#inputDel_0 .column:eq(0)>div").length,$("#inputDel_0 .column:eq(1)>div").length,$("#inputDel_0 .column:eq(2)>div").length] var tempI = LArr.indexOf(Math.min(LArr[0],LArr[1],LArr[2])) box += ' .column:eq('+(tempI)+')' var tempArr = keyAllArr.map(function(v){return v.name}) if(tempArr.indexOf(text) === -1) { keyAllArr.push({ name: text, append: appendArr, exclude: excludeArr }) } appendArr = [] excludeArr = [] $(".add-input-w input.sm").remove() $(".add-input-w").css("display","none"); $("#addKeyword").css("display","block"); setTimeout(function(){ fixLeft() },80) break } case 1:{ $("#addBuyer").css("display","block"); break } case 2:{ $("#addWinner").css("display","block"); break } } $(t).prev().val('') $(t).prev().hide(); $(t).hide() addDelBox(text,'#'+box,arr,template) } /* 采购单位、中标单位 input-blur -- 添加可删除Input标签 -- 20190103*/ function addDelInputB(t,type) { setTimeout(() => { dataNode.buyerSearchListShow = false dataNode.winnerSearchListShow = false $('.buyer-search-list').hide() $('.winner-search-list').hide() var d = document.createElement('div'); var text = $(t).val(); if(!text){ return; } $(d).html(text); text = $(d).text(); text = text.replace(/(^\s*)|(\s*$)/g, "") var box = 'inputDel_' + type; var arr = box; switch (type) { case 1:{ $("#addBuyer").show(msecs); break } case 2:{ $("#addWinner").show(msecs); break } } $(t).val(''); $(t).hide(); addDelBox(text,'#'+box,arr,null); }, 500); } /* 添加排除/附加词 */ var excludeArr = [] var appendArr = [] function addOtherInput(t,f) { if($("#keyInput").val()==""){ return false; } var temp = f ? '请输入附加词' : '请输入排除词' var input = document.createElement('input') input.className = 'sm' input.placeholder = temp input.maxLength = 20; // console.log('--$(input)--', $(input)) if(f){ var l = appendArr.length $(input).on('input',function () { var val = $.trim($(this).val()).replace(/\s/g,""); if(val){ appendArr[l] = val }else { appendArr.splice(l,1) } }) }else { var l = excludeArr.length $(input).on('input',function () { var val = $.trim($(this).val()).replace(/\s/g,""); if(val){ excludeArr[l] = val }else{ excludeArr.splice(l,1) } }) } $(t).before(input) $(input).focus(); } /* 关键词标签点击修改 */ var nowSpan = null var dataIndex = 0; var textBoxClass = ""; $(document).on('click','#inputDel_0 .title-other>span',function (e) { var par = $(this).parent().parent(); dataIndex = par.parent().attr("data-index"); if(par.hasClass("key")){ textBoxClass = "key"; }else if(par.hasClass("app")){ textBoxClass = "app"; }else if(par.hasClass("ex")){ textBoxClass = "ex"; } var xy = $(this).offset() // console.log('--xy--', xy) var x = xy.top + 30 var maxY = $(document).width() - 600 var y = maxY < xy.left ? maxY : xy.left nowSpan = $(this) // console.log('--$(this).offset()--', xy) var text = $(this).text() $('.edit-user-input').children('.up-icon').css({ left: xy.left - y + 'px' }) $('.edit-user-input').css({ top: x + 'px', left: y + 'px' }).show().children('input').val(text) // console.log('--text--', text) }) /* 修改关键词标签文字 */ $(".edit-user-input").click(function (e) { e.stopPropagation() e.preventDefault() }) $('.conditions-box').click(function () { hideEdit() }) function hideEdit () { $('.edit-user-input').hide() $(".edit-user-input input").val('') } function editInput(t,f){ var dom = $(t) var text = $(t).siblings('input.sm').val() if(f) { nowSpan.text(text) } else { nowSpan.remove() } hideEdit() editKeywordBox(); } /*删除关键词时,删除box;全部删除附加词或者排除词时,删除子box 20181227*/ function editKeywordBox() { var par = $("div[data-arr='inputDel_0'][data-index="+dataIndex+"]"); var son = par.children("."+textBoxClass).find("div:eq(1)"); var htm = son.html(); if(!htm){ if(textBoxClass=="key"){ par.remove(); $("div[id='inputDel_0']").siblings(".user-input").find("input").show(); $("div[id='inputDel_0']").siblings(".add-input-w-").css("display","none"); }else{ son.parent().remove(); } } } /*重置,区域-左侧标签居上距离 20181228*/ function resetAreaLT() { $("#area-del").parent().prev().css("padding-top","8px"); }