/**
* 读取缓存分类
*/
$(function () {
var hideClass = 'qs-hidden';
var tempArr = $('.qs-temp');
// var isSubsite = eval(qscms.is_subsite); // 是否是分站
var isSubsite = 0; // 是否是分站
// var subsiteLevelNum = eval(qscms.subsite_level); // 分站级数
var subsiteLevelNum = 0 // 分站级数
var subsiteLevel1 = true; // 是否是一级分站
if (!isSubsite) { // 如果不是分站 一级分站始终为false
subsiteLevel1 = false;
} else {
if (subsiteLevelNum > 1) { // 如果是分站,分站级数大于1 则为false
subsiteLevel1 = false;
}
}
$.each(tempArr, function() {
var that = $(this);
var thistype = $(this).data('type');
var database = eval($(this).data('base'));
var datasource = eval($(this).data('source'));
var multiple = eval($(this).data('multiple')); // 多选单选
var maxNum = $(this).data('num');
var tempLevel = eval($(this).data('level')); // 二三级分类标识
var thisBox = '.f-box-' + thistype;
var selectedBox = '.f-selected-group-' + thistype;
var thisLink = eval($(this).data('link')); // 是否是搜索
var addJob = eval($(this).data('addjob')); // 是否是发布职位
var getPoint=$(this).data('getpoint');
if (thisLink && isSubsite) { // 分站下的搜索页面
if (database) {
var tempHtml = '
';
if (thisLink) {
tempHtml += '
';
tempHtml += '
不限';
tempHtml += '
';
if (that.data('range')) {
tempHtml += '
';
tempHtml += '
附近';
tempHtml += '
';
}
}
if (subsiteLevel1) { // 一级分站
$.each(database, function(key, value) {
if (value.split(',')) {
tempHtml += '
';
}
})
} else {
$.each(database, function(key, value) {
if (value.split(',')) {
var tempLevel2Str = datasource[value.split(',')[0]];
if (tempLevel2Str) {
tempHtml += '
';
} else {
tempHtml += '
';
}
}
})
}
tempHtml += '
';
$(thisBox).html(tempHtml);
// 恢复选中
var rvalue = $('.qs-temp-code-' + thistype).val();
if (rvalue.length) {
var rvalueArr = rvalue.split(',');
if (subsiteLevel1) { // 一级分站
$(thisBox + ' .level1Link .f-none').each(function(){
if ($(this).data('code') == rvalue) {
$(this).addClass('select');
}
});
} else { // 二级分站
// 先循环一级地区列表看是否能匹配
$(thisBox + ' .level1Link .f-none').each(function(){
if ($(this).data('code') == rvalue) {
$(this).addClass('select');
}
});
var recoverLevel1Id = '';
$.each(database, function(key, value) { // 先找出与二级分类id对应的一级分类id
if (value.split(',')) {
if (datasource[value.split(',')[0]]) {
var recoverTempLevel2Str = datasource[value.split(',')[0]];
if (recoverTempLevel2Str) {
var recoverTempLevel22Str = recoverTempLevel2Str.split('`');
if (recoverTempLevel22Str) {
$.each(recoverTempLevel22Str, function(key2, value2) {
if (value2.split(',')[0] == rvalue) {
recoverLevel1Id = value.split(',')[0];
}
})
}
}
}
}
})
// 恢复一级
$(thisBox + ' .level1Group .f-item').each(function(){
if ($(this).data('code') == recoverLevel1Id) {
$(this).addClass('select');
}
});
// 生成需要恢复的二级
var clickTempHtml = '';
var rtempLevel2Str = datasource[recoverLevel1Id];
if (rtempLevel2Str) {
var rtempLevel2Array = rtempLevel2Str.split('`');
if (rtempLevel2Array) {
clickTempHtml += '
';
$.each(rtempLevel2Array, function(key, value) {
if (value.split(',')) {
if (value.split(',')[0]) {
if (value.split(',')[0] == rvalue) {
clickTempHtml += '
' + value.split(',')[1] + '';
} else {
clickTempHtml += '
' + value.split(',')[1] + '';
}
}
}
})
clickTempHtml += '
';
}
}
clickTempHtml += '
';
$(thisBox).append(clickTempHtml);
/**
* 二级分类点击
*/
$(thisBox + ' .level2Group a.f-item').on('click', function() {
if ($(this).hasClass('select')) { // 先判断是否是选中状态
$(this).removeClass('select');
if (multiple) { // 多选条件下才同步
copyItem(thisBox, selectedBox);
}
} else {
if (multiple) {
// 判断是否点击的是不限
var allCodeArr = $(this).data('code').split('.');
if (!eval(allCodeArr[2])) {
$(this).parents('.level3Group').find('.f-item').removeClass('select');
} else {
$(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
}
if (overFlow(thisBox, maxNum)) {
$(this).addClass('select');
$(this).parents('.level3Group').prev().find('.f-item').addClass('select');
var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
copyItem(thisBox, selectedBox);
} else {
qsToast({context: '最多可选' + maxNum + '个'});
}
} else {
$(thisBox + ' .f-item').removeClass('select');
$(this).addClass('select');
$(thisBox + ' .level1Group .f-item.active').addClass('select');
var qtcode = $(this).data('code');
var qttitle = $(this).data('title');
$('.qs-temp-txt-' + thistype).text(qttitle);
$('.qs-temp-code-' + thistype).val(qtcode);
if (thisLink) {
if ($(this).hasClass('f-range')) {// 附近
$('.qs-temp-code-range').val(qtcode);
$('.qs-temp-code-' + thistype).val('');
}
clearFilter();
goPage();
} else {
$('.js-actionsheet').removeClass('qs-actionsheet-toggle');
$(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
//$('.qs-mask').fadeOut(200);
}
}
}
})
}
if (multiple) {
copyItem(thisBox, selectedBox);
}
} else {
if (thisLink) { // 判断是否是筛选
var rangeValue = $('.qs-temp-code-range').val();
if (rangeValue.length) {
$(thisBox + ' .level1Group').eq(0).find('.f-item').addClass('select');
var rclickTempHtml = '';
rclickTempHtml += '
';
rclickTempHtml += '
不限';
rclickTempHtml += '
1公里';
rclickTempHtml += '
3公里';
rclickTempHtml += '
5公里';
rclickTempHtml += '
10公里';
rclickTempHtml += '
';
rclickTempHtml += '
';
$(thisBox).append(rclickTempHtml);
var recoverRangeItemArr = $(thisBox + ' .level2Group').eq(0).find('.f-item');
$.each(recoverRangeItemArr, function () {
if ($(this).data('code') == rangeValue) {
$(this).addClass('select');
}
})
/**
* 二级分类点击
*/
$(thisBox + ' .level2Group a.f-item').on('click', function() {
if ($(this).hasClass('select')) { // 先判断是否是选中状态
$(this).removeClass('select');
if (multiple) { // 多选条件下才同步
copyItem(thisBox, selectedBox);
}
} else {
if (multiple) {
// 判断是否点击的是不限
var allCodeArr = $(this).data('code').split('.');
if (!eval(allCodeArr[2])) {
$(this).parents('.level3Group').find('.f-item').removeClass('select');
} else {
$(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
}
if (overFlow(thisBox, maxNum)) {
$(this).addClass('select');
$(this).parents('.level3Group').prev().find('.f-item').addClass('select');
var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
copyItem(thisBox, selectedBox);
} else {
qsToast({context: '最多可选' + maxNum + '个'});
}
} else {
$(thisBox + ' .f-item').removeClass('select');
$(this).addClass('select');
$(thisBox + ' .level1Group .f-item.active').addClass('select');
var qtcode = $(this).data('code');
var qttitle = $(this).data('title');
$('.qs-temp-txt-' + thistype).text(qttitle);
$('.qs-temp-code-' + thistype).val(qtcode);
if (thisLink) {
if ($(this).hasClass('f-range')) {// 附近
$('.qs-temp-code-range').val(qtcode);
$('.qs-temp-code-' + thistype).val('');
}
clearFilter();
goPage();
} else {
$('.js-actionsheet').removeClass('qs-actionsheet-toggle');
$(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
//$('.qs-mask').fadeOut(200);
}
}
}
})
} else {
$(thisBox + ' .level1Link .f-item').eq(0).addClass('active');
}
} else {
// $(thisBox + ' .level1Group .f-item').eq(0).addClass('active');
$(thisBox + ' .level2Group').eq(0).removeClass(hideClass); // 不恢复默认二级分类的第一个显示出来
}
}
/**
* 确定
*/
$('#qs-temp-confirm-' + thistype).on('click', function () {
var selectedArr = $(selectedBox + ' .s-list-cell');
var codeArr = new Array();
var titleArr = new Array();
$.each(selectedArr, function (key, value) {
var code = $(this).data('code');
var title = $(this).data('title');
codeArr.push(code);
titleArr.push(title);
})
$('.qs-temp-code-' + thistype).val(codeArr.join(','));
var htxt = '';
titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
$('.qs-temp-txt-' + thistype).text(htxt);
});
/**
* 筛选点击一级跳转
*/
$(thisBox + ' .level1Link a.f-none').on('click', function () {
var qtcode = $(this).data('code');
var qttitle = $(this).data('title');
$('.qs-temp-code-' + thistype).val(qtcode);
$('.qs-temp-txt-' + thistype).text(qttitle);
if (qtcode.length == 0) {
$('.qs-temp-code-range').val(qtcode);
}
clearFilter();
goPage();
})
/**
* 一级分类点击
*/
$(thisBox + ' .level1Group a.f-item').not('.f-none').on('click', function() {
$(thisBox + ' .level1Group a.f-item').removeClass('active');
if (thisLink) {
$(thisBox + ' .level1Link a.f-item').removeClass('active');
}
$(this).addClass('active');
var thisIndex = getIndex($(this).closest('.level1Group'), thisBox + ' .level1Group');
var clickTempHtml = '';
var thisItemCode = $(this).data('code'); // 获取点击的title
clickTempHtml += '';
if (thisItemCode == 'near') { // 点击的为附近
clickTempHtml += '
';
clickTempHtml += '
不限';
clickTempHtml += '
1公里';
clickTempHtml += '
3公里';
clickTempHtml += '
5公里';
clickTempHtml += '
10公里';
clickTempHtml += '
';
} else {
var tempLevel2Str = datasource[thisItemCode];
if (tempLevel2Str) {
var tempLevel2Array = tempLevel2Str.split('`');
if (tempLevel2Array) {
clickTempHtml += '
';
$.each(tempLevel2Array, function(key, value) {
if (value.split(',')) {
if (value.split(',')[0]) {
clickTempHtml += '
' + value.split(',')[1] + '';
}
}
})
clickTempHtml += '
';
}
}
}
clickTempHtml += '
';
if ($(thisBox + ' .f-box-inner').length > 1) {
$(thisBox + ' .f-box-inner').eq(1).remove();
}
$(thisBox).append(clickTempHtml);
/**
* 二级分类点击
*/
$(thisBox + ' .level2Group a.f-item').on('click', function() {
if ($(this).hasClass('select')) { // 先判断是否是选中状态
$(this).removeClass('select');
if (multiple) { // 多选条件下才同步
copyItem(thisBox, selectedBox);
}
} else {
if (multiple) {
// 判断是否点击的是不限
var allCodeArr = $(this).data('code').split('.');
if (!eval(allCodeArr[2])) {
$(this).parents('.level3Group').find('.f-item').removeClass('select');
} else {
$(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
}
if (overFlow(thisBox, maxNum)) {
$(this).addClass('select');
$(this).parents('.level3Group').prev().find('.f-item').addClass('select');
var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
copyItem(thisBox, selectedBox);
} else {
qsToast({context: '最多可选' + maxNum + '个'});
}
} else {
$(thisBox + ' .f-item').removeClass('select');
$(this).addClass('select');
$(thisBox + ' .level1Group .f-item.active').addClass('select');
var qtcode = $(this).data('code');
var qttitle = $(this).data('title');
$('.qs-temp-txt-' + thistype).text(qttitle);
$('.qs-temp-code-' + thistype).val(qtcode);
if (thisLink) {
if ($(this).hasClass('f-range')) {// 附近
$('.qs-temp-code-range').val(qtcode);
$('.qs-temp-code-' + thistype).val('');
}
clearFilter();
goPage();
} else {
$('.js-actionsheet').removeClass('qs-actionsheet-toggle');
$(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
//$('.qs-mask').fadeOut(200);
}
}
}
})
})
}
} else { // 不是分站以及分站下除搜索页面之外的
if (database) {
var tempHtml = '';
if (thisLink) {
tempHtml += '
';
tempHtml += '
不限';
tempHtml += '
';
if (that.data('range')) {
tempHtml += '
';
tempHtml += '
附近';
tempHtml += '
';
}
}
$.each(database, function(key, value) {
if (value.split(',')) {
tempHtml += '
';
}
})
tempHtml += '
';
tempHtml += '';
if (thisLink) { // 判断是否是筛选
if (that.data('range')) { // 是否开启附近地区
tempHtml += '
';
tempHtml += '
不限';
tempHtml += '
1公里';
tempHtml += '
3公里';
tempHtml += '
5公里';
tempHtml += '
10公里';
tempHtml += '
';
}
}
for (var i = 0; i < database.length; i++) {
if (database[i].split(',')) {
var tempLevel2Str = datasource[database[i].split(',')[0]];
if (tempLevel2Str) {
var tempLevel2Array = tempLevel2Str.split('`');
if (tempLevel2Array) {
tempHtml += '
';
if (!(tempLevel > 2) && !addJob) {
tempHtml += '
不限';
}
$.each(tempLevel2Array, function(key, value) {
if (value.split(',')) {
if (value.split(',')[0]) {
if (datasource[value.split(',')[0]]) {
if (tempLevel > 2) { // 判断二三级分类
var tempLevel3Str = datasource[value.split(',')[0]];
if (tempLevel3Str) {
var tempLevel3Array = tempLevel3Str.split('`');
if (tempLevel3Array) {
tempHtml += '
' + value.split(',')[1] + '';
tempHtml += '
';
}
}
} else {
tempHtml += '
' + value.split(',')[1] + '';
}
} else {
if (tempLevel > 2 && addJob) { // 三级分类下无最后一级分类
tempHtml += '
' + value.split(',')[1] + '';
tempHtml += '
';
tempHtml += '
无子分类!';
tempHtml += '
';
} else {
tempHtml += '
' + value.split(',')[1] + '';
}
}
}
}
})
tempHtml += '
';
}
} else {
tempHtml += '
';
if (tempLevel > 2) {
tempHtml += '
无子分类!';
} else {
if (addJob) {
tempHtml += '
无子分类!';
} else {
tempHtml += '
不限';
}
}
tempHtml += '
';
}
}
}
tempHtml += '
';
$(thisBox).html(tempHtml);
var rvalue = $('.qs-temp-code-' + thistype).val();
if (rvalue.length) { // 恢复选中
var rvalueArr = rvalue.split(',');
var itemArr = $(thisBox + ' .level2Group a.f-item').not('.c-next');
$.each(rvalueArr, function (key, value) {
$.each(itemArr, function () {
if ($(this).data('code') == value) {
$(this).addClass('select');
$(this).parents('.level3Group').prev().find('.f-item').addClass('active select');
$(this).parents('.level3Group').removeClass(hideClass);
$(this).parents('.level2Group').removeClass(hideClass);
var tindex = getIndex($(this).parents('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(tindex).find('.f-item').addClass('select');
}
})
})
var firstSelectedItem = $(thisBox + ' .level2Group a.select').not('.c-next').eq(0);
firstSelectedItem.parents('.level3Group').prev().find('.f-item').addClass('active select');
firstSelectedItem.parents('.level3Group').removeClass(hideClass);
firstSelectedItem.parents('.level2Group').removeClass(hideClass);
var rindex = getIndex(firstSelectedItem.parents('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(rindex).find('.f-item').addClass('select');
if (multiple) {
copyItem(thisBox, selectedBox);
}
// 三级地区取消不限,不限旧数据恢复
var cityvalue = $('.qs-temp-code-city.jobcity').val();
if(cityvalue){
var isDistrictLimit = cityvalue.split(".").length==3&&cityvalue.split(".")[2]==0;
if(isDistrictLimit){
var itemArrG2 = $(thisBox+' .level2Group a.f-item.c-next');
$.each(itemArrG2, function () {
if ($(this).data('code') == cityvalue ) {
$(this).addClass('active');
$(this).parents('.level2Group').removeClass("qs-hidden");
$(this).parent().next(".level3Group").removeClass("qs-hidden");
var tindex = getIndex($(this).parents('.level2Group'), thisBox+' .level2Group');
$( thisBox + ' .level1Group').eq(tindex).find('.f-item').addClass('select');
}
})
}
}
} else {
if (thisLink) {// 判断是否是筛选
var rangeValue = $('.qs-temp-code-range').val();
if (rangeValue.length) {
$(thisBox + ' .level1Group').eq(0).find('.f-item').addClass('select');
$(thisBox + ' .level2Group').eq(0).removeClass(hideClass);
var recoverRangeItemArr = $(thisBox + ' .level2Group').eq(0).find('.f-item');
$.each(recoverRangeItemArr, function () {
if ($(this).data('code') == rangeValue) {
$(this).addClass('select');
}
})
} else {
$(thisBox + ' .level1Link .f-item').eq(0).addClass('active');
}
} else {
// $(thisBox + ' .level1Group .f-item').eq(0).addClass('active');
$(thisBox + ' .level2Group').eq(0).removeClass(hideClass); // 不恢复默认二级分类的第一个显示出来
}
// 恢复默认地区
if(default_district && that.data("base")=="QS_city_parent"&&that.data("level")==3){
if(default_district.split('.').length==2){
default_district = default_district+".0";
}
var district_itemArr = $(thisBox + ' .level2Group a.f-item.c-next');
$(thisBox + ' .level2Group').addClass(hideClass)
$.each(district_itemArr, function () {
if ($(this).data('code') == default_district) {
$(this).addClass('active select');
$(this).parent().next().removeClass(hideClass);
$(this).parents('.level2Group').removeClass(hideClass);
var tindex = getIndex($(this).parents('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(tindex).find('.f-item').addClass('select');
}
})
}
}
/**
* 确定
*/
$('#qs-temp-confirm-' + thistype).on('click', function () {
var selectedArr = $(selectedBox + ' .s-list-cell');
var codeArr = new Array();
var titleArr = new Array();
$.each(selectedArr, function (key, value) {
var code = $(this).data('code');
var title = $(this).data('title');
codeArr.push(code);
titleArr.push(title);
})
$('.qs-temp-code-' + thistype).val(codeArr.join(','));
var htxt = '';
titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
$('.qs-temp-txt-' + thistype).text(htxt);
});
/**
* 筛选点击不限
*/
$(thisBox + ' .level1Link a.f-none').on('click', function () {
var qtcode = $(this).data('code');
var qttitle = $(this).data('title');
$('.qs-temp-code-' + thistype).val(qtcode);
$('.qs-temp-txt-' + thistype).text(qttitle);
$('.qs-temp-code-range').val(qtcode);
clearFilter();
goPage();
})
/**
* 一级分类点击
*/
$(thisBox + ' .level1Group a.f-item').not('.f-none').on('click', function() {
$(thisBox + ' .level1Group a.f-item').removeClass('active');
if (thisLink) {
$(thisBox + ' .level1Link a.f-item').removeClass('active');
}
$(this).addClass('active');
var thisIndex = getIndex($(this).closest('.level1Group'), thisBox + ' .level1Group');
$(thisBox + ' .level2Group').addClass(hideClass);
$(thisBox + ' .level2Group').eq(thisIndex).removeClass(hideClass);
})
/**
* 二三级分类点击
*/
$(thisBox + ' .level2Group a.f-item').on('click', function() {
if ($(this).hasClass('c-next')) { // 如果是二级分类
if ($(this).hasClass('active')) { // 是否是展开状态
$(this).closest('li').next().addClass(hideClass);
$(this).removeClass('active');
} else {
$('.level2Group').find('a.c-next').removeClass('active');
$(this).addClass('active');
$(thisBox + ' .level3Group').addClass(hideClass);
$(this).parents('li').next().removeClass(hideClass);
}
} else { // 三级分类
if ($(this).hasClass('select')) { // 先判断是否是选中状态
$(this).removeClass('select');
if (!$(this).parents('.level3Group').find('.select').length) {
$(this).parents('.level3Group').prev().find('.f-item').removeClass('select');
if (!$(this).closest('.level2Group').find('.select').length) {
var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').removeClass('select');
}
}
if (multiple) { // 多选条件下才同步
copyItem(thisBox, selectedBox);
}
} else {
if (multiple) {
// 判断是否点击的是不限
var allCodeArr = $(this).data('code').split('.');
if (!eval(allCodeArr[2])) {
$(this).parents('.level3Group').find('.f-item').removeClass('select');
} else {
$(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
}
if (overFlow(thisBox, maxNum)) {
$(this).addClass('select');
$(this).parents('.level3Group').prev().find('.f-item').addClass('select');
var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
copyItem(thisBox, selectedBox);
} else {
qsToast({context: '最多可选' + maxNum + '个'});
}
} else {
$(thisBox + ' .f-item').removeClass('select');
$(this).addClass('select');
$(this).parents('.level3Group').prev().find('.f-item').addClass('select');
$(thisBox + ' .level1Group .f-item.active').addClass('select');
var qtcode = $(this).data('code');
var qttitle = $(this).data('title');
$('.qs-temp-txt-' + thistype).text(qttitle);
$('.qs-temp-code-' + thistype).val(qtcode);
if(getPoint){
var secTxt = $(this).parents('.level3Group').prev().find('.f-item').text();
if(secTxt){
searchByStationName(secTxt+qttitle);
}else{
searchByStationName(qttitle);
}
}
if (thisLink) {
if ($(this).hasClass('f-range')) {// 附近
$('.qs-temp-code-range').val(qtcode);
$('.qs-temp-code-' + thistype).val('');
}
clearFilter();
goPage();
} else {
$('.js-actionsheet').removeClass('qs-actionsheet-toggle');
$(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
//$('.qs-mask').fadeOut(200);
}
}
}
}
})
}
}
/**
* 清除筛选
*/
function clearFilter() {
$('body').removeClass('filter-fixed');
$(thisBox).addClass(hideClass);
$('#f-mask').hide();
$('.qs-temp').removeClass('active');
}
})
/**
* 同步
* @param container 当前容器
* @param selectedContainer 显示选中的容器
*/
function copyItem(container, selectedContainer) {
var selectedArr = $(container + ' .level2Group a.select').not('.c-next');
var selectedHtml = '';
if (selectedArr.length) {
$.each(selectedArr, function(key, value) {
var code = $(this).data('code');
var title = $(this).data('title');
selectedHtml += '' + title + '
';
})
$(selectedContainer + ' .s-list').html(selectedHtml);
$(selectedContainer + ' .s-list').removeClass(hideClass);
} else {
$(selectedContainer + ' .s-list').html(selectedHtml);
$(selectedContainer + ' .s-list').addClass(hideClass);
return false;
}
// 已选列表点击
$(selectedContainer + ' .s-list-cell').on('click', function () {
var code = $(this).data('code');
$.each(selectedArr, function () {
var concode = $(this).data('code');
if (concode == code) {
$(this).removeClass('select');
if (!$(this).parents('.level3Group').find('.select').length) {
$(this).parents('.level3Group').prev().find('.f-item').removeClass('select');
if (!$(this).closest('.level2Group').find('.select').length) {
var levelIndex = getIndex($(this).closest('.level2Group'), container + ' .level2Group');
$(container + ' .level1Group').eq(levelIndex).find('.f-item').removeClass('select');
}
}
}
})
copyItem(container, selectedContainer);
})
}
/**
* 获取当前对象的下标
* @param obj 当前对象
* @param container 当前容器
* @returns {*|jQuery} 下标
*/
function getIndex(obj, container) {
return $(container).index(obj);
}
/**
* 选中项目的数量是否超出最大限制
* @param container 当前容器
* @param num 最大数量
* @returns {boolean} 是否可以继续选择
*/
function overFlow(container, num) {
return $(container + ' .level2Group a.select').not('.c-next').length >= num ? false : true;
}
/**
* 只有一级分类
*/
var tempLevel1Arr = $('.qs-temp-level1');
$.each(tempLevel1Arr, function () {
var thistype = $(this).data('type');
var database = eval($(this).data('base'));
var multiple = eval($(this).data('multiple')); // 多选单选
var maxNum =$(this).data('num');
var thisBox = '.f-box-' + thistype;
var selectedBox = '.f-selected-group-' + thistype;
var thisLink = eval($(this).data('link'));
if (database) {
var tempHtml = '';
$(thisBox).html(tempHtml);
/**
* 恢复选中
*/
var rvalue = $('.qs-temp-code-' + thistype).val();
if (rvalue.length) {
var rvalueArr = rvalue.split(',');
var itemArr = $(thisBox + ' .f-item-only');
$.each(rvalueArr, function (key, value) {
$.each(itemArr, function () {
if ($(this).data('code') == value) {
$(this).addClass('select');
}
})
})
if (multiple) {
copyItemOnly(thisBox, selectedBox);
}
}
/**
* 分类点击
*/
$(thisBox + ' .f-item-only').on('click', function () {
if ($(this).hasClass('select')) {
$(this).removeClass('select');
if (multiple) { // 多选条件下才同步
copyItemOnly(thisBox, selectedBox);
}
} else {
if (multiple) {
if (overFlowOnly(thisBox, maxNum)) {
$(this).addClass('select');
copyItemOnly(thisBox, selectedBox);
} else {
qsToast({context: '最多可选' + maxNum + '个'});
}
} else {
$(thisBox + ' .f-item-only').removeClass('select');
$(this).addClass('select');
var qtcode = $(this).data('code');
var qttitle = $(this).data('title');
$('.qs-temp-code-' + thistype).val(qtcode);
$('.qs-temp-txt-' + thistype).text(qttitle);
$('.js-actionsheet').removeClass('qs-actionsheet-toggle');
$(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
//$('.qs-mask').fadeOut(200);
}
}
})
/**
* 确定
*/
$('#qs-temp-confirm-' + thistype).on('click', function () {
var selectedArr = $(selectedBox + ' .s-list-cell');
var codeArr = new Array();
var titleArr = new Array();
$.each(selectedArr, function (key, value) {
var code = $(this).data('code');
var title = $(this).data('title');
codeArr.push(code);
titleArr.push(title);
})
$('.qs-temp-code-' + thistype).val(codeArr.join(','));
var htxt = '';
titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
$('.qs-temp-txt-' + thistype).text(htxt);
});
}
})
/**
* 红包多选
*/
var tempLevelAlwArr = $('.qs-temp-level-alw');
$.each(tempLevelAlwArr, function () {
var thistype = $(this).data('type');
var database = eval($(this).data('base'));
var multiple = eval($(this).data('multiple')); // 多选单选
var maxNum =$(this).data('num');
var thisBox = '.f-box-' + thistype;
var selectedBox = '.f-selected-group-' + thistype;
var thisLink = eval($(this).data('link'));
if (database) {
var tempHtml = '';
tempHtml += '
不限';
$.each(database, function(key, value) {
if (value.split(',')) {
tempHtml += '
' + value.split(',')[1] + '';
}
})
tempHtml += '
';
$(thisBox).html(tempHtml);
/**
* 恢复选中
*/
var rvalue = $('.qs-temp-code-' + thistype).val();
if (rvalue.length) {
var rvalueArr = rvalue.split(',');
var itemArr = $(thisBox + ' .f-item-only');
$.each(rvalueArr, function (key, value) {
$.each(itemArr, function () {
if ($(this).data('code') == value) {
$(this).addClass('select');
}
})
})
if (multiple) {
copyItemOnly(thisBox, selectedBox);
}
}
/**
* 分类点击
*/
$(thisBox + ' .f-item-only').on('click', function () {
var thisCode = $(this).data('code');
if ($(this).hasClass('select')) {
$(this).removeClass('select');
$(thisBox + ' .only-nm').removeClass('select');
if (!eval(thisCode)) {
// 不限
$(thisBox + ' .f-item-only').each(function(index, el) {
if (index) {
$(this).removeClass('select');
}
})
}
if (multiple) { // 多选条件下才同步
copyItemOnly(thisBox, selectedBox);
}
} else {
if (multiple) {
if (overFlowOnly(thisBox, maxNum)) {
$(this).addClass('select');
if (!eval(thisCode)) {
// 不限
$(thisBox + ' .f-item-only').each(function(index, el) {
if (index) {
$(this).addClass('select');
}
})
}
var othersArray = $(thisBox + ' .f-item-only');
var thisIndex = $(thisBox + ' .f-item-only').index($(this));
var checkedNum = $(thisBox + ' .f-item-only.select').length;
if (checkedNum <= 1) {
$.each(othersArray, function (index, value) {
if (index > thisIndex) {
$(this).addClass('select');
}
})
}
copyItemOnly(thisBox, selectedBox);
} else {
qsToast({context: '最多可选' + maxNum + '个'});
}
} else {
$(thisBox + ' .f-item-only').removeClass('select');
$(this).addClass('select');
var qtcode = $(this).data('code');
var qttitle = $(this).data('title');
$('.qs-temp-code-' + thistype).val(qtcode);
$('.qs-temp-txt-' + thistype).text(qttitle);
$('.js-actionsheet').removeClass('qs-actionsheet-toggle');
$(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
//$('.qs-mask').fadeOut(200);
}
}
})
/**
* 确定
*/
$('#qs-temp-confirm-' + thistype).on('click', function () {
var selectedArr = $(selectedBox + ' .s-list-cell');
var codeArr = new Array();
var titleArr = new Array();
$.each(selectedArr, function (key, value) {
var code = $(this).data('code');
var title = $(this).data('title');
codeArr.push(code);
titleArr.push(title);
})
$('.qs-temp-code-' + thistype).val(codeArr.join(','));
var htxt = '';
titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
$('.qs-temp-txt-' + thistype).text(htxt);
});
}
})
/**
* 选中项目的数量是否超出最大限制
* @param container 当前容器
* @param num 最大数量
* @returns {boolean} 是否可以继续选择
*/
function overFlowOnly(container, num) {
return $(container + ' .f-item-only.select').length >= num ? false : true;
}
/**
* 同步
* @param container 当前容器
* @param selectedContainer 显示选中的容器
*/
function copyItemOnly(container, selectedContainer) {
var selectedArr = $(container + ' .f-item-only.select');
var selectedHtml = '';
if (selectedArr.length) {
$.each(selectedArr, function(key, value) {
if (!$(this).hasClass('only-nm')) {
var code = $(this).data('code');
var title = $(this).data('title');
selectedHtml += '' + title + '
';
}
})
$(selectedContainer + ' .s-list').html(selectedHtml);
$(selectedContainer + ' .s-list').removeClass(hideClass);
} else {
$(selectedContainer + ' .s-list').html(selectedHtml);
$(selectedContainer + ' .s-list').addClass(hideClass);
return false;
}
// 已选列表点击
$(selectedContainer + ' .s-list-cell').on('click', function () {
var code = $(this).data('code');
$.each(selectedArr, function () {
var concode = $(this).data('code');
if (concode == code) {
$(this).removeClass('select');
}
})
copyItemOnly(container, selectedContainer);
})
}
/**
* 专业分类
*/
var tempLevelmajorArr = $('.qs-temp-level-major');
$.each(tempLevelmajorArr, function() {
var thistype = $(this).data('type');
var database = eval($(this).data('base'));
var datasource = eval($(this).data('source'));
var multiple = eval($(this).data('multiple')); // 多选单选
var maxNum =$(this).data('num');
var thisBox = '.f-box-' + thistype;
var selectedBox = '.f-selected-group-' + thistype;
var thisLink = eval($(this).data('link'));
if (database) {
var tempHtml = '';
$.each(database, function(key, value) {
if (value.split(',')) {
tempHtml += '
';
}
})
tempHtml += '
';
tempHtml += '';
for (var i = 0; i < database.length; i++) {
if (database[i].split(',')) {
var tempLevel2Str = datasource[database[i].split(',')[0]];
if (tempLevel2Str) {
var tempLevel2Array = tempLevel2Str.split('`');
if (tempLevel2Array) {
tempHtml += '
';
$.each(tempLevel2Array, function(key, value) {
if (value.split(',')) {
if (value.split(',')[0]) {
tempHtml += '
' + value.split(',')[1] + '';
}
}
})
tempHtml += '
';
}
}
}
}
tempHtml += '
';
$(thisBox).html(tempHtml);
var rvalue = $('.qs-temp-code-' + thistype).val();
if (rvalue.length) { // 恢复选中
var rvalueArr = rvalue.split(',');
var itemArr = $(thisBox + ' .level2Group a.f-item').not('.c-next');
$.each(rvalueArr, function (key, value) {
$.each(itemArr, function () {
if ($(this).data('code') == value) {
$(this).addClass('select');
$(this).parents('.level2Group').removeClass(hideClass);
var tindex = getIndex($(this).parents('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(tindex).find('.f-item').addClass('select');
}
})
})
var firstSelectedItem = $(thisBox + ' .level2Group a.select').not('.c-next').eq(0);
firstSelectedItem.parents('.level2Group').removeClass(hideClass);
var rindex = getIndex(firstSelectedItem.parents('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(rindex).find('.f-item').addClass('select');
if (multiple) {
copyItem(thisBox, selectedBox);
}
} else {
$(thisBox + ' .level1Group .f-item').eq(0).addClass('active');
$(thisBox + ' .level2Group').eq(0).removeClass(hideClass); // 不恢复默认二级分类的第一个显示出来
}
/**
* 确定
*/
$('#qs-temp-confirm-' + thistype).on('click', function () {
var selectedArr = $(selectedBox + ' .s-list-cell');
var codeArr = new Array();
var titleArr = new Array();
$.each(selectedArr, function (key, value) {
var code = $(this).data('code');
var title = $(this).data('title');
codeArr.push(code);
titleArr.push(title);
})
$('.qs-temp-code-' + thistype).val(codeArr.join(','));
var htxt = '';
titleArr.length ? htxt = titleArr.join(',') : htxt = $('.qs-temp-txt-' + thistype).data('otxt');
$('.qs-temp-txt-' + thistype).text(htxt);
});
/**
* 一级分类点击
*/
$(thisBox + ' .level1Group a.f-item').not('.f-none').on('click', function() {
$(thisBox + ' .level1Group a.f-item').removeClass('active');
$(this).addClass('active');
var thisIndex = getIndex($(this).closest('.level1Group'), thisBox + ' .level1Group');
$(thisBox + ' .level2Group').addClass(hideClass);
$(thisBox + ' .level2Group').eq(thisIndex).removeClass(hideClass);
})
/**
* 二三级分类点击
*/
$(thisBox + ' .level2Group a.f-item').on('click', function() {
if ($(this).hasClass('c-next')) { // 如果是二级分类
if ($(this).hasClass('active')) { // 是否是展开状态
$(this).closest('li').next().addClass(hideClass);
$(this).removeClass('active');
} else {
$(this).closest('.level2Group').find('a.c-next').removeClass('active');
$(this).addClass('active');
$(thisBox + ' .level3Group').addClass(hideClass);
$(this).parents('li').next().removeClass(hideClass);
}
} else { // 三级分类
if ($(this).hasClass('select')) { // 先判断是否是选中状态
$(this).removeClass('select');
if (!$(this).parents('.level3Group').find('.select').length) {
$(this).parents('.level3Group').prev().find('.f-item').removeClass('select');
if (!$(this).closest('.level2Group').find('.select').length) {
var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').removeClass('select');
}
}
if (multiple) { // 多选条件下才同步
copyItem(thisBox, selectedBox);
}
} else {
if (multiple) {
// 判断是否点击的是不限
var allCodeArr = $(this).data('code').split('.');
if (!eval(allCodeArr[2])) {
$(this).parents('.level3Group').find('.f-item').removeClass('select');
} else {
$(this).parents('.level3Group').find('.f-item').eq(0).removeClass('select');
}
if (overFlow(thisBox, maxNum)) {
$(this).addClass('select');
$(this).parents('.level3Group').prev().find('.f-item').addClass('select');
var levelIndex = getIndex($(this).closest('.level2Group'), thisBox + ' .level2Group');
$(thisBox + ' .level1Group').eq(levelIndex).find('.f-item').addClass('select');
copyItem(thisBox, selectedBox);
} else {
qsToast({context: '最多可选' + maxNum + '个'});
}
} else {
$(thisBox + ' .f-item').removeClass('select');
$(this).addClass('select');
$(this).parents('.level3Group').prev().find('.f-item').addClass('select');
$(thisBox + ' .level1Group .f-item.active').addClass('select');
var qtcode = $(this).data('code');
var qttitle = $(this).data('title');
$('.qs-temp-code-' + thistype).val(qtcode);
$('.qs-temp-txt-' + thistype).text(qttitle);
if (thisLink) {
clearFilter();
goPage();
} else {
$('.js-actionsheet').removeClass('qs-actionsheet-toggle');
$(this).closest(".js-actionParent").find(".qs-mask").fadeOut(200);
//$('.qs-mask').fadeOut(200);
}
}
}
}
})
}
/**
* 清除筛选
*/
function clearFilter() {
$('body').removeClass('filter-fixed');
$(thisBox).addClass(hideClass);
$('#f-mask').hide();
$('.qs-temp').removeClass('active');
}
})
});