var ym = ym || {};
/**
* easyUI messager
*/
(function ($){
$.extend($.messager.defaults, {ok:"确定",cancel:"取消"});
$.extend($.fn.combobox.defaults, {"editable":false});
$.extend($.fn.datebox.defaults, {"editable":false});
//日期相关
$.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六'];
$.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'];
$.fn.datebox.defaults.currentText = "今天";
$.fn.datebox.defaults.closeText = "关闭";
$.fn.datebox.defaults.okText = "确定";
$.fn.datebox.defaults.formatter = function(date){
if("undefined" == typeof date || date == null){
return "";
}
var y = date.getFullYear();
var m = date.getMonth()+1;
var mm = m>9?m:('0'+m);
var d = date.getDate();
var dd = d>9?d:('0'+d);
return y+'-'+mm+'-'+dd;
}
$.fn.extend({
pmsLoad : function(url, data, complete) {//load
if(complete){
return $(this).load(urlWrapper(url), data, complete);
}else{
return $(this).load(urlWrapper(url), data);
}
}
});
$.extend({
pmsAjax : function(settings) {
var async = true;
var loading = true;
if(settings.loading){
loading = settings.loading;
}
if(settings.async){
async = settings.async;
}
var dataParam ={};
if(settings.data){
$.extend(dataParam,settings.data);
}
var message = "数据加载中,请稍后……";
if(settings.message){
message = settings.message;
}
$.ajax({
url: settings.url,
dataType : 'json',
async : async,
data:dataParam,
type : "POST",
beforeSend: function ( xhr ) {
if(loading){
if(settings.id){
$("
").appendTo($("#"+settings.id));
var msg=$("").html(""+message+"").appendTo($("#"+settings.id));
msg.css("marginLeft",-msg.outerWidth()/2);
}else{
$("").appendTo($("body"));
var msg=$("").html(""+message+"").appendTo($("body"));
msg.css("marginLeft",-msg.outerWidth()/2);
}
}
},
success:function(data){
//$.hideAjaxImg("ajaxImg");
if(loading){
if(settings.id){
$("#"+settings.id).children("div.datagrid-mask-msg").remove();
$("#"+settings.id).children("div.datagrid-mask").remove();
}else{
$("body").children("div.datagrid-mask-msg").remove();
$("body").children("div.datagrid-mask").remove();
}
}
//setTimeout(function(){},1000);
if(settings.success){
settings.success(data);
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alertError("ajax error");
$("body").children("div.datagrid-mask-msg").remove();
$("body").children("div.datagrid-mask").remove();
if(settings.error){
settings.error(XMLHttpRequest, textStatus, errorThrown);
}
}
});
}
});
function urlWrapper(url) {
if (url) {
if (!url.contains("?")) {
return url += '?m=' + Math.random();
} else {
url += '&m=' + Math.random();
}
}
return url;
}
})(jQuery);
/**
* 分页datagrid
*/
(function ($) {
//给表格 加 编辑方法
$.extend($.fn.datagrid.methods, {
editCell: function(jq,param){
return jq.each(function(){
var opts = $(this).datagrid('options');
var fields = $(this).datagrid('getColumnFields',true).concat($(this).datagrid('getColumnFields'));
for(var i=0; i= 0) {
$('#'+this.id).datagrid('deleteRow',index);
}
},
removeAllRows : function() {// 删除所有数据
var rows = $('#'+this.id).datagrid('getRows');
var size = rows.length;
for ( var i = 0; i < size; i++) {
$('#'+this.id).datagrid('deleteRow',0);
}
},
addQueryParams:function(param){
var config = oDataGridSettings[this.id];
var obj = {};
if(config.settings.autoLoad == false){
$.extend(obj,{url:config.settings.loadUrl});
}
$.extend(config.settings.queryParams,param);
},
getQueryParams:function(){
var config = oDataGridSettings[this.id];
return config.settings.queryParams;
},
refresh:function(param){
var config = oDataGridSettings[this.id];
var obj = {};
if(config.settings.autoLoad == false){
$.extend(obj,{url:config.settings.loadUrl});
}
$.extend(param,{"pageable":config.settings.queryParams.pageable});
$.extend(obj,{queryParams:param});
$('#'+this.id).datagrid(obj);
return this;
},
filter:function(param){
$('#'+this.id).datagrid('enableFilter',param);
//$.extend(extendedOptions,{tableGrid:this});
}
};
}
})(jQuery);
/**
* tabs
*/
(function($){
var pTabsConfigs = new Array();
$.fn.pTabs = function(options){
return new tabs().init($(this),options).build();
}
function tabs(){
return {
id:"",
init:function(o,options){
this.id = o.attr('id');
pTabsConfigs[this.id] = null;
var config = {};
config.id = this.id;
config.container = o;
var tabsSettings = {};
//tabs长度
if(options.width){
tabsSettings.width = options.width;
}
//tabs高度
if(options.height){
tabsSettings.height = options.height;
}else{
tabsSettings.height = '500px';
}
if(options.border){
tabsSettings.border = options.border;
}else{
tabsSettings.border = true;
}
if(options.plain){
tabsSettings.plain = options.plain;
}else{
tabsSettings.plain = true;
}
//tabs滚动个数
if(options.scrollIncrement){
tabsSettings.scrollIncrement = options.scrollIncrement;
}
if(options.tools){
tabsSettings.tools = options.tools;
}
//工具的位置,默认‘right’
if(options.toolPosition){
tabsSettings.toolPosition = options.toolPosition;
}
//标签的位置,默认是‘top’
if(options.tabPosition){
tabsSettings.tabPosition = options.tabPosition;
}
//tab标签的长度
if(options.tabWidth){
tabsSettings.tabWidth = options.tabWidth;
}
//tab标签的高度
if(options.tabHeight){
tabsSettings.tabHeight = options.tabHeight;
}
//子标签的数组
if(options.tabs){
config.tabs = options.tabs;
}
if(options.onSelect){
tabsSettings.onSelect = options.onSelect;
}
if(options.view){
tabsSettings.view = options.view;
}
tabsSettings.fit = true;
config.setting = tabsSettings;
pTabsConfigs[this.id] = config;
return this;
},
build:function(){
var config = pTabsConfigs[this.id];
if(null == config.ptabs){
config.ptabs = $("#"+this.id).tabs(config.setting);
pTabsConfigs[this.id] = config;
}
return this;
},
addTab:function(params){
if(!$("#"+this.id).tabs('exists',params.title)){
if(typeof(params.cache)=='undefined'){
params.cache = false;
}
$("#"+this.id).tabs('add',params);
}else{
if(typeof(params.cache)=='undefined'){
params.cache = false;
}
$("#"+this.id).tabs('close',params.title);
$("#"+this.id).tabs('add',params);
}
},
disableTab:function(which){//which可以是tab的index或者是title
$("#"+this.id).tabs('disableTab',which);
},
enableTab:function(which){
$("#"+this.id).tabs('enableTab',which);
}
}
}
})(jQuery);
//dialog
(function ($) {
$.extend({
pmsDialog: function (options) {
var href;
var newOptions = new Object();
$.extend(newOptions,options);
if(options.href){
href = options.href;
}else{
return false;
}
var title;
if(options.width){//长度
width = options.width;
}else{
width = window.innerWidth;
}
var fit;
if(options.fit){
fit = options.fit;
}else{
fit = false;
}
var maximizable;
if(options.maximizable){
maximizable = options.maximizable;
}else{
maximizable = false;
}
if(options.height){//高度
height = options.height;
}else{
height = window.innerHeight-50;
}
if(options.subtractHeight){//高度
height = height- options.subtractHeight;
}
if(options.title){//标题
title = options.title;
}else{
title = "应用窗口";
}
var id= "";
if(options.id){
id=options.id;
}else{
id= "zcDialog_"+Math.floor(Math.random() * 1000000);
}
if(options.params){
for(var property in options.params){
if(href.indexOf("?") != -1){
href = href + '&'+property+'='+options.params[property] ;
}else{
href = href + '?'+property+'='+options.params[property];
}
}
}
if(href.indexOf("?") != -1){
href = href + '&zcDialog='+id;
}else{
href = href + '?zcDialog='+id;
}
var $div;
if(options.isIf){
if(options.isParent){
$div= parent.$('');
}else{
$div= $('');
}
href="";
}else{
if(options.isParent){
$div = parent.$('');
}else{
$div = $('');
}
}
if(options.isBtn){
var butn;
if(options.buttons){
butn=options.buttons;
}else{
butn=[{
text: '提交',
id:'btntijiao',
iconCls: 'icon-save',
handler: function(){
if(options.isIf){
$("#"+id).contents().find("#f_"+id).submitForm();
}else{
submitForm();
}
}
}, {
text: '关闭',
iconCls: 'icon-cancel',
handler: function(){
$('#'+options.id).dialog('close');
}
}];
}
$.extend(newOptions,{
buttons:butn
});
}
$.extend(newOptions,{
title: title,
width: width,
height: height,
closed: false,
cache: false,
modal: true,
href:href,
resizable:true,
fit:fit,
maximizable:maximizable,
onClose:function(){
if(options.close){
options.close();
}
$("#"+id).dialog("destroy");
}
});
$div.dialog(newOptions);
}
});
/**
* auther by zxj
* 验证扩展
* date : 2013 - 10 -09
*/
$.extend($.fn.validatebox.defaults.rules, {
minLength : { // 判断最小长度
validator : function(value, param) {
return value.length >= param[0];
},
message : '最少输入 {0} 个字符。'
},
equalTo:{
/*必须和某个字段相等*/
validator: function(value, param) {
return ($(param[0]).val() == value);
},
message: '2个字段值不一致,请重新输入..'
},
length:{validator:function(value,param){
//var len=$.trim(value).length;
var len =0;
for(var i = 0;i= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)){
len++;
}else{
len+=3;
}
}
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 : '手机号码格式不正确(正确格式如:13450774432)'
},
phoneOrMobile:{//验证手机或电话
validator : function(value) {
return /^(13|15|18)\d{9}$/i.test(value) || /^((\(\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:'请填入手机或电话号码,如13688888888或020-8888888'
},
idcard : {// 验证身份证
validator : function(value) {
return /^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value);
},
message : '身份证号码格式不正确'
},
floatOrInt : {// 验证是否为小数或整数
validator : function(value) {
return /^(\d{1,3}(,\d\d\d)*(\.\d{1,3}(,\d\d\d)*)?|\d+(\.\d+))?$/i.test(value);
},
message : '请输入数字,并保证格式正确'
},
currency : {// 验证货币
validator : function(value) {
return /^d{0,}(\.\d+)?$/i.test(value);
},
message : '货币格式不正确'
},
qq : {// 验证QQ,从10000开始
validator : function(value) {
return /^[1-9]\d{4,9}$/i.test(value);
},
message : 'QQ号码格式不正确(正确如:453384319)'
},
integer : {// 验证整数
validator : function(value) {
return /^[+]?[1-9]+\d*$/i.test(value);
},
message : '请输入整数'
},
numberOrLength : {//验证数字或长度
validator : function(value,param){
var len=$.trim(value).length;
return /^[+]?[1-9]+\d*$/i.test(value) && len>=param[0]&&len<=param[1];
},
message : '请输入长度介于0和{1}之间的数字'
},
chinese : {// 验证中文
validator : function(value) {
return /^[\u0391-\uFFE5]+$/i.test(value);
},
message : '请输入中文'
},
english : {// 验证英语
validator : function(value) {
return /^[A-Za-z]+$/i.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 /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/i.test(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 : '请输入姓名'
},
carNo:{
validator : function(value){
return /^[\u4E00-\u9FA5][\da-zA-Z]{6}$/.test(value);
},
message : '车牌号码无效(例:粤J12350)'
},
carenergin:{
validator : function(value){
return /^[a-zA-Z0-9]{16}$/.test(value);
},
message : '发动机型号无效(例:FG6H012345654584)'
},
email:{
validator : function(value){
return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value);
},
message : '请输入有效的电子邮件账号(例:abc@126.com)'
},
msn:{
validator : function(value){
return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value);
},
message : '请输入有效的msn账号(例:abc@hotnail(msn/live).com)'
},department:{
validator : function(value){
return /^[0-9]*$/.test(value);
},
message : '请输入部门排序号(例:1)'
},same:{
validator : function(value, param){
if($("#"+param[0]).val() != "" && value != ""){
return $("#"+param[0]).val() == value;
}else{
return true;
}
},
message : '两次输入的密码不一致!'
},
largerThan:{// 验证大于前一个数字
validator : function(value,param) {
if($("#"+param[0]).val() != "" && value != ""){
return Number($("#"+param[0]).val()) < Number(value);
}else{
return true;
}
},
message : '请输入大于前一个数字的数字'
}
});
})(jQuery);
var parser;
(function($){
parser = {
auto: true,
plugins:['linkbutton','menu','menubutton','splitbutton','layout',
'tree','window','dialog','datagrid',
'combobox','combotree','numberbox','validatebox',
'calendar','datebox','panel','tabs','accordion'
],
parse: function(context){
if ($.parser.auto){
for(var i=0; i<$.parser.plugins.length; i++){
(function(){
var name = $.parser.plugins[i];
var r = $('.easyui-' + name, context);
if (r.length){
if (r[name]){
r[name]();
} else if (window.easyloader){
easyloader.load(name, function(){
r[name]();
})
}
}
})();
}
}
}
};
})(jQuery);
ym.onLoadError = {
onLoadError : function(XMLHttpRequest) {
if (parent.$ && parent.$.messager) {
parent.$.messager.progress('close');
if(XMLHttpRequest.responseText.trim()==''){
parent.$.messager.alert('错误', "系统发生了未知错误,请联系管理员.");
}else{
parent.$.messager.alert('错误', XMLHttpRequest.responseText);
}
} else {
$.messager.progress('close');
if(XMLHttpRequest.responseText.trim()==''){
$.messager.alert('错误', "系统发生了未知错误,请联系管理员.");
}else{
$.messager.alert('错误', XMLHttpRequest.responseText);
}
}
}
};
$.extend($.fn.datagrid.defaults,{
onLoadSuccess:function(data){
$(this).datagrid("fixRownumber");
$(this).datagrid('fixRowHeight');
if(data.code=="100"){
alertError(data.result);
}
}
});
$.extend($.fn.datagrid.methods, {
fixRownumber : function (jq) {
return jq.each(function () {
var panel = $(this).datagrid("getPanel");
//获取最后一行的number容器,并拷贝一份
var clone = $(".datagrid-cell-rownumber", panel).last().clone();
//由于在某些浏览器里面,是不支持获取隐藏元素的宽度,所以取巧一下
clone.css({
"position" : "absolute",
left : -1000
}).appendTo("body");
var width = clone.width("auto").width();
//默认宽度是25,所以只有大于25的时候才进行fix
if (width > 25) {
//多加5个像素,保持一点边距
$(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).width(width + 5);
//修改了宽度之后,需要对容器进行重新计算,所以调用resize
$(this).datagrid("resize");
//一些清理工作
clone.remove();
clone = null;
} else {
//还原成默认状态
$(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).removeAttr("style");
}
});
}
});
$.extend($.fn.datagrid.defaults, ym.onLoadError);
$.extend($.fn.treegrid.defaults, ym.onLoadError);
$.extend($.fn.tree.defaults, ym.onLoadError);
$.extend($.fn.combogrid.defaults, ym.onLoadError);
$.extend($.fn.combobox.defaults, ym.onLoadError);
$.extend($.fn.form.defaults, ym.onLoadError);
//动态设置表格列标题 $("#dt").datagrid("setColumnTitle",{field:'productid',text:'newTitle});
$.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;
}
});