common.js 4.36 KB
/**
 * 删除提示框
 * text 文本
 * url  删除接口
 * success 删除成功之后的回调
 */
function removeConfirm(text, url, success) {
	layer.confirm(text, {
		btn : [ '确定删除', '取消' ],
		icon : 3,
		skin : 'layui-layer-cfm-delete'
	}, function(){
		layer.msg('正在删除...', {icon: 16});
		
		$post(url, {'_method': 'delete'},function(rs){
			layer.msg('删除成功!'); 
			success && success(rs);
		});
	});
}


function successHandle(json, handle){
	var status = json.status;
	if(status == 407){
		alert('被注销的登录');
		location.reload(true);
		return;
	}
	
	if(!status){
		handle && handle(json);
		return ;
	}
	
	if(status == 'ERROR')
		layer.alert(json.msg?json.msg:'未知异常', {icon: 2, title: '操作失败'});    
	else
		handle && handle(json);
}

function ajaxComplete(xhr, ts, succ){
	if(ts == 'success'){
		successHandle(JSON.parse(xhr.responseText), succ);
	}
	else if(ts == 'error'){
		layer.alert(xhr.responseText, {icon: 2, title: '操作失败'});
	}
}

function $get(url,data, successFun) {
	$.ajax({
		url: url,
		data: data,
		complete: function(xhr, ts){
			ajaxComplete(xhr, ts, successFun);
		}
	});
}

function $post(url,data, successFun) {
	$.ajax({
		url: url,
		method: 'POST',
		data: data,
		complete: function(xhr, ts){
			ajaxComplete(xhr, ts, successFun);
		}
	});
}

//将数据写入表单
function putFormData(json, fId){
	json.enable = json.enable==true? 1 : 0;
	for(var att in json){
		var f = 'name=' +att
			,elem = $('input['+f+'],select['+f+'],textarea['+f+']', fId);
		if(elem.length > 0){
			if(elem.attr('type') == 'checkbox')
				elem[0].checked = json[att];
			else if(elem.attr('type') == 'radio') {
				if(json[att])
					$('input['+f+']', fId).get(0).checked = true;
				else
					$('input['+f+']', fId).get(1).checked = true;
			}
			else
				elem.val(json[att]).change();
		}
	}
}

/**
 * 支持拼音搜索的select2
 * @param selector
 * @param data
 */
function initPinYinSelect2(selector, data, cb){
	
	$.each(data, function(){
		this.fullChars = pinyin.getFullChars(this.text).toUpperCase();
		this.camelChars = pinyin.getCamelChars(this.text);
	});
	
	$.fn.select2.amd.require(['select2/compat/matcher'], function (oldMatcher) {
		$(selector).select2({
			data: data,
		    matcher: oldMatcher(function(term, text, item){
		    	var upTerm = term.toUpperCase();
				if(item.fullChars.indexOf(upTerm) != -1
						|| item.camelChars.indexOf(upTerm) != -1)
					return true;
				
				return text.indexOf(term) != -1;
		    })
		});
		
		cb && cb($(selector));
	});
	
	return $(selector);
}

/**
 * 将模块List 转换为树结构
 * @param arr
 * @returns {Array}
 */
function createTreeData(arr){
	var treeData = [];
	var len = arr.length;
	for(var i = 0; i < len; i ++){
		var pId = arr[i].pId;
		arr[i].text = arr[i].name;
		if(!pId){
			treeData.push(arr[i]);
		}
			
		for(var j = 0; j < len; j ++){
			if(pId == arr[j].id){
				if(!arr[j].children)
					arr[j].children = [];
				arr[j].children.push(arr[i]);
				break;
			}
		}
	}
	return treeData;
}


function createVehSearch($e){
	//车辆内部编码下拉搜索框
	$e.select2({
		placeholder: '搜索车辆...',
		ajax: {
			url: '/realSchedule/sreachVehic',
			dataType: 'json',
			delay: 150,
			data: function(params){
				return{nbbm: params.term};
			},
		    processResults: function (data) {
		      return {
		        results: data
		      };
		    },
			cache: true
		},
		templateResult: function(repo){
			if (repo.loading) return repo.text;
			var h = '<span>'+repo.text+'</span>';
			h += (repo.lineName?'&nbsp;<span class="select2-desc">'+repo.lineName+'</span>':'');
			return h;
		},
		escapeMarkup: function (markup) { return markup; },
		minimumInputLength: 1,
		templateSelection: function(repo){
			return repo.text;
		},
		language: {
	       noResults: function(){
	           return '<span style="color:red;font-size: 12px;">没有搜索到车辆!</span>';
	       },
	       inputTooShort : function(e) {
				return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入自编号搜索车辆</span>';
		   },
	       searching : function() {
				return '<span style="color:gray;font-size: 12px;"> 正在搜索车辆...</span>';
		   }
		}
	})
	return $e;
}