EasyUI扩展方法 + jutil.js

来源:互联网 发布:维棠flv优化破解版 编辑:程序博客网 时间:2024/06/06 04:01

EasyUI扩展方法:

 

1、我想指定textarea的行,但editor:{type:'textarea', options: {rows:'4'}}这样写不行。请问大家怎么配置才是指定行的啊?

配置Textarea不可拖动变大变小:

 

只能自己扩展 textarea 才能实现,配置不用修改,直接扩展就行

jQuery.extend(jQuery.fn.datagrid.defaults.editors, {          combotree: {              init: function(container, options){                  var editor = jQuery('<input type="text">').appendTo(container);                  editor.combotree(options);                  return editor;              },              destroy: function(target){                  jQuery(target).combotree('destroy');              },              getValue: function(target){                  var temp = jQuery(target).combotree('getValues');                  //alert(temp);                  return temp.join(',');              },              setValue: function(target, value){                  var temp = value.split(',');                  //alert(temp);                  jQuery(target).combotree('setValues', temp);              },              resize: function(target, width){                  jQuery(target).combotree('resize', width);              }      },    textarea: {        init : function(container, options) {var input = $('<textarea class="datagrid-editable-input" style="resize:none;"></textarea>').appendTo(container);return input;},getValue : function(target) {return $(target).val();},setValue : function(target, value) {$(target).val(value);},resize : function(target, width) {var input = $(target);if ($.boxModel == true) {input.width(width - (input.outerWidth() - input.width()));} else {input.width(width);}}}    });  

 

==========================================================================================

 

扩展jQuery easyui datagrid增加动态改变列编辑的类型  

 

$.extend($.fn.datagrid.methods, {      addEditor : function(jq, param) {          if (param instanceof Array) {              $.each(param, function(index, item) {                  var e = $(jq).datagrid('getColumnOption', item.field);                  e.editor = item.editor;              });          } else {              var e = $(jq).datagrid('getColumnOption', param.field);              e.editor = param.editor;          }      },      removeEditor : function(jq, param) {          if (param instanceof Array) {              $.each(param, function(index, item) {                  var e = $(jq).datagrid('getColumnOption', item);                  e.editor = {};              });          } else {              var e = $(jq).datagrid('getColumnOption', param);              e.editor = {};          }      }  });  

 使用方式:    

为password字段添加一个editor  

  

$("#gridId").datagrid('addEditor', {                          field : 'password',                          editor : {                              type : 'validatebox',                              options : {                                  required : true                              }                          }                      });  

   

 删除password的editor    

$("#gridid").datagrid('removeEditor', 'password');    

注:两个方法,第二个参数都可以传递数组。  

 

 ==========================================================================================

 

Datagrid动态设置列标题的的扩展方法

 在使用datagrid时候有时候需要动态的改变一下某一列的标题。但datagrid并没有提供这一方法,一下是一个扩展的方法可以供大家使用,希望对大家能有所帮助。 

扩展方法如下:

$.extend($.fn.datagrid.methods, {  setColumnTitle: function(jq, option){  if(option.field){return jq.each(function(){  var $panel = $(this).datagrid("getPanel");var $field = $('td[field='+option.field+']',$panel);if($field.length){var $span = $("span",$field).eq(0);$span.html(option.text);}});}return jq;}  });

 

调用方法如下:

$("#dt").datagrid("setColumnTitle",{field:'productid',text:'newTitle});  

 

 ==========================================================================================

其他:

$.extend($.messager.defaults,{    ok:"确定",    cancel:"取消"});  EASYUI TAB:   var ctab = $('#xmlTab').tabs('getTab', 'Response XML').panel('options').tab;      ctab.hide();//隐藏卡片         解决思路:在进入行编辑状态后,获取combobox的编辑器并添加onChange事件,示例代码如下:    var amount = $('#tt').datagrid('getEditor', {index:editLineIndex,field:'amount'}).target;   // 个数    var sum = $('#tt').datagrid('getEditor', {index:editLineIndex,field:'sum'}).target; // 总数    amount.combobox({        onChange:function(id){            sum.val(id*100);    // 假设是text编辑类型        }    }); 

 

 baseui-all.min.js中方法使用:

其中方法如图:

var __YUIToolbarItems = {    getQueryItem: function() {        return {            method: "do_query",            iconCls: "queryAction ope-search",            text: "查询",            enable: true        }    },    getAddItem: function() {        return {            method: "do_add",            iconCls: "addAction ope-add",            text: "新增",            enable: true        }    },    getDelItem: function() {        return {            method: "do_del",            iconCls: "delAction ope-remove",            text: "删除",            enable: true        }    }    ..};

 使用:

$obj.datagrid({url : _root+'/generic/query?__SERVICE_NAME=networkService',idField:'id',queryParams: {networkId: networkId},singleSelect:true,showToolbar:true,        toolbar: [  //正常方法  {method:'do_add',iconCls: 'ope-add',text:'新增'},  //公用快捷方法  __YUIToolbarItems.getAddItem(),  __YUIToolbarItems.getSaveItem() ,    __YUIToolbarItems.getCancelItem()           ],.. 

 方便抽出公用按钮。

 

========================================

jUtil.js:

/** * easyui扩展/常用的方法 *  * @author lk1312 */// 定义全局对象var yxui = $.extend({}, yxui);$.parser.auto = false;$(function() {$.messager.progress({text : '数据加载中....',interval : 100});$.parser.parse(window.document);window.setTimeout(function() {$.messager.progress('close');if (self != parent) {window.setTimeout(function() {try {parent.$.messager.progress('close');} catch (e) {}}, 500);}}, 1);$.parser.auto = true;});$.fn.panel.defaults.loadingMessage = '数据加载中....';$.fn.datagrid.defaults.loadMsg = '数据加载中....';// 获得根路径 rootBasePath rootPathyxui.rootBasePath = function() {var curWwwPath = window.document.location.href;var pathName = window.document.location.pathname;var pos = curWwwPath.indexOf(pathName);var localhostPaht = curWwwPath.substring(0, pos);var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);return (localhostPaht + projectName);};yxui.rootPath = function() {var pathName = window.document.location.pathname;return pathName.substring(0, pathName.substr(1).indexOf('/') + 1);};// 格式化字符串 formatStringyxui.formatString = function(str) {for (var i = 0; i < arguments.length - 1; i++) {str = str.replace("{" + i + "}", arguments[i + 1]);}return str;};// 更换主题 changeThemeyxui.changeTheme = function(themeName) {var $yxuiTheme = $('#yxuiTheme');var url = $yxuiTheme.attr('href');var href = url.substring(0, url.indexOf('themes')) + 'themes/' + themeName + '/easyui.css';$yxuiTheme.attr('href', href);var $iframe = $('iframe');if ($iframe.length > 0) {for (var i = 0; i < $iframe.length; i++) {var ifr = $iframe[i];$(ifr).contents().find('#easyuiTheme').attr('href', href);}}$.cookie('yxuiTheme', themeName, {expires : 7});};// 将form表单元素的值序列化成对象yxui.serializeObject = function(form) {var o = {};$.each(form.serializeArray(), function(index) {if (o[this['name']]) {o[this['name']] = o[this['name']] + "," + this['value'];} else {o[this['name']] = this['value'];}});return o;};// 操作权限控制 operIdyxui.operId = function(_this) {$("#_operId").val($(_this).attr("_operId"));$("#_resOperId").val($(_this).attr("_resOperId"));$("#_resOperKey").val($(_this).attr("_resOperKey"));// console.info("set->" + $("#_operId").val());};// form提交 formSubmityxui.formSubmit = function(_datagrid, _dialog, _form, _url, _callbak) {var _arg = '_menuId=' + $("#_menuId").val() + '&_operId=' + $("#_operId").val() + '&_resOperId=' + $("#_resOperId").val() + '&_resOperKey=' + $("#_resOperKey").val();_url = yxui.refreshUrlLink(_url, _arg);if (_form.form('validate')) {_form.form('submit', {url : _url,success : function(data) {_callbak(data, _datagrid, _dialog, _form, _url);}})}$("#_operId").val('');};// ajax提交 ajaxSubmityxui.ajaxSubmit = function(_datagrid, _dialog, _form, _url, _data, _callbak) {// console.info("ajax get->" + $("#_operId").val());_data._operId = $("#_operId").val();_data._resOperId = $("#_resOperId").val();_data._resOperKey = $("#_resOperKey").val();$.ajax({url : _url,type : 'post',data : _data,dataType : 'json',cache : false,success : function(response) {_callbak(response, _datagrid, _dialog, _form, _url, _data);}});};// refreshUrlLinkyxui.refreshUrlLink = function(_url, _arg) {var index = _url.indexOf('?');var length = _url.length;if (index < 0) {_url = _url + '?' + _arg;} else if (index == length - 1) {_url = _url + _arg;} else {_url = _url.substring(0, index + 1) + _arg + '&' + _url.substring(index + 1, length);}return _url;};// dotoHtmlyxui.dotoHtml = function(tos) {var returnHtml = $('#rowOperation').html();if (null != returnHtml) {var maxArgsNumb = $('#_maxArgsNumb').val();if (maxArgsNumb == 0) {return returnHtml;} else {for (var i = 0; i < maxArgsNumb; i++) {returnHtml = returnHtml.replace(new RegExp("'#arg" + i + "'", "g"), typeof(tos[i]) == 'undefined' ? 'this' : tos[i]);}return returnHtml;}} else {return "";}}// dotoHtmlByIdyxui.dotoHtmlById = function(id, tos) {var returnHtml = $('#' + id).html();if (null != returnHtml) {var maxArgsNumb = tos.length;for (var i = 0; i < maxArgsNumb; i++) {returnHtml = returnHtml.replace(new RegExp("'#arg" + i + "'", "g"), typeof(tos[i]) == 'undefined' ? 'this' : tos[i]);}return returnHtml;} else {return "";}}// dotoDiyHtmlyxui.dotoDiyHtml = function(returnHtml, tos, maxArgsNumb) {if (null != returnHtml) {if (null == maxArgsNumb || maxArgsNumb == 0) {return returnHtml;} else {for (var i = 0; i < maxArgsNumb; i++) {returnHtml = returnHtml.replace(new RegExp("'#arg" + i + "'", "g"), typeof(tos[i]) == 'undefined' ? 'this' : tos[i]);}return returnHtml;}} else {return "";}}// replaceAllyxui.replaceAll = function(_str, _from, _to) {if (null != _str) {return _str.replace(new RegExp(_from, "g"), _to);} else {return "";}}// getRequestArgyxui.getRequestArg = function() {var _url = location.search;var returnObject = {};var index = _url.indexOf("?");if (index != -1) {var str = _url.substr(index + 1);strs = str.split("&");for (var i = 0; i < strs.length; i++) {returnObject[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);}}return returnObject;}// xui.getUrlArgyxui.getUrlArg = function(_url) {var index = _url.indexOf("?");if (index != -1) {var returnObject = {};var str = _url.substr(index + 1);strs = str.split("&");for (var i = 0; i < strs.length; i++) {returnObject[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);}return returnObject;}return null;}function getrequest() {var url = location.search; // 获取url中"?"符后的字串// alert(url.indexOf("?"))var therequest = {};if (url.indexOf("?") != -1) {var str = url.substr(1);// alert(str)strs = str.split("&");for (var i = 0; i < strs.length; i++) {therequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);}}return therequest;}/** * 扩展treegrid diyload treegrid查询功能 */$.extend($.fn.treegrid.methods, {diyload : function(jq, param) {return jq.each(function() {var opts = $(this).treegrid("options");diyRequest(this, param);});}});function diyRequest(jq, param) {var opts = $.data(jq, "treegrid").options;if (param) {opts.queryParams = param;}if (!opts.url) {return;}var param = $.extend({}, opts.queryParams);if (opts.onBeforeLoad.call(jq, param) == false) {return;}setTimeout(function() {doRequest();}, 0);function doRequest() {$.ajax({type : opts.method,url : opts.url,data : param,dataType : "json",success : function(data) {$(jq).treegrid('loadData', data)},error : function() {if (opts.onLoadError) {opts.onLoadError.apply(jq, arguments);}}});}}/** * 扩展tree getCheckedExt 获得选中节点+实心节点 getSolidExt 获取实心节点 */$.extend($.fn.tree.methods, {getCheckedExt : function(jq) {var checked = [];var checkbox2 = $(jq).find("span.tree-checkbox1,span.tree-checkbox2").parent();$.each(checkbox2, function() {var thisData = {target : this,"checked" : true};var node = $.extend({}, $.data(this, "tree-node"), thisData);checked.push(node);});return checked;},getSolidExt : function(jq) {var checked = [];var checkbox2 = $(jq).find("span.tree-checkbox2").parent();$.each(checkbox2, function() {var node = $.extend({}, $.data(this, "tree-node"), {target : this});checked.push(node);});return checked;}});/** * 扩展datagrid,添加动态增加或删除Editor的方法 */$.extend($.fn.datagrid.methods, {addEditor : function(jq, param) {if (param instanceof Array) {$.each(param, function(index, item) {var e = $(jq).datagrid('getColumnOption', item.field);e.editor = item.editor;});} else {var e = $(jq).datagrid('getColumnOption', param.field);e.editor = param.editor;}},removeEditor : function(jq, param) {if (param instanceof Array) {$.each(param, function(index, item) {var e = $(jq).datagrid('getColumnOption', item);e.editor = {};});} else {var e = $(jq).datagrid('getColumnOption', param);e.editor = {};}}});/** * 扩展datagrid editor 增加带复选框的下拉树/增加日期时间组件/增加多选combobox组件 */$.extend($.fn.datagrid.defaults.editors, {combocheckboxtree : {init : function(container, options) {var editor = $('<input />').appendTo(container);options.multiple = true;editor.combotree(options);return editor;},destroy : function(target) {$(target).combotree('destroy');},getValue : function(target) {return $(target).combotree('getValues').join(',');},setValue : function(target, value) {$(target).combotree('setValues', sy.getList(value));},resize : function(target, width) {$(target).combotree('resize', width);}},datetimebox : {init : function(container, options) {var editor = $('<input />').appendTo(container);editor.datetimebox(options);return editor;},destroy : function(target) {$(target).datetimebox('destroy');},getValue : function(target) {return $(target).datetimebox('getValue');},setValue : function(target, value) {$(target).datetimebox('setValue', value);},resize : function(target, width) {$(target).datetimebox('resize', width);}},multiplecombobox : {init : function(container, options) {var editor = $('<input />').appendTo(container);options.multiple = true;editor.combobox(options);return editor;},destroy : function(target) {$(target).combobox('destroy');},getValue : function(target) {return $(target).combobox('getValues').join(',');},setValue : function(target, value) {$(target).combobox('setValues', sy.getList(value));},resize : function(target, width) {$(target).combobox('resize', width);}}});/** * 扩展 datagrid/treegrid 增加表头菜单,用于显示或隐藏列,注意:冻结列不在此菜单中 *  * @param e * @param field */var createGridHeaderContextMenu = function(e, field) {e.preventDefault();var grid = $(this);/* grid本身 */var headerContextMenu = this.headerContextMenu;/* grid上的列头菜单对象 */if (!headerContextMenu) {var tmenu = $('<div style="width:150px;"></div>').appendTo('body');var fields = grid.datagrid('getColumnFields');for (var i = 0; i < fields.length; i++) {var fildOption = grid.datagrid('getColumnOption', fields[i]);if (!fildOption.hidden) {$('<div iconCls="icon-ok" field="' + fields[i] + '"/>').html(fildOption.title).appendTo(tmenu);} else {$('<div iconCls="icon-empty" field="' + fields[i] + '"/>').html(fildOption.title).appendTo(tmenu);}}headerContextMenu = this.headerContextMenu = tmenu.menu({onClick : function(item) {var field = $(item.target).attr('field');if (item.iconCls == 'icon-ok') {grid.datagrid('hideColumn', field);$(this).menu('setIcon', {target : item.target,iconCls : 'icon-empty'});} else {grid.datagrid('showColumn', field);$(this).menu('setIcon', {target : item.target,iconCls : 'icon-ok'});}}});}headerContextMenu.menu('show', {left : e.pageX,top : e.pageY});};$.fn.datagrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu;$.fn.treegrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu;/** * 扩展 用于datagrid/treegrid/tree/combogrid/combobox/form加载数据出错时的操作 *  * @param XMLHttpRequest */var easyuiErrorFunction = function(XMLHttpRequest) {$.messager.progress('close');$.messager.alert('错误', XMLHttpRequest.responseText);};$.fn.datagrid.defaults.onLoadError = easyuiErrorFunction;$.fn.treegrid.defaults.onLoadError = easyuiErrorFunction;$.fn.tree.defaults.onLoadError = easyuiErrorFunction;$.fn.combogrid.defaults.onLoadError = easyuiErrorFunction;$.fn.combobox.defaults.onLoadError = easyuiErrorFunction;$.fn.form.defaults.onLoadError = easyuiErrorFunction;/** * 防止panel/window/dialog组件超出浏览器边界 *  * @param left * @param top */var easyuiPanelOnMove = function(left, top) {var l = left;var t = top;if (l < 1) {l = 1;}if (t < 1) {t = 1;}var width = parseInt($(this).parent().css('width')) + 14;var height = parseInt($(this).parent().css('height')) + 14;var right = l + width;var buttom = t + height;var browserWidth = $(window).width();var browserHeight = $(window).height();if (right > browserWidth) {l = browserWidth - width;}if (buttom > browserHeight) {t = browserHeight - height;}$(this).parent().css({/* 修正面板位置 */left : l,top : t});};$.fn.dialog.defaults.onMove = easyuiPanelOnMove;$.fn.window.defaults.onMove = easyuiPanelOnMove;$.fn.panel.defaults.onMove = easyuiPanelOnMove;/** * 扩展easyui的validator插件rules,支持更多类型验证 */$.extend($.fn.validatebox.defaults.rules, {minLength : { // 判断最小长度validator : function(value, param) {return value.length >= param[0];},message : '最少输入 {0} 个字符'},length : { // 长度validator : function(value, param) {var len = $.trim(value).length;return len >= param[0] && len <= param[1];},message : "输入内容长度必须介于{0}和{1}之间"},phone : {// 验证电话号码validator : function(value) {return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);},message : '格式不正确,请使用下面格式:020-88888888'},mobile : {// 验证手机号码validator : function(value) {return /^(13|15|18)\d{9}$/i.test(value);},message : '手机号码格式不正确'},phoneAndMobile : {// 电话号码或手机号码validator : function(value) {return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value) || /^(13|15|18)\d{9}$/i.test(value);},message : '电话号码或手机号码格式不正确'},idcard : {// 验证身份证validator : function(value) {return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value) || /^\d{18}(\d{2}[A-Za-z0-9])?$/i.test(value);},message : '身份证号码格式不正确'},intOrFloat : {// 验证整数或小数validator : function(value) {return /^\d+(\.\d+)?$/i.test(value);},message : '请输入数字,并确保格式正确'},currency : {// 验证货币validator : function(value) {return /^\d+(\.\d+)?$/i.test(value);},message : '货币格式不正确'},qq : {// 验证QQ,从10000开始validator : function(value) {return /^[1-9]\d{4,9}$/i.test(value);},message : 'QQ号码格式不正确'},integer : {// 验证整数validator : function(value) {return /^[+]?[1-9]+\d*$/i.test(value);},message : '请输入整数'},chinese : {// 验证中文validator : function(value) {return /^[\u0391-\uFFE5]+$/i.test(value);},message : '请输入中文'},chineseAndLength : {// 验证中文及长度validator : function(value) {var len = $.trim(value).length;if (len >= param[0] && len <= param[1]) {return /^[\u0391-\uFFE5]+$/i.test(value);}},message : '请输入中文'},english : {// 验证英语validator : function(value) {return /^[A-Za-z]+$/i.test(value);},message : '请输入英文'},englishAndLength : {// 验证英语及长度validator : function(value, param) {var len = $.trim(value).length;if (len >= param[0] && len <= param[1]) {return /^[A-Za-z]+$/i.test(value);}},message : '请输入英文'},englishUpperCase : {// 验证英语大写validator : function(value) {return /^[A-Z]+$/.test(value);},message : '请输入大写英文'},unnormal : {// 验证是否包含空格和非法字符validator : function(value) {return /.+/i.test(value);},message : '输入值不能为空和包含其他非法字符'},username : {// 验证用户名validator : function(value) {return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(value);},message : '用户名不合法(字母开头,允许6-16字节,允许字母数字下划线)'},faxno : {// 验证传真validator : function(value) {return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value);},message : '传真号码不正确'},zip : {// 验证邮政编码validator : function(value) {return /^[1-9]\d{5}$/i.test(value);},message : '邮政编码格式不正确'},ip : {// 验证IP地址validator : function(value) {return /d+.d+.d+.d+/i.test(value);},message : 'IP地址格式不正确'},name : {// 验证姓名,可以是中文或英文validator : function(value) {return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);},message : '请输入姓名'},engOrChinese : {// 可以是中文或英文validator : function(value) {return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);},message : '请输入中文'},engOrChineseAndLength : {// 可以是中文或英文validator : function(value) {var len = $.trim(value).length;if (len >= param[0] && len <= param[1]) {return /^[\u0391-\uFFE5]+$/i.test(value) | /^\w+[\w\s]+\w+$/i.test(value);}},message : '请输入中文或英文'},carNo : {validator : function(value) {return /^[\u4E00-\u9FA5][\da-zA-Z]{6}$/.test(value);},message : '车牌号码无效(例:粤B12350)'},carenergin : {validator : function(value) {return /^[a-zA-Z0-9]{16}$/.test(value);},message : '发动机型号无效(例:FG6H012345654584)'},same : {validator : function(value, param) {if ($("#" + param[0]).val() != "" && value != "") {return $("#" + param[0]).val() == value;} else {return true;}},message : '两次输入的密码不一致!'}});/** * 扩展easyui validatebox的两个方法.移除验证和还原验证 */$.extend($.fn.validatebox.methods, {remove : function(jq, newposition) {return jq.each(function() {$(this).removeClass("validatebox-text validatebox-invalid").unbind('focus.validatebox').unbind('blur.validatebox');// remove tip// $(this).validatebox('hideTip', this);});},reduce : function(jq, newposition) {return jq.each(function() {var opt = $(this).data().validatebox.options;$(this).addClass("validatebox-text").validatebox(opt);// $(this).validatebox('validateTip', this);});},validateTip : function(jq) {jq = jq[0];var opts = $.data(jq, "validatebox").options;var tip = $.data(jq, "validatebox").tip;var box = $(jq);var value = box.val();function setTipMessage(msg) {$.data(jq, "validatebox").message = msg;};var disabled = box.attr("disabled");if (disabled == true || disabled == "true") {return true;}if (opts.required) {if (value == "") {box.addClass("validatebox-invalid");setTipMessage(opts.missingMessage);$(jq).validatebox('showTip', jq);return false;}}if (opts.validType) {var result = /([a-zA-Z_]+)(.*)/.exec(opts.validType);var rule = opts.rules[result[1]];if (value && rule) {var param = eval(result[2]);if (!rule["validator"](value, param)) {box.addClass("validatebox-invalid");var message = rule["message"];if (param) {for (var i = 0; i < param.length; i++) {message = message.replace(new RegExp("\\{" + i + "\\}", "g"), param[i]);}}setTipMessage(opts.invalidMessage || message);$(jq).validatebox('showTip', jq);return false;}}}box.removeClass("validatebox-invalid");$(jq).validatebox('hideTip', jq);return true;},showTip : function(jq) {jq = jq[0];var box = $(jq);var msg = $.data(jq, "validatebox").messagevar tip = $.data(jq, "validatebox").tip;if (!tip) {tip = $("<div class=\"validatebox-tip\">" + "<span class=\"validatebox-tip-content\">" + "</span>" + "<span class=\"validatebox-tip-pointer\">" + "</span>" + "</div>").appendTo("body");$.data(jq, "validatebox").tip = tip;}tip.find(".validatebox-tip-content").html(msg);tip.css({display : "block",left : box.offset().left + box.outerWidth(),top : box.offset().top});},hideTip : function(jq) {jq = jq[0];var tip = $.data(jq, "validatebox").tip;if (tip) {tip.remove;$.data(jq, "validatebox").tip = null;}}});/** * 对easyui dialog 封装 */yxui.dialog = function(options) {var opts = $.extend({modal : true,onClose : function() {$(this).dialog('destroy');}}, options);return $('<div/>').dialog(opts);};/** * 相同连续列合并扩展 */$.extend($.fn.datagrid.methods, {autoMergeCells : function(jq, fields) {return jq.each(function() {var target = $(this);if (!fields) {fields = target.datagrid("getColumnFields");}var rows = target.datagrid("getRows");var i = 0, j = 0, temp = {};for (i; i < rows.length; i++) {var row = rows[i];j = 0;for (j; j < fields.length; j++) {var field = fields[j];var tf = temp[field];if (!tf) {tf = temp[field] = {};tf[row[field]] = [i];} else {var tfv = tf[row[field]];if (tfv) {tfv.push(i);} else {tfv = tf[row[field]] = [i];}}}}$.each(temp, function(field, colunm) {$.each(colunm, function() {var group = this;if (group.length > 1) {var before, after, megerIndex = group[0];for (var i = 0; i < group.length; i++) {before = group[i];after = group[i + 1];if (after && (after - before) == 1) {continue;}var rowspan = before - megerIndex + 1;if (rowspan > 1) {target.datagrid('mergeCells', {index : megerIndex,field : field,rowspan : rowspan});}if (after && (after - before) != 1) {megerIndex = after;}}}});});});}});/** * 左到右 */yxui.left2right = function(but) {var $layout = $($(but).parents('.easyui-layout')[0]);var left = $layout.find('select')[0];var rigth = $layout.find('select')[1];if ($.browser.msie) {// IE 单独处理for (var i = 0; i < left.options.length; i++) {var option = left.options[i];if (option.selected) {var opt = new Option(option.text, option.value);rigth.options.add(opt);left.remove(i);}}} else {$(left.options).each(function(i, n) {if (n.selected) {n.selected = false;rigth.options.add(n);}});}};/** * 右到左 */yxui.right2left = function(but) {var $layout = $($(but).parents('.easyui-layout')[0]);var left = $layout.find('select')[0];var rigth = $layout.find('select')[1];if ($.browser.msie) {// IE 单独处理for (var i = 0; i < rigth.options.length; i++) {var option = rigth.options[i];if (option.selected) {var opt = new Option(option.text, option.value);left.options.add(opt);rigth.remove(i);}}} else {$(rigth.options).each(function(i, n) {if (n.selected) {n.selected = false;left.options.add(n);}});}}/** * 左全到右 */yxui.leftall2right = function(but) {var $layout = $($(but).parents('.easyui-layout')[0]);var left = $layout.find('select')[0];var rigth = $layout.find('select')[1];if ($.browser.msie) {// IE 单独处理for (var i = 0; i < left.options.length; i++) {var option = left.options[i];var opt = new Option(option.text, option.value);rigth.options.add(opt);}$(left).empty();} else {$(left.options).each(function(i, n) {rigth.options.add(n);});}};/** * 右全到左 */yxui.rightall2left = function(but) {var $layout = $($(but).parents('.easyui-layout')[0]);var left = $layout.find('select')[0];var rigth = $layout.find('select')[1];if ($.browser.msie) {// IE 单独处理for (var i = 0; i < rigth.options.length; i++) {var option = rigth.options[i];var opt = new Option(option.text, option.value);left.options.add(opt);}$(rigth).empty();} else {$(rigth.options).each(function(i, n) {left.options.add(n);});}};/** * select 选择框数据采集 *  * @param options * @return 数组 */yxui.findSelectMultipleValue = function(options) {var returnArr = [], ids = [], texts = [];if ($.browser.msie) {// IE 单独处理for (var i = 0; i < options.length; i++) {ids.push(options[i].value);texts.push(options[i].text);}} else {$(options).each(function(i, n) {ids.push($(n).val());texts.push($(n).html());});}returnArr.push(ids);returnArr.push(texts);return returnArr;}

 

EASYUI API扩展(重要) 

API扩展项目源码下载

....

原创粉丝点击