conditions_order.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. // 选中的地区集合
  2. var selectArea = []
  3. var selectAreaCity = []
  4. var selectAreaNow = null
  5. var keyAllArr = []
  6. /* 切换市区显示 */
  7. function toggleDialog(f) {
  8. if(f) {
  9. $(".dialog").show()
  10. }else {
  11. $(".dialog").hide()
  12. }
  13. }
  14. /* 添加市Span */
  15. function showMoreCity (arr) {
  16. var box = $('.dialog>.select-area-box')
  17. var tempHTML = ''
  18. box.html(tempHTML)
  19. tempHTML += '<span class="select-area" style="margin-right: 10px;">全省</span>';
  20. console.log('--arr--', arr)
  21. arr.forEach(function (value) {
  22. console.log('--value--', value.name)
  23. tempHTML += '<span class="select-area">' + value.name.replace(/市$/g,'') + '</span>'
  24. })
  25. box.html(tempHTML)
  26. }
  27. /* 省地区选中 */
  28. $(document).on('click','span.select-area', function () {
  29. var dom = $(this)
  30. var t = dom.text()
  31. if(t === '全国'){
  32. return addDelBox(t,'#area-del')
  33. }
  34. if(t === '全省'){
  35. t = selectAreaNow;
  36. }
  37. /* 判断来源 */
  38. var f = dom.parent().parent().hasClass('dialog')
  39. if(f) {
  40. if(selectAreaCity.indexOf(t) !== -1) {
  41. selectAreaCity.splice(selectAreaCity.indexOf(t),1)
  42. } else {
  43. selectAreaCity.push(t)
  44. }
  45. dom.toggleClass('select')
  46. return true
  47. } else {
  48. if(t !== selectAreaNow) {
  49. selectAreaCity = []
  50. }
  51. selectAreaNow = t
  52. }
  53. /* 展开市级 */
  54. dom.siblings().removeClass('click')
  55. var area = null
  56. chinaMapJSON.some(function (value) {
  57. var f = value.name.indexOf(t) !== -1
  58. if (f) {
  59. area = value
  60. }
  61. return f
  62. })
  63. if(area.ProRemark !== '直辖市') {
  64. var top = ["安徽", "北京", "重庆", "福建", "广东", "广西", "贵州", "甘肃", "河北", "湖北", "黑江", "海南", "河南", "湖南", "吉林", "江苏", "江西"]
  65. if(top.indexOf(t) !== -1) {
  66. $(".dialog").addClass('top')
  67. } else {
  68. $(".dialog").removeClass('top')
  69. }
  70. dom.addClass('click')
  71. toggleDialog(true)
  72. showMoreCity(area.city)
  73. } else {
  74. addDelBox(t,'#area-del')
  75. toggleDialog(false)
  76. }
  77. })
  78. /* 删除地区标签 */
  79. $(document).on('click','.delete-close>i',function () {
  80. var dom = $(this).parent()
  81. var arr = dom.attr('data-arr')
  82. var index = dom.index()
  83. window[arr].splice(index,1)
  84. dom.remove()
  85. })
  86. /*移除delBox*/
  87. function removeDelBox(select) {
  88. $("#area-del").find("div[data-arr='selectArea'][data-val='全国']").remove();
  89. if(select=="全国"){
  90. $("#area-del").html("");
  91. }else if (select=="全省"){
  92. }else{
  93. }
  94. }
  95. /* 添加可删除标签 */
  96. function addDelBox(str,box,arr,template){
  97. // removeDelBox(str);
  98. // console.log('--template,arr--', template,arr)
  99. arr = arr || 'selectArea'
  100. var tempKey = arr ? 'data-arr="'+arr+'"' : ''
  101. var dataVal = 'data-val="'+str+'"';
  102. template = template || '<div '+tempKey+' class="delete-close" '+dataVal+'>'+str+'<i class="iconfont icon-guanbi"></i></div>'
  103. var tempArr = window[arr]
  104. if(!Array.isArray(tempArr)) {
  105. window[arr] = []
  106. tempArr = window[arr]
  107. }
  108. if(tempArr.indexOf(str) === -1) {
  109. var pDom = $(box)
  110. var tempHTML = pDom.html() + template
  111. pDom.html(tempHTML)
  112. tempArr.push(str)
  113. }
  114. }
  115. /* 确定选中 */
  116. function areaSelect (f) {
  117. if(f) {
  118. selectAreaCity.forEach(function (value) {
  119. addDelBox(value,'#area-del')
  120. })
  121. } else {
  122. selectAreaCity = []
  123. }
  124. $("span.select-area").removeClass('click')
  125. selectAreaNow = null
  126. toggleDialog(false)
  127. }
  128. /* 输入事件 */
  129. $(".user-input input").on('input',function () {
  130. var dom = $(this)
  131. var f = dom.val().length > 0
  132. if(f) {
  133. dom.next().show()
  134. } else {
  135. dom.next().hide()
  136. }
  137. })
  138. /* 生成子标签 */
  139. function createCKey(title,arr,clazz) {
  140. if(arr.length === 0) {
  141. return ''
  142. }
  143. var all = arr.map(function (value) {
  144. return '<span>'+value+'</span>'
  145. }).join('')
  146. return '<div class="text-box float-box '+clazz+'"><div class="title">'+title+':</div><div class="title-other float-box">'+all+'</div></div>'
  147. }
  148. /* 添加关键词标签 */
  149. function createKeyBox(t) {
  150. var appArr = appendArr
  151. var exArr = excludeArr
  152. var key = t
  153. var all = createCKey('关键词',[key],"key") + createCKey('附加词',appArr,"app") + createCKey('排除词',exArr,"ex")
  154. var template = '<div data-index="'+keyAllArr.length+'" data-arr="inputDel_0" class="delete-close">'+all+' <i class="iconfont icon-guanbi"></i> </div>'
  155. return template
  156. }
  157. /* 添加可删除Input标签 */
  158. function addDelInput(t,type) {
  159. var text = $(t).prev().val()
  160. // console.log('--text--', text)
  161. var box = 'inputDel_' + type
  162. var template = null
  163. var arr = box
  164. switch (type) {
  165. case 0: {
  166. template = createKeyBox(text)
  167. box += ' .column:eq('+(keyAllArr.length % 3)+')'
  168. keyAllArr.push({
  169. name: text,
  170. append: appendArr,
  171. exclude: excludeArr
  172. })
  173. appendArr = []
  174. excludeArr = []
  175. $(".add-input-w input.sm").remove()
  176. break
  177. }
  178. case 1:{
  179. break
  180. }
  181. case 2:{
  182. break
  183. }
  184. }
  185. $(t).prev().val('')
  186. $(t).hide()
  187. addDelBox(text,'#'+box,arr,template)
  188. }
  189. /* 添加排除/附加词 */
  190. var excludeArr = []
  191. var appendArr = []
  192. function addOtherInput(t,f) {
  193. var temp = f ? '请输入附加词' : '请输入排除词'
  194. var input = document.createElement('input')
  195. input.className = 'sm'
  196. input.placeholder = temp
  197. // console.log('--$(input)--', $(input))
  198. if(f){
  199. var l = appendArr.length
  200. $(input).on('input',function () {
  201. appendArr[l] = $(this).val()
  202. })
  203. }else {
  204. var l = excludeArr.length
  205. $(input).on('input',function () {
  206. excludeArr[l] = $(this).val()
  207. })
  208. }
  209. $(t).before(input)
  210. }
  211. /* 关键词标签点击修改 */
  212. var nowSpan = null
  213. $(document).on('click','#inputDel_0 .title-other>span',function (e) {
  214. var xy = $(this).offset()
  215. // console.log('--xy--', xy)
  216. var x = xy.top + 30
  217. var maxY = $(document).width() - 600
  218. var y = maxY < xy.left ? maxY : xy.left
  219. nowSpan = $(this)
  220. // console.log('--$(this).offset()--', xy)
  221. var text = $(this).text()
  222. $('.edit-user-input').children('.up-icon').css({
  223. left: xy.left - y + 'px'
  224. })
  225. $('.edit-user-input').css({
  226. top: x + 'px',
  227. left: y + 'px'
  228. }).show().children('input').val(text)
  229. // console.log('--text--', text)
  230. })
  231. /* 修改关键词标签文字 */
  232. $(".edit-user-input").click(function (e) {
  233. e.stopPropagation()
  234. e.preventDefault()
  235. })
  236. $('.conditions-box').click(function () {
  237. hideEdit()
  238. })
  239. function hideEdit () {
  240. $('.edit-user-input').hide()
  241. $(".edit-user-input input").val('')
  242. }
  243. function editInput(t,f){
  244. var dom = $(t)
  245. var text = $(t).siblings('input.sm').val()
  246. if(f) {
  247. nowSpan.text(text)
  248. } else {
  249. nowSpan.remove()
  250. }
  251. hideEdit()
  252. }
  253. /*行业筛选*/
  254. //industryScreening($(".industry .industry-content"), $(".industry-content .parent-node"), $("#induAll"), $(".industry .stop"))
  255. /*
  256. * warpContent 外层元素
  257. * parentNode 标题父元素
  258. * allBtn 全国按钮
  259. * moreBtn 展开更多(没有功能可以不写)
  260. */
  261. function industryScreening(warpContent, parentNode, allBtn, moreBtn) {
  262. var $content = warpContent,
  263. $moreBtn = moreBtn || "",
  264. $parentNode = parentNode,
  265. $induAll = allBtn;
  266. /*更多显示 影藏*/
  267. if($moreBtn !== "") {
  268. /*影藏行业*/
  269. $content.children().not(".parent-node").hide();
  270. $moreBtn.on('click', function() {
  271. $(this).toggleClass("up");
  272. if($(this).hasClass("up")) {
  273. $(this).text("收起");
  274. $content.children().show();
  275. } else {
  276. $(this).text("更多");
  277. $content.children().not(".parent-node").hide();
  278. }
  279. });
  280. }
  281. /*全选功能*/
  282. $content.on('click', 'font:not(".parent-node")', function() {
  283. /*子级全选添加类名*/
  284. var $preChdlren = $(this).prevAll(".parent-node:eq(0)").nextUntil(".diver");
  285. var $prevNode = $(this).prevAll(".parent-node:eq(0)");
  286. $(this).toggleClass("active");
  287. if($prevNode.nextUntil(".diver").filter(".active").length === 0) {
  288. $prevNode.removeClass("active").removeClass("secondActice");
  289. } else if($prevNode.nextUntil(".diver").filter("font").length === $prevNode.nextUntil(".diver").filter(".active").length) {
  290. $prevNode.addClass("active").removeClass("secondActice");
  291. } else {
  292. $prevNode.removeClass("active").addClass("secondActice");
  293. }
  294. });
  295. $parentNode.on('click', function() {
  296. $(this).toggleClass("active").removeClass("secondActice");
  297. var $nextALLChildren = $(this).nextUntil('.diver');
  298. if(!$(this).hasClass('active')) {
  299. $nextALLChildren.removeClass('active');
  300. } else {
  301. $nextALLChildren.addClass('active');
  302. }
  303. });
  304. /*如果点击没有内容给全部添加类名*/
  305. $content.on("click", "font", function() {
  306. if($content.children().hasClass("active")) {
  307. $induAll.removeClass("active");
  308. } else {
  309. $induAll.addClass("active");
  310. }
  311. })
  312. /*全部点击*/
  313. $induAll.on("click", function() {
  314. $(this).addClass("active");
  315. $content.children().not($(this)).removeClass("active secondActice")
  316. })
  317. };