123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496 |
- // 选中的地区集合
- 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 += '<span class="select-area '+clazz+'">' + are + '</span>'
- })
- 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 || '<div '+tempKey+' class="delete-close" >'+str+'<i class="iconfont icon-guanbi"></i></div>'
- 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 '<span>'+value+'</span>'
- }).join('')
- return '<div class="text-box float-box '+clazz+'"><div class="title">'+title+':</div><div class="title-other float-box">'+all+'</div></div>'
- }
- /* 添加关键词标签 */
- 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 = '<div data-index="'+keyAllArr.length+'" data-arr="inputDel_0" class="delete-close">'+all+' <i class="iconfont icon-guanbi"></i> </div>'
- 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");
- }
|