qsCategory.js 55 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231
  1. /**
  2. * 读取缓存分类
  3. */
  4. $(function () {
  5. var hideClass = 'qs-hidden';
  6. var tempArr = $('.qs-temp');
  7. // var isSubsite = eval(qscms.is_subsite); // 是否是分站
  8. var isSubsite = 0; // 是否是分站
  9. // var subsiteLevelNum = eval(qscms.subsite_level); // 分站级数
  10. var subsiteLevelNum = 0 // 分站级数
  11. var subsiteLevel1 = true; // 是否是一级分站
  12. if (!isSubsite) { // 如果不是分站 一级分站始终为false
  13. subsiteLevel1 = false;
  14. } else {
  15. if (subsiteLevelNum > 1) { // 如果是分站,分站级数大于1 则为false
  16. subsiteLevel1 = false;
  17. }
  18. }
  19. $.each(tempArr, function() {
  20. var that = $(this);
  21. var thistype = $(this).data('type');
  22. var database = eval($(this).data('base'));
  23. var datasource = eval($(this).data('source'));
  24. var multiple = eval($(this).data('multiple')); // 多选单选
  25. var maxNum = $(this).data('num');
  26. var tempLevel = eval($(this).data('level')); // 二三级分类标识
  27. var thisBox = '.f-box-' + thistype;
  28. var selectedBox = '.f-selected-group-' + thistype;
  29. var thisLink = eval($(this).data('link')); // 是否是搜索
  30. var addJob = eval($(this).data('addjob')); // 是否是发布职位
  31. var getPoint=$(this).data('getpoint');
  32. if (thisLink && isSubsite) { // 分站下的搜索页面
  33. if (database) {
  34. var tempHtml = '<div class="f-box-inner">';
  35. if (thisLink) {
  36. tempHtml += '<div class="level1Link">';
  37. tempHtml += '<li><a class="f-item f-none" href="javascript:;" data-code="" data-title="地区">不限</a></li>';
  38. tempHtml += '</div>';
  39. if (that.data('range')) {
  40. tempHtml += '<div class="level1Group">';
  41. tempHtml += '<li><a class="f-item" href="javascript:;" data-code="near" data-title="附近">附近</a></li>';
  42. tempHtml += '</div>';
  43. }
  44. }
  45. if (subsiteLevel1) { // 一级分站
  46. $.each(database, function(key, value) {
  47. if (value.split(',')) {
  48. tempHtml += '<div class="level1Link">';
  49. tempHtml += '<li><a class="f-item f-none" href="javascript:;" data-code="' + value.split(',')[0] + '" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  50. tempHtml += '</div>';
  51. }
  52. })
  53. } else {
  54. $.each(database, function(key, value) {
  55. if (value.split(',')) {
  56. var tempLevel2Str = datasource[value.split(',')[0]];
  57. if (tempLevel2Str) {
  58. tempHtml += '<div class="level1Group">';
  59. tempHtml += '<li><a class="f-item" href="javascript:;" data-code="' + value.split(',')[0] + '" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  60. tempHtml += '</div>';
  61. } else {
  62. tempHtml += '<div class="level1Link">';
  63. tempHtml += '<li><a class="f-item f-none" href="javascript:;" data-code="' + value.split(',')[0] + '" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  64. tempHtml += '</div>';
  65. }
  66. }
  67. })
  68. }
  69. tempHtml += '</div>';
  70. $(thisBox).html(tempHtml);
  71. // 恢复选中
  72. var rvalue = $('.qs-temp-code-' + thistype).val();
  73. if (rvalue.length) {
  74. var rvalueArr = rvalue.split(',');
  75. if (subsiteLevel1) { // 一级分站
  76. $(thisBox + ' .level1Link .f-none').each(function(){
  77. if ($(this).data('code') == rvalue) {
  78. $(this).addClass('select');
  79. }
  80. });
  81. } else { // 二级分站
  82. // 先循环一级地区列表看是否能匹配
  83. $(thisBox + ' .level1Link .f-none').each(function(){
  84. if ($(this).data('code') == rvalue) {
  85. $(this).addClass('select');
  86. }
  87. });
  88. var recoverLevel1Id = '';
  89. $.each(database, function(key, value) { // 先找出与二级分类id对应的一级分类id
  90. if (value.split(',')) {
  91. if (datasource[value.split(',')[0]]) {
  92. var recoverTempLevel2Str = datasource[value.split(',')[0]];
  93. if (recoverTempLevel2Str) {
  94. var recoverTempLevel22Str = recoverTempLevel2Str.split('`');
  95. if (recoverTempLevel22Str) {
  96. $.each(recoverTempLevel22Str, function(key2, value2) {
  97. if (value2.split(',')[0] == rvalue) {
  98. recoverLevel1Id = value.split(',')[0];
  99. }
  100. })
  101. }
  102. }
  103. }
  104. }
  105. })
  106. // 恢复一级
  107. $(thisBox + ' .level1Group .f-item').each(function(){
  108. if ($(this).data('code') == recoverLevel1Id) {
  109. $(this).addClass('select');
  110. }
  111. });
  112. // 生成需要恢复的二级
  113. var clickTempHtml = '<div class="f-box-inner">';
  114. var rtempLevel2Str = datasource[recoverLevel1Id];
  115. if (rtempLevel2Str) {
  116. var rtempLevel2Array = rtempLevel2Str.split('`');
  117. if (rtempLevel2Array) {
  118. clickTempHtml += '<div class="level2Group">';
  119. $.each(rtempLevel2Array, function(key, value) {
  120. if (value.split(',')) {
  121. if (value.split(',')[0]) {
  122. if (value.split(',')[0] == rvalue) {
  123. clickTempHtml += '<li><a class="f-item select" href="javascript:;" data-code="' + value.split(',')[0] + '" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  124. } else {
  125. clickTempHtml += '<li><a class="f-item" href="javascript:;" data-code="' + value.split(',')[0] + '" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  126. }
  127. }
  128. }
  129. })
  130. clickTempHtml += '</div>';
  131. }
  132. }
  133. clickTempHtml += '</div>';
  134. $(thisBox).append(clickTempHtml);
  135. /**
  136. * 二级分类点击
  137. */
  138. $(thisBox + ' .level2Group a.f-item').on('click', function() {
  139. if ($(this).hasClass('select')) { // 先判断是否是选中状态
  140. $(this).removeClass('select');
  141. if (multiple) { // 多选条件下才同步
  142. copyItem(thisBox, selectedBox);
  143. }
  144. } else {
  145. if (multiple) {
  146. // 判断是否点击的是不限
  147. var allCodeArr = $(this).data('code').split('.');
  148. if (!eval(allCodeArr[2])) {
  149. $(this).parents('.level3Group').find('.f-item').removeClass('select');
  150. } else {
  151. $(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
  152. }
  153. if (overFlow(thisBox, maxNum)) {
  154. $(this).addClass('select');
  155. $(this).parents('.level3Group').prev().find('.f-item').addClass('select');
  156. var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
  157. $(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
  158. copyItem(thisBox, selectedBox);
  159. } else {
  160. qsToast({context: '最多可选' + maxNum + '个'});
  161. }
  162. } else {
  163. $(thisBox + ' .f-item').removeClass('select');
  164. $(this).addClass('select');
  165. $(thisBox + ' .level1Group .f-item.active').addClass('select');
  166. var qtcode = $(this).data('code');
  167. var qttitle = $(this).data('title');
  168. $('.qs-temp-txt-' + thistype).text(qttitle);
  169. $('.qs-temp-code-' + thistype).val(qtcode);
  170. if (thisLink) {
  171. if ($(this).hasClass('f-range')) {// 附近
  172. $('.qs-temp-code-range').val(qtcode);
  173. $('.qs-temp-code-' + thistype).val('');
  174. }
  175. clearFilter();
  176. goPage();
  177. } else {
  178. $('.js-actionsheet').removeClass('qs-actionsheet-toggle');
  179. $(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
  180. //$('.qs-mask').fadeOut(200);
  181. }
  182. }
  183. }
  184. })
  185. }
  186. if (multiple) {
  187. copyItem(thisBox, selectedBox);
  188. }
  189. } else {
  190. if (thisLink) { // 判断是否是筛选
  191. var rangeValue = $('.qs-temp-code-range').val();
  192. if (rangeValue.length) {
  193. $(thisBox + ' .level1Group').eq(0).find('.f-item').addClass('select');
  194. var rclickTempHtml = '<div class="f-box-inner">';
  195. rclickTempHtml += '<div class="level2Group">';
  196. rclickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="0" data-title="不限">不限</a></li>';
  197. rclickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="1" data-title="1公里">1公里</a></li>';
  198. rclickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="3" data-title="3公里">3公里</a></li>';
  199. rclickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="5" data-title="5公里">5公里</a></li>';
  200. rclickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="10" data-title="10公里">10公里</a></li>';
  201. rclickTempHtml += '</div>';
  202. rclickTempHtml += '</div>';
  203. $(thisBox).append(rclickTempHtml);
  204. var recoverRangeItemArr = $(thisBox + ' .level2Group').eq(0).find('.f-item');
  205. $.each(recoverRangeItemArr, function () {
  206. if ($(this).data('code') == rangeValue) {
  207. $(this).addClass('select');
  208. }
  209. })
  210. /**
  211. * 二级分类点击
  212. */
  213. $(thisBox + ' .level2Group a.f-item').on('click', function() {
  214. if ($(this).hasClass('select')) { // 先判断是否是选中状态
  215. $(this).removeClass('select');
  216. if (multiple) { // 多选条件下才同步
  217. copyItem(thisBox, selectedBox);
  218. }
  219. } else {
  220. if (multiple) {
  221. // 判断是否点击的是不限
  222. var allCodeArr = $(this).data('code').split('.');
  223. if (!eval(allCodeArr[2])) {
  224. $(this).parents('.level3Group').find('.f-item').removeClass('select');
  225. } else {
  226. $(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
  227. }
  228. if (overFlow(thisBox, maxNum)) {
  229. $(this).addClass('select');
  230. $(this).parents('.level3Group').prev().find('.f-item').addClass('select');
  231. var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
  232. $(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
  233. copyItem(thisBox, selectedBox);
  234. } else {
  235. qsToast({context: '最多可选' + maxNum + '个'});
  236. }
  237. } else {
  238. $(thisBox + ' .f-item').removeClass('select');
  239. $(this).addClass('select');
  240. $(thisBox + ' .level1Group .f-item.active').addClass('select');
  241. var qtcode = $(this).data('code');
  242. var qttitle = $(this).data('title');
  243. $('.qs-temp-txt-' + thistype).text(qttitle);
  244. $('.qs-temp-code-' + thistype).val(qtcode);
  245. if (thisLink) {
  246. if ($(this).hasClass('f-range')) {// 附近
  247. $('.qs-temp-code-range').val(qtcode);
  248. $('.qs-temp-code-' + thistype).val('');
  249. }
  250. clearFilter();
  251. goPage();
  252. } else {
  253. $('.js-actionsheet').removeClass('qs-actionsheet-toggle');
  254. $(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
  255. //$('.qs-mask').fadeOut(200);
  256. }
  257. }
  258. }
  259. })
  260. } else {
  261. $(thisBox + ' .level1Link .f-item').eq(0).addClass('active');
  262. }
  263. } else {
  264. // $(thisBox + ' .level1Group .f-item').eq(0).addClass('active');
  265. $(thisBox + ' .level2Group').eq(0).removeClass(hideClass); // 不恢复默认二级分类的第一个显示出来
  266. }
  267. }
  268. /**
  269. * 确定
  270. */
  271. $('#qs-temp-confirm-' + thistype).on('click', function () {
  272. var selectedArr = $(selectedBox + ' .s-list-cell');
  273. var codeArr = new Array();
  274. var titleArr = new Array();
  275. $.each(selectedArr, function (key, value) {
  276. var code = $(this).data('code');
  277. var title = $(this).data('title');
  278. codeArr.push(code);
  279. titleArr.push(title);
  280. })
  281. $('.qs-temp-code-' + thistype).val(codeArr.join(','));
  282. var htxt = '';
  283. titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
  284. $('.qs-temp-txt-' + thistype).text(htxt);
  285. });
  286. /**
  287. * 筛选点击一级跳转
  288. */
  289. $(thisBox + ' .level1Link a.f-none').on('click', function () {
  290. var qtcode = $(this).data('code');
  291. var qttitle = $(this).data('title');
  292. $('.qs-temp-code-' + thistype).val(qtcode);
  293. $('.qs-temp-txt-' + thistype).text(qttitle);
  294. if (qtcode.length == 0) {
  295. $('.qs-temp-code-range').val(qtcode);
  296. }
  297. clearFilter();
  298. goPage();
  299. })
  300. /**
  301. * 一级分类点击
  302. */
  303. $(thisBox + ' .level1Group a.f-item').not('.f-none').on('click', function() {
  304. $(thisBox + ' .level1Group a.f-item').removeClass('active');
  305. if (thisLink) {
  306. $(thisBox + ' .level1Link a.f-item').removeClass('active');
  307. }
  308. $(this).addClass('active');
  309. var thisIndex = getIndex($(this).closest('.level1Group'), thisBox + ' .level1Group');
  310. var clickTempHtml = '';
  311. var thisItemCode = $(this).data('code'); // 获取点击的title
  312. clickTempHtml += '<div class="f-box-inner">';
  313. if (thisItemCode == 'near') { // 点击的为附近
  314. clickTempHtml += '<div class="level2Group">';
  315. clickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="0" data-title="不限">不限</a></li>';
  316. clickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="1" data-title="1公里">1公里</a></li>';
  317. clickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="3" data-title="3公里">3公里</a></li>';
  318. clickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="5" data-title="5公里">5公里</a></li>';
  319. clickTempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="10" data-title="10公里">10公里</a></li>';
  320. clickTempHtml += '</div>';
  321. } else {
  322. var tempLevel2Str = datasource[thisItemCode];
  323. if (tempLevel2Str) {
  324. var tempLevel2Array = tempLevel2Str.split('`');
  325. if (tempLevel2Array) {
  326. clickTempHtml += '<div class="level2Group">';
  327. $.each(tempLevel2Array, function(key, value) {
  328. if (value.split(',')) {
  329. if (value.split(',')[0]) {
  330. clickTempHtml += '<li><a class="f-item" href="javascript:;" data-code="' + value.split(',')[0] + '" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  331. }
  332. }
  333. })
  334. clickTempHtml += '</div>';
  335. }
  336. }
  337. }
  338. clickTempHtml += '</div>';
  339. if ($(thisBox + ' .f-box-inner').length > 1) {
  340. $(thisBox + ' .f-box-inner').eq(1).remove();
  341. }
  342. $(thisBox).append(clickTempHtml);
  343. /**
  344. * 二级分类点击
  345. */
  346. $(thisBox + ' .level2Group a.f-item').on('click', function() {
  347. if ($(this).hasClass('select')) { // 先判断是否是选中状态
  348. $(this).removeClass('select');
  349. if (multiple) { // 多选条件下才同步
  350. copyItem(thisBox, selectedBox);
  351. }
  352. } else {
  353. if (multiple) {
  354. // 判断是否点击的是不限
  355. var allCodeArr = $(this).data('code').split('.');
  356. if (!eval(allCodeArr[2])) {
  357. $(this).parents('.level3Group').find('.f-item').removeClass('select');
  358. } else {
  359. $(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
  360. }
  361. if (overFlow(thisBox, maxNum)) {
  362. $(this).addClass('select');
  363. $(this).parents('.level3Group').prev().find('.f-item').addClass('select');
  364. var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
  365. $(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
  366. copyItem(thisBox, selectedBox);
  367. } else {
  368. qsToast({context: '最多可选' + maxNum + '个'});
  369. }
  370. } else {
  371. $(thisBox + ' .f-item').removeClass('select');
  372. $(this).addClass('select');
  373. $(thisBox + ' .level1Group .f-item.active').addClass('select');
  374. var qtcode = $(this).data('code');
  375. var qttitle = $(this).data('title');
  376. $('.qs-temp-txt-' + thistype).text(qttitle);
  377. $('.qs-temp-code-' + thistype).val(qtcode);
  378. if (thisLink) {
  379. if ($(this).hasClass('f-range')) {// 附近
  380. $('.qs-temp-code-range').val(qtcode);
  381. $('.qs-temp-code-' + thistype).val('');
  382. }
  383. clearFilter();
  384. goPage();
  385. } else {
  386. $('.js-actionsheet').removeClass('qs-actionsheet-toggle');
  387. $(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
  388. //$('.qs-mask').fadeOut(200);
  389. }
  390. }
  391. }
  392. })
  393. })
  394. }
  395. } else { // 不是分站以及分站下除搜索页面之外的
  396. if (database) {
  397. var tempHtml = '<div class="f-box-inner">';
  398. if (thisLink) {
  399. tempHtml += '<div class="level1Link">';
  400. tempHtml += '<li><a class="f-item f-none" href="javascript:;" data-code="" data-title="地区">不限</a></li>';
  401. tempHtml += '</div>';
  402. if (that.data('range')) {
  403. tempHtml += '<div class="level1Group">';
  404. tempHtml += '<li><a class="f-item" href="javascript:;" data-code="" data-title="附近">附近</a></li>';
  405. tempHtml += '</div>';
  406. }
  407. }
  408. $.each(database, function(key, value) {
  409. if (value.split(',')) {
  410. tempHtml += '<div class="level1Group">';
  411. tempHtml += '<li><a class="f-item" href="javascript:;" data-code="' + value.split(',')[0] + '.0.0" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  412. tempHtml += '</div>';
  413. }
  414. })
  415. tempHtml += '</div>';
  416. tempHtml += '<div class="f-box-inner">';
  417. if (thisLink) { // 判断是否是筛选
  418. if (that.data('range')) { // 是否开启附近地区
  419. tempHtml += '<div class="' + hideClass + ' level2Group">';
  420. tempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="0" data-title="不限">不限</a></li>';
  421. tempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="1" data-title="1公里">1公里</a></li>';
  422. tempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="3" data-title="3公里">3公里</a></li>';
  423. tempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="5" data-title="5公里">5公里</a></li>';
  424. tempHtml += '<li><a class="f-item f-range" href="javascript:;" data-code="10" data-title="10公里">10公里</a></li>';
  425. tempHtml += '</div>';
  426. }
  427. }
  428. for (var i = 0; i < database.length; i++) {
  429. if (database[i].split(',')) {
  430. var tempLevel2Str = datasource[database[i].split(',')[0]];
  431. if (tempLevel2Str) {
  432. var tempLevel2Array = tempLevel2Str.split('`');
  433. if (tempLevel2Array) {
  434. tempHtml += '<div class="' + hideClass + ' level2Group">';
  435. if (!(tempLevel > 2) && !addJob) {
  436. tempHtml += '<li><a class="f-item" href="javascript:;" data-code="' + database[i].split(',')[0] + '.0.0" data-title="' + database[i].split(',')[1] + '">不限</a></li>';
  437. }
  438. $.each(tempLevel2Array, function(key, value) {
  439. if (value.split(',')) {
  440. if (value.split(',')[0]) {
  441. if (datasource[value.split(',')[0]]) {
  442. if (tempLevel > 2) { // 判断二三级分类
  443. var tempLevel3Str = datasource[value.split(',')[0]];
  444. if (tempLevel3Str) {
  445. var tempLevel3Array = tempLevel3Str.split('`');
  446. if (tempLevel3Array) {
  447. tempHtml += '<li><a class="f-item c-next" href="javascript:;" data-code="' + database[i].split(',')[0] + '.' + value.split(',')[0] + '.0" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  448. tempHtml += '<div class="' + hideClass + ' level3Group">';
  449. if (!addJob) {
  450. tempHtml += '<li class="l-next"><a class="font12 f-item" href="javascript:;" data-code="' + database[i].split(',')[0] + '.' + value.split(',')[0] + '.0" data-title="' + value.split(',')[1] + '">不限</a></li>';
  451. }
  452. $.each(tempLevel3Array, function (keyNext, valueNext) {
  453. if (valueNext.split(',')[0]!=="0") {
  454. tempHtml += '<li class="l-next"><a class="font12 f-item" href="javascript:;" data-code="' + database[i].split(',')[0] + '.' + value.split(',')[0] + '.' + valueNext.split(',')[0] +'" data-title="' + valueNext.split(',')[1] + '">' + valueNext.split(',')[1] + '</a></li>';
  455. }else{
  456. tempHtml += '<li class="l-next"><a class="font12 f-item" href="javascript:;" data-code="' + database[i].split(',')[0] + '.' + value.split(',')[0] + '.' + valueNext.split(',')[0] +'" data-title="' + value.split(',')[1] + '">' + valueNext.split(',')[1] + '</a></li>';
  457. }
  458. })
  459. tempHtml += '</div>';
  460. }
  461. }
  462. } else {
  463. tempHtml += '<li><a class="f-item" href="javascript:;" data-code="' + database[i].split(',')[0] + '.' + value.split(',')[0] + '.0" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  464. }
  465. } else {
  466. if (tempLevel > 2 && addJob) { // 三级分类下无最后一级分类
  467. tempHtml += '<li><a class="f-item c-next" href="javascript:;" data-code="' + database[i].split(',')[0] + '.' + value.split(',')[0] + '.0" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  468. tempHtml += '<div class="' + hideClass + ' level3Group">';
  469. tempHtml += '<li class="l-next"><a class="font12" href="javascript:;">无子分类!</a></li>';
  470. tempHtml += '</div>';
  471. } else {
  472. tempHtml += '<li><a class="f-item" href="javascript:;" data-code="' + database[i].split(',')[0] + '.' + value.split(',')[0] + '.0" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  473. }
  474. }
  475. }
  476. }
  477. })
  478. tempHtml += '</div>';
  479. }
  480. } else {
  481. tempHtml += '<div class="' + hideClass + ' level2Group">';
  482. if (tempLevel > 2) {
  483. tempHtml += '<li><a class="" href="javascript:;">无子分类!</a></li>';
  484. } else {
  485. if (addJob) {
  486. tempHtml += '<li><a class="" href="javascript:;">无子分类!</a></li>';
  487. } else {
  488. tempHtml += '<li><a class="f-item" href="javascript:;" data-code="' + database[i].split(',')[0] + '.0.0" data-title="' + database[i].split(',')[1] + '">不限</a></li>';
  489. }
  490. }
  491. tempHtml += '</div>';
  492. }
  493. }
  494. }
  495. tempHtml += '</div>';
  496. $(thisBox).html(tempHtml);
  497. var rvalue = $('.qs-temp-code-' + thistype).val();
  498. if (rvalue.length) { // 恢复选中
  499. var rvalueArr = rvalue.split(',');
  500. var itemArr = $(thisBox + ' .level2Group a.f-item').not('.c-next');
  501. $.each(rvalueArr, function (key, value) {
  502. $.each(itemArr, function () {
  503. if ($(this).data('code') == value) {
  504. $(this).addClass('select');
  505. $(this).parents('.level3Group').prev().find('.f-item').addClass('active select');
  506. $(this).parents('.level3Group').removeClass(hideClass);
  507. $(this).parents('.level2Group').removeClass(hideClass);
  508. var tindex = getIndex($(this).parents('.level2Group'), thisBox + ' .level2Group');
  509. $(thisBox + ' .level1Group').eq(tindex).find('.f-item').addClass('select');
  510. }
  511. })
  512. })
  513. var firstSelectedItem = $(thisBox + ' .level2Group a.select').not('.c-next').eq(0);
  514. firstSelectedItem.parents('.level3Group').prev().find('.f-item').addClass('active select');
  515. firstSelectedItem.parents('.level3Group').removeClass(hideClass);
  516. firstSelectedItem.parents('.level2Group').removeClass(hideClass);
  517. var rindex = getIndex(firstSelectedItem.parents('.level2Group'), thisBox + ' .level2Group');
  518. $(thisBox + ' .level1Group').eq(rindex).find('.f-item').addClass('select');
  519. if (multiple) {
  520. copyItem(thisBox, selectedBox);
  521. }
  522. // 三级地区取消不限,不限旧数据恢复
  523. var cityvalue = $('.qs-temp-code-city.jobcity').val();
  524. if(cityvalue){
  525. var isDistrictLimit = cityvalue.split(".").length==3&&cityvalue.split(".")[2]==0;
  526. if(isDistrictLimit){
  527. var itemArrG2 = $(thisBox+' .level2Group a.f-item.c-next');
  528. $.each(itemArrG2, function () {
  529. if ($(this).data('code') == cityvalue ) {
  530. $(this).addClass('active');
  531. $(this).parents('.level2Group').removeClass("qs-hidden");
  532. $(this).parent().next(".level3Group").removeClass("qs-hidden");
  533. var tindex = getIndex($(this).parents('.level2Group'), thisBox+' .level2Group');
  534. $( thisBox + ' .level1Group').eq(tindex).find('.f-item').addClass('select');
  535. }
  536. })
  537. }
  538. }
  539. } else {
  540. if (thisLink) {// 判断是否是筛选
  541. var rangeValue = $('.qs-temp-code-range').val();
  542. if (rangeValue.length) {
  543. $(thisBox + ' .level1Group').eq(0).find('.f-item').addClass('select');
  544. $(thisBox + ' .level2Group').eq(0).removeClass(hideClass);
  545. var recoverRangeItemArr = $(thisBox + ' .level2Group').eq(0).find('.f-item');
  546. $.each(recoverRangeItemArr, function () {
  547. if ($(this).data('code') == rangeValue) {
  548. $(this).addClass('select');
  549. }
  550. })
  551. } else {
  552. $(thisBox + ' .level1Link .f-item').eq(0).addClass('active');
  553. }
  554. } else {
  555. // $(thisBox + ' .level1Group .f-item').eq(0).addClass('active');
  556. $(thisBox + ' .level2Group').eq(0).removeClass(hideClass); // 不恢复默认二级分类的第一个显示出来
  557. }
  558. // 恢复默认地区
  559. if(default_district && that.data("base")=="QS_city_parent"&&that.data("level")==3){
  560. if(default_district.split('.').length==2){
  561. default_district = default_district+".0";
  562. }
  563. var district_itemArr = $(thisBox + ' .level2Group a.f-item.c-next');
  564. $(thisBox + ' .level2Group').addClass(hideClass)
  565. $.each(district_itemArr, function () {
  566. if ($(this).data('code') == default_district) {
  567. $(this).addClass('active select');
  568. $(this).parent().next().removeClass(hideClass);
  569. $(this).parents('.level2Group').removeClass(hideClass);
  570. var tindex = getIndex($(this).parents('.level2Group'), thisBox + ' .level2Group');
  571. $(thisBox + ' .level1Group').eq(tindex).find('.f-item').addClass('select');
  572. }
  573. })
  574. }
  575. }
  576. /**
  577. * 确定
  578. */
  579. $('#qs-temp-confirm-' + thistype).on('click', function () {
  580. var selectedArr = $(selectedBox + ' .s-list-cell');
  581. var codeArr = new Array();
  582. var titleArr = new Array();
  583. $.each(selectedArr, function (key, value) {
  584. var code = $(this).data('code');
  585. var title = $(this).data('title');
  586. codeArr.push(code);
  587. titleArr.push(title);
  588. })
  589. $('.qs-temp-code-' + thistype).val(codeArr.join(','));
  590. var htxt = '';
  591. titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
  592. $('.qs-temp-txt-' + thistype).text(htxt);
  593. });
  594. /**
  595. * 筛选点击不限
  596. */
  597. $(thisBox + ' .level1Link a.f-none').on('click', function () {
  598. var qtcode = $(this).data('code');
  599. var qttitle = $(this).data('title');
  600. $('.qs-temp-code-' + thistype).val(qtcode);
  601. $('.qs-temp-txt-' + thistype).text(qttitle);
  602. $('.qs-temp-code-range').val(qtcode);
  603. clearFilter();
  604. goPage();
  605. })
  606. /**
  607. * 一级分类点击
  608. */
  609. $(thisBox + ' .level1Group a.f-item').not('.f-none').on('click', function() {
  610. $(thisBox + ' .level1Group a.f-item').removeClass('active');
  611. if (thisLink) {
  612. $(thisBox + ' .level1Link a.f-item').removeClass('active');
  613. }
  614. $(this).addClass('active');
  615. var thisIndex = getIndex($(this).closest('.level1Group'), thisBox + ' .level1Group');
  616. $(thisBox + ' .level2Group').addClass(hideClass);
  617. $(thisBox + ' .level2Group').eq(thisIndex).removeClass(hideClass);
  618. })
  619. /**
  620. * 二三级分类点击
  621. */
  622. $(thisBox + ' .level2Group a.f-item').on('click', function() {
  623. if ($(this).hasClass('c-next')) { // 如果是二级分类
  624. if ($(this).hasClass('active')) { // 是否是展开状态
  625. $(this).closest('li').next().addClass(hideClass);
  626. $(this).removeClass('active');
  627. } else {
  628. $('.level2Group').find('a.c-next').removeClass('active');
  629. $(this).addClass('active');
  630. $(thisBox + ' .level3Group').addClass(hideClass);
  631. $(this).parents('li').next().removeClass(hideClass);
  632. }
  633. } else { // 三级分类
  634. if ($(this).hasClass('select')) { // 先判断是否是选中状态
  635. $(this).removeClass('select');
  636. if (!$(this).parents('.level3Group').find('.select').length) {
  637. $(this).parents('.level3Group').prev().find('.f-item').removeClass('select');
  638. if (!$(this).closest('.level2Group').find('.select').length) {
  639. var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
  640. $(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').removeClass('select');
  641. }
  642. }
  643. if (multiple) { // 多选条件下才同步
  644. copyItem(thisBox, selectedBox);
  645. }
  646. } else {
  647. if (multiple) {
  648. // 判断是否点击的是不限
  649. var allCodeArr = $(this).data('code').split('.');
  650. if (!eval(allCodeArr[2])) {
  651. $(this).parents('.level3Group').find('.f-item').removeClass('select');
  652. } else {
  653. $(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
  654. }
  655. if (overFlow(thisBox, maxNum)) {
  656. $(this).addClass('select');
  657. $(this).parents('.level3Group').prev().find('.f-item').addClass('select');
  658. var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
  659. $(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
  660. copyItem(thisBox, selectedBox);
  661. } else {
  662. qsToast({context: '最多可选' + maxNum + '个'});
  663. }
  664. } else {
  665. $(thisBox + ' .f-item').removeClass('select');
  666. $(this).addClass('select');
  667. $(this).parents('.level3Group').prev().find('.f-item').addClass('select');
  668. $(thisBox + ' .level1Group .f-item.active').addClass('select');
  669. var qtcode = $(this).data('code');
  670. var qttitle = $(this).data('title');
  671. $('.qs-temp-txt-' + thistype).text(qttitle);
  672. $('.qs-temp-code-' + thistype).val(qtcode);
  673. if(getPoint){
  674. var secTxt = $(this).parents('.level3Group').prev().find('.f-item').text();
  675. if(secTxt){
  676. searchByStationName(secTxt+qttitle);
  677. }else{
  678. searchByStationName(qttitle);
  679. }
  680. }
  681. if (thisLink) {
  682. if ($(this).hasClass('f-range')) {// 附近
  683. $('.qs-temp-code-range').val(qtcode);
  684. $('.qs-temp-code-' + thistype).val('');
  685. }
  686. clearFilter();
  687. goPage();
  688. } else {
  689. $('.js-actionsheet').removeClass('qs-actionsheet-toggle');
  690. $(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
  691. //$('.qs-mask').fadeOut(200);
  692. }
  693. }
  694. }
  695. }
  696. })
  697. }
  698. }
  699. /**
  700. * 清除筛选
  701. */
  702. function clearFilter() {
  703. $('body').removeClass('filter-fixed');
  704. $(thisBox).addClass(hideClass);
  705. $('#f-mask').hide();
  706. $('.qs-temp').removeClass('active');
  707. }
  708. })
  709. /**
  710. * 同步
  711. * @param container 当前容器
  712. * @param selectedContainer 显示选中的容器
  713. */
  714. function copyItem(container, selectedContainer) {
  715. var selectedArr = $(container + ' .level2Group a.select').not('.c-next');
  716. var selectedHtml = '';
  717. if (selectedArr.length) {
  718. $.each(selectedArr, function(key, value) {
  719. var code = $(this).data('code');
  720. var title = $(this).data('title');
  721. selectedHtml += '<div class="s-list-cell" data-code="' + code + '" data-title="' + title + '">' + title + '</div>';
  722. })
  723. $(selectedContainer + ' .s-list').html(selectedHtml);
  724. $(selectedContainer + ' .s-list').removeClass(hideClass);
  725. } else {
  726. $(selectedContainer + ' .s-list').html(selectedHtml);
  727. $(selectedContainer + ' .s-list').addClass(hideClass);
  728. return false;
  729. }
  730. // 已选列表点击
  731. $(selectedContainer + ' .s-list-cell').on('click', function () {
  732. var code = $(this).data('code');
  733. $.each(selectedArr, function () {
  734. var concode = $(this).data('code');
  735. if (concode == code) {
  736. $(this).removeClass('select');
  737. if (!$(this).parents('.level3Group').find('.select').length) {
  738. $(this).parents('.level3Group').prev().find('.f-item').removeClass('select');
  739. if (!$(this).closest('.level2Group').find('.select').length) {
  740. var levelIndex = getIndex($(this).closest('.level2Group'), container + ' .level2Group');
  741. $(container + ' .level1Group').eq(levelIndex).find('.f-item').removeClass('select');
  742. }
  743. }
  744. }
  745. })
  746. copyItem(container, selectedContainer);
  747. })
  748. }
  749. /**
  750. * 获取当前对象的下标
  751. * @param obj 当前对象
  752. * @param container 当前容器
  753. * @returns {*|jQuery} 下标
  754. */
  755. function getIndex(obj, container) {
  756. return $(container).index(obj);
  757. }
  758. /**
  759. * 选中项目的数量是否超出最大限制
  760. * @param container 当前容器
  761. * @param num 最大数量
  762. * @returns {boolean} 是否可以继续选择
  763. */
  764. function overFlow(container, num) {
  765. return $(container + ' .level2Group a.select').not('.c-next').length >= num ? false : true;
  766. }
  767. /**
  768. * 只有一级分类
  769. */
  770. var tempLevel1Arr = $('.qs-temp-level1');
  771. $.each(tempLevel1Arr, function () {
  772. var thistype = $(this).data('type');
  773. var database = eval($(this).data('base'));
  774. var multiple = eval($(this).data('multiple')); // 多选单选
  775. var maxNum =$(this).data('num');
  776. var thisBox = '.f-box-' + thistype;
  777. var selectedBox = '.f-selected-group-' + thistype;
  778. var thisLink = eval($(this).data('link'));
  779. if (database) {
  780. var tempHtml = '<div class="f-box-inner">';
  781. $.each(database, function(key, value) {
  782. if (value.split(',')) {
  783. tempHtml += '<li><a class="font12 f-item f-item-only" href="javascript:;" data-code="' + value.split(',')[0] + '" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  784. }
  785. })
  786. tempHtml += '</div>';
  787. $(thisBox).html(tempHtml);
  788. /**
  789. * 恢复选中
  790. */
  791. var rvalue = $('.qs-temp-code-' + thistype).val();
  792. if (rvalue.length) {
  793. var rvalueArr = rvalue.split(',');
  794. var itemArr = $(thisBox + ' .f-item-only');
  795. $.each(rvalueArr, function (key, value) {
  796. $.each(itemArr, function () {
  797. if ($(this).data('code') == value) {
  798. $(this).addClass('select');
  799. }
  800. })
  801. })
  802. if (multiple) {
  803. copyItemOnly(thisBox, selectedBox);
  804. }
  805. }
  806. /**
  807. * 分类点击
  808. */
  809. $(thisBox + ' .f-item-only').on('click', function () {
  810. if ($(this).hasClass('select')) {
  811. $(this).removeClass('select');
  812. if (multiple) { // 多选条件下才同步
  813. copyItemOnly(thisBox, selectedBox);
  814. }
  815. } else {
  816. if (multiple) {
  817. if (overFlowOnly(thisBox, maxNum)) {
  818. $(this).addClass('select');
  819. copyItemOnly(thisBox, selectedBox);
  820. } else {
  821. qsToast({context: '最多可选' + maxNum + '个'});
  822. }
  823. } else {
  824. $(thisBox + ' .f-item-only').removeClass('select');
  825. $(this).addClass('select');
  826. var qtcode = $(this).data('code');
  827. var qttitle = $(this).data('title');
  828. $('.qs-temp-code-' + thistype).val(qtcode);
  829. $('.qs-temp-txt-' + thistype).text(qttitle);
  830. $('.js-actionsheet').removeClass('qs-actionsheet-toggle');
  831. $(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
  832. //$('.qs-mask').fadeOut(200);
  833. }
  834. }
  835. })
  836. /**
  837. * 确定
  838. */
  839. $('#qs-temp-confirm-' + thistype).on('click', function () {
  840. var selectedArr = $(selectedBox + ' .s-list-cell');
  841. var codeArr = new Array();
  842. var titleArr = new Array();
  843. $.each(selectedArr, function (key, value) {
  844. var code = $(this).data('code');
  845. var title = $(this).data('title');
  846. codeArr.push(code);
  847. titleArr.push(title);
  848. })
  849. $('.qs-temp-code-' + thistype).val(codeArr.join(','));
  850. var htxt = '';
  851. titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
  852. $('.qs-temp-txt-' + thistype).text(htxt);
  853. });
  854. }
  855. })
  856. /**
  857. * 红包多选
  858. */
  859. var tempLevelAlwArr = $('.qs-temp-level-alw');
  860. $.each(tempLevelAlwArr, function () {
  861. var thistype = $(this).data('type');
  862. var database = eval($(this).data('base'));
  863. var multiple = eval($(this).data('multiple')); // 多选单选
  864. var maxNum =$(this).data('num');
  865. var thisBox = '.f-box-' + thistype;
  866. var selectedBox = '.f-selected-group-' + thistype;
  867. var thisLink = eval($(this).data('link'));
  868. if (database) {
  869. var tempHtml = '<div class="f-box-inner">';
  870. tempHtml += '<li><a class="font12 f-item f-item-only only-nm" href="javascript:;" data-code="0" data-title="不限">不限</a></li>';
  871. $.each(database, function(key, value) {
  872. if (value.split(',')) {
  873. tempHtml += '<li><a class="font12 f-item f-item-only" href="javascript:;" data-code="' + value.split(',')[0] + '" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  874. }
  875. })
  876. tempHtml += '</div>';
  877. $(thisBox).html(tempHtml);
  878. /**
  879. * 恢复选中
  880. */
  881. var rvalue = $('.qs-temp-code-' + thistype).val();
  882. if (rvalue.length) {
  883. var rvalueArr = rvalue.split(',');
  884. var itemArr = $(thisBox + ' .f-item-only');
  885. $.each(rvalueArr, function (key, value) {
  886. $.each(itemArr, function () {
  887. if ($(this).data('code') == value) {
  888. $(this).addClass('select');
  889. }
  890. })
  891. })
  892. if (multiple) {
  893. copyItemOnly(thisBox, selectedBox);
  894. }
  895. }
  896. /**
  897. * 分类点击
  898. */
  899. $(thisBox + ' .f-item-only').on('click', function () {
  900. var thisCode = $(this).data('code');
  901. if ($(this).hasClass('select')) {
  902. $(this).removeClass('select');
  903. $(thisBox + ' .only-nm').removeClass('select');
  904. if (!eval(thisCode)) {
  905. // 不限
  906. $(thisBox + ' .f-item-only').each(function(index, el) {
  907. if (index) {
  908. $(this).removeClass('select');
  909. }
  910. })
  911. }
  912. if (multiple) { // 多选条件下才同步
  913. copyItemOnly(thisBox, selectedBox);
  914. }
  915. } else {
  916. if (multiple) {
  917. if (overFlowOnly(thisBox, maxNum)) {
  918. $(this).addClass('select');
  919. if (!eval(thisCode)) {
  920. // 不限
  921. $(thisBox + ' .f-item-only').each(function(index, el) {
  922. if (index) {
  923. $(this).addClass('select');
  924. }
  925. })
  926. }
  927. var othersArray = $(thisBox + ' .f-item-only');
  928. var thisIndex = $(thisBox + ' .f-item-only').index($(this));
  929. var checkedNum = $(thisBox + ' .f-item-only.select').length;
  930. if (checkedNum <= 1) {
  931. $.each(othersArray, function (index, value) {
  932. if (index > thisIndex) {
  933. $(this).addClass('select');
  934. }
  935. })
  936. }
  937. copyItemOnly(thisBox, selectedBox);
  938. } else {
  939. qsToast({context: '最多可选' + maxNum + '个'});
  940. }
  941. } else {
  942. $(thisBox + ' .f-item-only').removeClass('select');
  943. $(this).addClass('select');
  944. var qtcode = $(this).data('code');
  945. var qttitle = $(this).data('title');
  946. $('.qs-temp-code-' + thistype).val(qtcode);
  947. $('.qs-temp-txt-' + thistype).text(qttitle);
  948. $('.js-actionsheet').removeClass('qs-actionsheet-toggle');
  949. $(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
  950. //$('.qs-mask').fadeOut(200);
  951. }
  952. }
  953. })
  954. /**
  955. * 确定
  956. */
  957. $('#qs-temp-confirm-' + thistype).on('click', function () {
  958. var selectedArr = $(selectedBox + ' .s-list-cell');
  959. var codeArr = new Array();
  960. var titleArr = new Array();
  961. $.each(selectedArr, function (key, value) {
  962. var code = $(this).data('code');
  963. var title = $(this).data('title');
  964. codeArr.push(code);
  965. titleArr.push(title);
  966. })
  967. $('.qs-temp-code-' + thistype).val(codeArr.join(','));
  968. var htxt = '';
  969. titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
  970. $('.qs-temp-txt-' + thistype).text(htxt);
  971. });
  972. }
  973. })
  974. /**
  975. * 选中项目的数量是否超出最大限制
  976. * @param container 当前容器
  977. * @param num 最大数量
  978. * @returns {boolean} 是否可以继续选择
  979. */
  980. function overFlowOnly(container, num) {
  981. return $(container + ' .f-item-only.select').length >= num ? false : true;
  982. }
  983. /**
  984. * 同步
  985. * @param container 当前容器
  986. * @param selectedContainer 显示选中的容器
  987. */
  988. function copyItemOnly(container, selectedContainer) {
  989. var selectedArr = $(container + ' .f-item-only.select');
  990. var selectedHtml = '';
  991. if (selectedArr.length) {
  992. $.each(selectedArr, function(key, value) {
  993. if (!$(this).hasClass('only-nm')) {
  994. var code = $(this).data('code');
  995. var title = $(this).data('title');
  996. selectedHtml += '<div class="s-list-cell" data-code="' + code + '" data-title="' + title + '">' + title + '</div>';
  997. }
  998. })
  999. $(selectedContainer + ' .s-list').html(selectedHtml);
  1000. $(selectedContainer + ' .s-list').removeClass(hideClass);
  1001. } else {
  1002. $(selectedContainer + ' .s-list').html(selectedHtml);
  1003. $(selectedContainer + ' .s-list').addClass(hideClass);
  1004. return false;
  1005. }
  1006. // 已选列表点击
  1007. $(selectedContainer + ' .s-list-cell').on('click', function () {
  1008. var code = $(this).data('code');
  1009. $.each(selectedArr, function () {
  1010. var concode = $(this).data('code');
  1011. if (concode == code) {
  1012. $(this).removeClass('select');
  1013. }
  1014. })
  1015. copyItemOnly(container, selectedContainer);
  1016. })
  1017. }
  1018. /**
  1019. * 专业分类
  1020. */
  1021. var tempLevelmajorArr = $('.qs-temp-level-major');
  1022. $.each(tempLevelmajorArr, function() {
  1023. var thistype = $(this).data('type');
  1024. var database = eval($(this).data('base'));
  1025. var datasource = eval($(this).data('source'));
  1026. var multiple = eval($(this).data('multiple')); // 多选单选
  1027. var maxNum =$(this).data('num');
  1028. var thisBox = '.f-box-' + thistype;
  1029. var selectedBox = '.f-selected-group-' + thistype;
  1030. var thisLink = eval($(this).data('link'));
  1031. if (database) {
  1032. var tempHtml = '<div class="f-box-inner">';
  1033. $.each(database, function(key, value) {
  1034. if (value.split(',')) {
  1035. tempHtml += '<div class="level1Group">';
  1036. tempHtml += '<li><a class="font12 f-item" href="javascript:;" data-code="' + value.split(',')[0] + '.0.0" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  1037. tempHtml += '</div>';
  1038. }
  1039. })
  1040. tempHtml += '</div>';
  1041. tempHtml += '<div class="f-box-inner">';
  1042. for (var i = 0; i < database.length; i++) {
  1043. if (database[i].split(',')) {
  1044. var tempLevel2Str = datasource[database[i].split(',')[0]];
  1045. if (tempLevel2Str) {
  1046. var tempLevel2Array = tempLevel2Str.split('`');
  1047. if (tempLevel2Array) {
  1048. tempHtml += '<div class="' + hideClass + ' level2Group">';
  1049. $.each(tempLevel2Array, function(key, value) {
  1050. if (value.split(',')) {
  1051. if (value.split(',')[0]) {
  1052. tempHtml += '<li><a class="font12 f-item" href="javascript:;" data-code="' + value.split(',')[0] + '" data-title="' + value.split(',')[1] + '">' + value.split(',')[1] + '</a></li>';
  1053. }
  1054. }
  1055. })
  1056. tempHtml += '</div>';
  1057. }
  1058. }
  1059. }
  1060. }
  1061. tempHtml += '</div>';
  1062. $(thisBox).html(tempHtml);
  1063. var rvalue = $('.qs-temp-code-' + thistype).val();
  1064. if (rvalue.length) { // 恢复选中
  1065. var rvalueArr = rvalue.split(',');
  1066. var itemArr = $(thisBox + ' .level2Group a.f-item').not('.c-next');
  1067. $.each(rvalueArr, function (key, value) {
  1068. $.each(itemArr, function () {
  1069. if ($(this).data('code') == value) {
  1070. $(this).addClass('select');
  1071. $(this).parents('.level2Group').removeClass(hideClass);
  1072. var tindex = getIndex($(this).parents('.level2Group'), thisBox + ' .level2Group');
  1073. $(thisBox + ' .level1Group').eq(tindex).find('.f-item').addClass('select');
  1074. }
  1075. })
  1076. })
  1077. var firstSelectedItem = $(thisBox + ' .level2Group a.select').not('.c-next').eq(0);
  1078. firstSelectedItem.parents('.level2Group').removeClass(hideClass);
  1079. var rindex = getIndex(firstSelectedItem.parents('.level2Group'), thisBox + ' .level2Group');
  1080. $(thisBox + ' .level1Group').eq(rindex).find('.f-item').addClass('select');
  1081. if (multiple) {
  1082. copyItem(thisBox, selectedBox);
  1083. }
  1084. } else {
  1085. $(thisBox + ' .level1Group .f-item').eq(0).addClass('active');
  1086. $(thisBox + ' .level2Group').eq(0).removeClass(hideClass); // 不恢复默认二级分类的第一个显示出来
  1087. }
  1088. /**
  1089. * 确定
  1090. */
  1091. $('#qs-temp-confirm-' + thistype).on('click', function () {
  1092. var selectedArr = $(selectedBox + ' .s-list-cell');
  1093. var codeArr = new Array();
  1094. var titleArr = new Array();
  1095. $.each(selectedArr, function (key, value) {
  1096. var code = $(this).data('code');
  1097. var title = $(this).data('title');
  1098. codeArr.push(code);
  1099. titleArr.push(title);
  1100. })
  1101. $('.qs-temp-code-' + thistype).val(codeArr.join(','));
  1102. var htxt = '';
  1103. titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
  1104. $('.qs-temp-txt-' + thistype).text(htxt);
  1105. });
  1106. /**
  1107. * 一级分类点击
  1108. */
  1109. $(thisBox + ' .level1Group a.f-item').not('.f-none').on('click', function() {
  1110. $(thisBox + ' .level1Group a.f-item').removeClass('active');
  1111. $(this).addClass('active');
  1112. var thisIndex = getIndex($(this).closest('.level1Group'), thisBox + ' .level1Group');
  1113. $(thisBox + ' .level2Group').addClass(hideClass);
  1114. $(thisBox + ' .level2Group').eq(thisIndex).removeClass(hideClass);
  1115. })
  1116. /**
  1117. * 二三级分类点击
  1118. */
  1119. $(thisBox + ' .level2Group a.f-item').on('click', function() {
  1120. if ($(this).hasClass('c-next')) { // 如果是二级分类
  1121. if ($(this).hasClass('active')) { // 是否是展开状态
  1122. $(this).closest('li').next().addClass(hideClass);
  1123. $(this).removeClass('active');
  1124. } else {
  1125. $(this).closest('.level2Group').find('a.c-next').removeClass('active');
  1126. $(this).addClass('active');
  1127. $(thisBox + ' .level3Group').addClass(hideClass);
  1128. $(this).parents('li').next().removeClass(hideClass);
  1129. }
  1130. } else { // 三级分类
  1131. if ($(this).hasClass('select')) { // 先判断是否是选中状态
  1132. $(this).removeClass('select');
  1133. if (!$(this).parents('.level3Group').find('.select').length) {
  1134. $(this).parents('.level3Group').prev().find('.f-item').removeClass('select');
  1135. if (!$(this).closest('.level2Group').find('.select').length) {
  1136. var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
  1137. $(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').removeClass('select');
  1138. }
  1139. }
  1140. if (multiple) { // 多选条件下才同步
  1141. copyItem(thisBox, selectedBox);
  1142. }
  1143. } else {
  1144. if (multiple) {
  1145. // 判断是否点击的是不限
  1146. var allCodeArr = $(this).data('code').split('.');
  1147. if (!eval(allCodeArr[2])) {
  1148. $(this).parents('.level3Group').find('.f-item').removeClass('select');
  1149. } else {
  1150. $(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
  1151. }
  1152. if (overFlow(thisBox, maxNum)) {
  1153. $(this).addClass('select');
  1154. $(this).parents('.level3Group').prev().find('.f-item').addClass('select');
  1155. var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
  1156. $(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
  1157. copyItem(thisBox, selectedBox);
  1158. } else {
  1159. qsToast({context: '最多可选' + maxNum + '个'});
  1160. }
  1161. } else {
  1162. $(thisBox + ' .f-item').removeClass('select');
  1163. $(this).addClass('select');
  1164. $(this).parents('.level3Group').prev().find('.f-item').addClass('select');
  1165. $(thisBox + ' .level1Group .f-item.active').addClass('select');
  1166. var qtcode = $(this).data('code');
  1167. var qttitle = $(this).data('title');
  1168. $('.qs-temp-code-' + thistype).val(qtcode);
  1169. $('.qs-temp-txt-' + thistype).text(qttitle);
  1170. if (thisLink) {
  1171. clearFilter();
  1172. goPage();
  1173. } else {
  1174. $('.js-actionsheet').removeClass('qs-actionsheet-toggle');
  1175. $(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
  1176. //$('.qs-mask').fadeOut(200);
  1177. }
  1178. }
  1179. }
  1180. }
  1181. })
  1182. }
  1183. /**
  1184. * 清除筛选
  1185. */
  1186. function clearFilter() {
  1187. $('body').removeClass('filter-fixed');
  1188. $(thisBox).addClass(hideClass);
  1189. $('#f-mask').hide();
  1190. $('.qs-temp').removeClass('active');
  1191. }
  1192. })
  1193. });