Easyui工具类

/**
 * [alertProgress 操作进度条]
 * 
 * @param {[Object]}
 *            progressObj [使用进度条的对象]
 * @param {Boolean}
 *            isOpen [是否为打开进度条]
 * @param {[String]}
 *            text [显示的文本]
 */
function alertProgress(progressObj, isOpen, text) {
	if (isOpen) {
		progressObj.messager.progress({
			text : text
		});
	} else {
		progressObj.messager.progress('close');
	}
}
/**
 * [loadProgress 数据加载进度条]
 * 
 * @param {[Object]}
 *            progressObj [使用进度条的对象]
 * @param {Boolean}
 *            isOpen [是否为打开进度条]
 */
function loadProgress(progressObj, isOpen) {
	alertProgress(progressObj, isOpen, "数据加载中....");
}
/**
 * [saveProgress 数据保存进度条]
 * 
 * @param {[Object]}
 *            progressObj [使用进度条的对象]
 * @param {Boolean}
 *            isOpen [是否为打开进度条]
 */
function saveProgress(progressObj, isOpen) {
	alertProgress(progressObj, isOpen, "数据处理中....");
}
/**
 * [getArrayIndex 获取值在数组中的位置]
 * 
 * @param {[Array]}
 *            arr [数组]
 * @param {[Object]}
 *            o [要查找的对象]
 * @return {[Number]} [对象所在的下标,没有找到返回-1]
 */
function getArrayIndex(arr, o) {
	for (var i = 0; i < arr.length; i++) {
		if (arr[i] == o) {
			return i;
		}
	}
	return -1;
}

/**
 * [getChecked 获取选中的数据]
 * 
 * @param {[datagrid]}
 *            grid [数据表格对象]
 * @param {[boolean]}
 *            single [是否为单选]
 * @return {[Array]} [选择的数据,如果没有选中或者不符合规则则返回null]
 */
function getChecked(grid, single) {
	var checked = grid.datagrid('getChecked');
	if (checked.length == 0) {
		$.messager.alert("错误", "尚未选择任何数据", "info");
		return null;
	}
	if (single && checked.length > 1) {
		$.messager.alert("错误", "该功能仅支持单笔操作,请勿多选", "info");
		return null;
	}
	return checked;
}
/**
 * [getSelections 获取选中的数据]
 * 
 * @param {[datagrid]}
 *            grid [数据表格对象]
 * @param {[boolean]}
 *            single [是否为单选]
 * @return {[Array]} [选择的数据,如果没有选中或者不符合规则则返回null]
 */
function getSelections(grid, single) {
	var selections = grid.datagrid('getSelections');
	if (selections.length == 0) {
		$.messager.alert("错误", "尚未选择任何数据", "info");
		return null;
	}
	if (single && selections.length > 1) {
		$.messager.alert("错误", "该功能仅支持单笔操作,请勿多选", "info");
		return null;
	}
	return selections;
}
/**
 * [getTreeChecked 获取选择的数据]
 * 
 * @param {[tree]}
 *            tree [树控件对象]
 * @param {[boolean]}
 *            single [是否为单选]
 * @param {[String]}
 *            msg [提示信息]
 * @return {[Array]} [选择的数据,如果没有选中或者不符合规则则返回null]
 */
function getTreeChecked(tree, single, msg) {
	if (msg == undefined) {
		msg = "(树)";
	}
	var selections = tree.tree('getChecked');
	if (selections.length == 0) {
		$.messager.alert("错误", "尚未选择任何数据" + msg, "info");
		return null;
	}
	if (single && selections.length > 1) {
		$.messager.alert("错误", "该功能仅支持单笔操作,请勿多选" + msg, "info");
		return null;
	}
	return selections;
}
/**
 * [getTreeSelected 获取选择的数据]
 * 
 * @param {[tree]}
 *            tree [树控件对象]
 * @param {[String]}
 *            msg [提示信息]
 * @return {[Node]} [选择的数据,如果没有选中则返回null]
 */
function getTreeSelected(tree,msg){
	if (msg == undefined) {
		msg = "(树)";
	}
	var selected = tree.tree('getSelected');
	if (selected == null) {
		$.messager.alert("错误", "尚未选择任何数据" + msg, "info");
	}
	return selected;
}
/**
 * [getTreeSelectionNos 获取选中的tree节点no]
 * 
 * @param {[tree]}
 *            tree [树控件对象]
 * @return {[String]} [节点的nos:no,no,no]
 */
function getTreeSelectionNos(tree) {
	var nodes = tree.tree('getChecked');
	var nos = '';
	if (nodes) {
		for (var i = 0, len = nodes.length; i < len;) {
			var node = nodes[i];
			i++;
			if (i == len) {
				nos += node.id;
			} else {
				nos += node.id + ',';
			}
		}
		;
	}
	;
	return nos;
}
/**
 * [startEditing 批量设置grid选中数据为修改状态]
 * 
 * @return {[type]} [description]
 */
function startEditing(grid,field) {
	var selections = getChecked(grid, false); // 获取到所有选中的行
	if (selections != undefined) {
		for (var i = 0, len = selections.length; i < len; i++) {
			var selection = selections[i];
			var index = grid.datagrid("getRowIndex", selection);
			grid.datagrid("beginEdit", index);
		}
		if(field != undefined){
			var ed = grid.datagrid('getEditor',{index:index,field:field});
			$(ed.target).textbox('textbox').select().focus();
		}
	}
}

/**
 * [endEditing 结束grid所有行编辑状态]
 * 
 * @param {[datagrid]}
 *            grid [数据表格对象]
 * @return {[boolean]} [所有行验证通过则结束所有行编辑状态]
 */
function endEditing(grid) {
	var rows = grid.datagrid('getRows');
	for (var i = 0; i < rows.length; i++) {
		if (grid.datagrid('validateRow', i)) { // 将保存ID与数组内id一一对比判断有无重复
			grid.datagrid('endEdit', i);
		} else {
			return false;
		}
	}
	return true;
}
/**
 * [checkChanges 验证是否有修改的数据]
 * 
 * @param {[datagrid]}
 *            grid [数据表格对象]
 * @param {[boolean]}
 *            endEdit [是否自动结束编辑状态]
 * @return {[type]} [description]
 */
function checkChanges(grid, endEdit) {
	if (endEdit) {
		endEditing(grid);
	}
	var rows = getChanges(grid);
	if (rows.length > 0) {
		alert("有 " + rows.length + " 条已修改数据尚未保存,请保存或撤销后再试");
		return false;
	}
	return true;
}

/**
 * [getChanges 获取修改的数据行数]
 * 
 * @param {[datagrid]}
 *            grid [数据表格对象]
 * @param {[String]}
 *            dataType [数据类型,取值inserted,deleted,updated]
 * @return {[Array]} [匹配的数组]
 */
function getChanges(grid, dataType) {
	if (dataType == undefined) {
		dataType = '';
	}
	var rows = grid.datagrid('getChanges', dataType);
	return rows;
}

/**
 * [reject 撤销grid未提交的修改]
 * 
 * @param {[datagrid]}
 *            grid [数据表格对象]
 */
function reject(grid) {
	grid.datagrid('rejectChanges');
}
/**
 * [getGridRowById 获取grid行通过id]
 * @param  {[datagrid]} grid    [表格对象]
 * @param  {[String]} idField [id]
 * @return {[number]}         [row对应的下标,未找到返回-1]
 */
function getGridRowById(grid,idField){
	if(grid){
		var rows = grid.datagrid('getRows');
		var rowId = grid.datagrid('options').idField;
		for (var i = rows.length - 1; i >= 0; i--) {
			var row = rows[i];
			if(row[rowId]==idField){
				return i;
			}
		};
	}
	return -1;
}
/**
 * [addTooltip 添加提示]
 * @param {[String]} id       [对象id,#id]
 * @param {[String]} value    [显示的提示内容]
 * @param {[String]} position [显示的位置]
 */
function addTooltip(id,value,position){
	if(value==undefined||value.length==0){
		value = '无';
	}
	if(value==undefined||value.length==0){
		position = 'bottom';
	}
	$(id).textbox('textbox').tooltip({
		position: position,
		content: '<span style="color:#fff">'+value+'</span>',
		showDelay: 0,
		hideDelay: 0,
		onShow: function() {
			$(this).tooltip('tip').css({
				backgroundColor: '#666',
				borderColor: '#666'
			});
		}
	});
}
/**
 * [getDataGridNos 获取datagrid或datalist的id值集]
 * @param  {[Dom]} grid [datagrid或datalist对象]
 * @param  {[String]} type [grid的类型,如datagrid,datalist]
 * @param  {[Boolean]} selected [是否仅获取已选中的编号集]
 * @return {[String]}      [返回id,id,id...]
 */
function getDataGridNos(grid,type,selected){
	var result = "";
	if(grid){
		var rows = undefined;
		if(selected){
			rows = grid[type]('getSelections');
		}else{
			rows = grid[type]('getRows');
		}
		var options = grid[type]('options');
		var col = options.dataNoField;
		$.each(rows,function(index,value){
			result+=value[col]+',';
		});
		if(result.length>0){
			result = result.substring(0,result.length-1);
		}
	}
	return result;
}
/**
 * [addEnterEvent 添加回车事件]
 * @param {[String]}   id       [#id]
 * @param {[String]}   type     [easyuiType]
 * @param {Function} callback [回车调用事件]
 */
function addEnterEvent(id,type,callback){
	$(id)[type]('textbox').bind('keydown', function(e) {
		if (e.keyCode==13) {
			var nowTime = new Date().getTime();
		    var clickTime = $(this).attr("ctime");
		    if( clickTime != 'undefined' && (nowTime - clickTime < 1000)){
		        return false;
		    }else{
				if($(e.target).val().length>0){
			    	$(this).attr("ctime",nowTime);
					callback();
				}
		    }
		};
	});
}
/**
 * [addTreeRoot 添加树的root节点]
 * @param {[Array]} data     [树数据]
 * @param {[String]} rootText [root节点名]
 * @return {[Array]} 返回添加root节点后的数据
 */
function addTreeRoot(data,rootText){
	if (data!=undefined) {
		var indexs = getTreeRootIndex(data);
		var root = {
				id: undefined,
				text: rootText,
				checked: false,
				child: [],
				iconCls: "ext-icon-group"
			};
		for (var i = indexs.length - 1; i >= 0; i--) {
			data[indexs[i]].pid = undefined;
		};
		data.unshift(root);
	};
	return data;
}
/**
 * [getTreeRootIndex 获取树所有root节点的index]
 * @param  {[Array]} data [树数据]
 * @return {[Array]}      [所有root节点的index]
 */
function getTreeRootIndex(data){
	var rootIndex = [];
	if (data!=undefined) {
		for (var i = 0; i < data.length; i++) {
			if(isRoot(data[i],data)){
				rootIndex.push(i);
			}
		};
		function isRoot(d,ds){
			if (ds!=undefined&&d!=undefined) {
				for (var i = ds.length - 1; i >= 0; i--) {
					if(d.pid==ds[i].id){
						return false;
					}
				};
				return true;
			};
			return false;
		}
	};
	return rootIndex;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值