// 汉字转拼音
$pub.ConvertPinyin = function (l1) {
var l2 = l1.length;
var I1 = "" ;
var reg = new RegExp('[a-zA-Z0-9\- ]' );
for ( var i = 0; i < l2; i++) {
var val = l1.substr(i, 1);
var name = "" ;
if (i==0) {
name = $pub.arraySearch(val, PinYin);
} else {
name = $pub.ucfirst($pub.arraySearch(val, PinYin));
}
if (reg.test(val)) {
I1 += val;
} else if (name !== false) {
I1 += name;
}
}
I1 = I1.replace(/ /g, '');
return I1;
}
// 在对象中搜索
$pub.arraySearch = function (l1, l2) {
var i = 1 ;
for ( var name in PinYin) {
if (PinYin[name].indexOf(l1) != -1) {
return name; break ;
}
}
return false ;
}
// 首字母大写
$pub.ucfirst = function (l1) {
if (l1.length > 0) {
var first = l1.substr(0, 1).toUpperCase();
var spare = l1.substr(1, l1.length);
return first + spare;
}
}
//根据汉子获取首字母
$pub.ConvertSimplePinyin = function (l1) {
var l2 = l1.length;
var I1 = "" ;
var reg = new RegExp('[a-zA-Z0-9\- ]' );
for ( var i = 0; i < l2; i++) {
var val = l1.substr(i, 1);
var name = "" ;
name = $pub.getFirst($pub.arraySearch(val, PinYin));
if (reg.test(val)) {
I1 += val;
} else if (name !== false) {
I1 += name;
}
}
I1 = I1.replace(/ /g, '');
return I1;
}
//获取首字母
$pub.getFirst = function (l1) {
if (l1.length > 0) {
var first = l1.substr(0, 1).toLowerCase();
return first;
}
}
//字符串转大写
$pub.toUpperCase = function (l1) {
return l1.toUpperCase() ;
}
//字符串转小写
$pub.toLowerCase = function (l1) {
return l1.toLowerCase() ;
}
/**
* 根据以下条件 生成easyui格式的表单元素
* type 类型 id 是元素Id name 元素name value 元素值 opts 可选项
*/
$pub.getHtmlByProperty = function getHtmlByProperty(type,id,name,value,opts) {
var str = "" ;
if(type == '1') {
//字符串文本
str = '<input class="easyui-textbox" type="text" name="' + name + '" id="' + id + '" value = "' + value + '"></input>' ;
}else if (type == '2' ) {
//整型文本
str = '<input class="easyui-numberbox" type="text" name="' + name + '" id="' + id + '" value = "'+ value +'"data-options = "precision:0" ></input>' ;
}else if (type == '3' ) {
//浮点型文本
str = '<input class="easyui-textbox" type="text" data-options = "precision:3" name="' + name + '" id="' + id + '" value = "' + value +'" ></input>' ;
}else if (type == '4' ) {
//文本区
str = '<input class="easyui-textbox" style = "height:100px;" data-options="multiline:true" name="' + name + '" id="' + id + '" value = "' + value +'" ></input>' ;
}else if (type == '5' ) {
//日期
str = '<input class="easyui-datetimebox" name="' + name + '" data-options = "editable:false" id="' + id + '" value = "' + value +'" ></input>' ;
}else if (type == '6' ) {
//下拉列表
var data = "" ;
for (var i = 0 ; i < opts.length; i++) {
data = data + "{'value':'" + opts[i] + "','text':'" + opts[i] + "'}," ;
}
data = data.substring(0, data.length-1);
str = '<input class="easyui-combobox" data-options="valueField:\'value\',textField:\'text\',editable:false,data:['+data+ ']" id = "' + id + '" name = "' + name +'" value = "' + value +'"></input>' ;
}else if (type == '7' ) {
//复选框
var data = "" ;
for (var i = 0 ; i < opts.length; i++) {
if (opts[i] == value) {
str = str + '<input type="checkbox" name="'+ name +'" id = "' + id + '" value="'+opts[i]+'"checked = "checked" />' + opts[i] + ' ';
} else {
str = str + '<input type="checkbox" name="'+ name +'" id = "' + id + '" value="'+opts[i]+'"/>' + opts[i] + ' ';
}
}
}else if (type == '8' ) {
//单选框
var data = "" ;
for (var i = 0 ; i < opts.length; i++) {
if (opts[i] == value) {
str = str + '<input type="radio" name="' + name + '" id = "' + id + '" value="' +opts[i]+'" checked = "checked" />' + opts[i] + ' ';
} else {
str = str + '<input type="radio" name="' + name + '" id = "' + id + '" value="'+opts[i]+'"/>' + opts[i] + ' ';
}
}
}
return str ;
}
/**
* 将普通的元素表现为easyUI格式
* type 类型 id 是元素Id
*/
$pub.setHtmlByProperty = function setHtmlByProperty(id,type) {
if(type == '1') {
//字符串文本
$( '#'+id).textbox({});
}else if (type == '2' ) {
//整型文本
$( '#'+id).numberbox({});
}else if (type == '3' ) {
//浮点型文本
$( '#'+id).numberbox({});
}else if (type == '4' ) {
//文本区
$( '#'+id).textbox({});
}else if (type == '5' ) {
//日期
$( '#'+id).datetimebox({});
}else if (type == '6' ) {
//下拉列表
$( '#'+id).combobox({});
}
}
$pub.getBootStrap3FormDom = function (id,type,label,name,length,defValue,optValue,value,divSize,labelSize,inputSize,isRequired) {
if(isRequired == true || isRequired == 1) {
isRequired = true ;
} else {
isRequired = false ;
}
// var requiredHtm = '*' ;
var s = "" ;
if($pub.isBlank(value)) {
if ($pub.isBlank(defValue)) {
value = '' ;
} else {
value = defValue ;
}
}
if(type == '1') {
//字符串文本
s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
+ '<div class = "col-sm-12 col-xs-12">'
+ '<div class = "form-group" >' ;
if (isRequired) {
s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >'
+ '<input required maxlength = "'+length+'" type = "text" style="border-radius:6px;width: 90%;float:left" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
} else {
s = s + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
s = s + '<input maxlength = "'+length+'" type = "text" style="border-radius:6px;width: 90%;float:left" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
}
s = s + '</div>'
+ '</div>'
+ '</div>'
+ '</div>' ;
} else if (type == '2' ) {
//整形
s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
+ '<div class ="col-sm-12 col-xs-12">'
+ '<div class = "form-group" >' ;
if (isRequired) {
s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
s = s + '<input required maxlength = "' + length + '" type = "digits" style="border-radius:6px;width: 90%;float:left" οnkeyup="value=value.replace(/[^\d]/g,\'\')" onbeforepaste="clipboardData.setData(\'text\',clipboardData.getData(\'text\').replace(/[^\d]/g,\'\'))" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
} else {
s = s + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
s = s + '<input maxlength = "' + length + '" type = "digits" style="border-radius:6px;width: 90%;float:left" οnkeyup="value=value.replace(/[^\d]/g,\'\')" onbeforepaste="clipboardData.setData(\'text\',clipboardData.getData(\'text\').replace(/[^\d]/g,\'\'))" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
}
s = s + '</div>'
+ '</div>'
+ '</div>'
+ '</div>' ;
} else if (type == '3' ) {
//浮点型
s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
+ '<div class ="col-sm-12 col-xs-12">'
+ '<div class = "form-group" >' ;
if (isRequired) {
s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
s = s + '<input required maxlength = "'+length+'" type = "number" style="border-radius:6px;width: 90%;float:left" οnkeyup="value=value.replace(/[^\d.]/g,\'\')" onbeforepaste="clipboardData.setData(\'text\',clipboardData.getData(\'text\').replace(/[^\d.]/g,\'\'))" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
} else {
s = s + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
s = s + '<input maxlength = "'+length+'" type = "number" style="border-radius:6px;width: 90%;float:left" οnkeyup="value=value.replace(/[^\d.]/g,\'\')" onbeforepaste="clipboardData.setData(\'text\',clipboardData.getData(\'text\').replace(/[^\d.]/g,\'\'))" class = "form-control" placeholder="' + label + '" id="' + id + '" name = "' + name + '" value = "' + value + '">' ;
}
s = s + '</div>'
+ '</div>'
+ '</div>'
+ '</div>' ;
} else if (type == '4' ) {
//文本区
s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
+ '<div class ="col-sm-12 col-xs-12">'
+ '<div class = "form-group" >' ;
if (isRequired) {
s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
s = s + '<textarea required maxlength = "'+length+'" class="form-control" rows="3" style="border-radius:6px;width:90%;float:left" name = "' + name + '" id = "' + id + '" value = "' + value + '" placeholder="' + label + '" >' + value + '</textarea>' ;
} else {
s = s + '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
s = s + '<textarea maxlength = "'+length+'" class="form-control" rows="3" style="border-radius:6px;width:90%;float:left" name = "' + name + '" id = "' + id + '" value = "' + value + '" placeholder="' + label + '" >' + value + '</textarea>' ;
}
+ '</div>'
+ '</div>'
+ '</div>'
+ '</div>' ;
} else if (type == '5' ) {
//日期
s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
+ '<div class ="col-sm-12 col-xs-12">'
+ '<div class = "form-group" >' ;
if (isRequired) {
s = s + '<label required class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >' ;
s = s + ' + inputSize + + id + + name + '" style="border-radius:6px;width:90%; float:left" value = "' +value+ '" readonly >' ;
}
s = s + '</div>'
+ '</div>'
+ '</div>'
+ '</div>' ;
} else if (type == '6' ) {
//下拉框
var optStr = "" ;
opts = optValue.split( ',') ;
for (var i = 0 ; i < opts.length; i++) {
if (!$pub.isBlank(opts[i])) {
optStr = optStr + '<option value = "' + opts[i] + '">' + opts[i] + '</option>' ;
}
}
s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
+ '<div class ="col-sm-12 col-xs-12">'
+ '<div class = "form-group" >'
+ '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >'
+ '<select class="form-control" style = "border-radius:6px; width:270px;" name="' + name + '" id = "' + id + '">'
+ optStr
+ '</select>'
+ '</div>'
+ '</div>'
+ '</div>'
+ '</div>' ;
} else if (type == '7' ) {
//复选框
var optStr = "" ;
opts = optValue.split( ',') ;
for (var i = 0 ; i < opts.length; i++) {
if (!$pub.isBlank(opts[i])) {
if (opts[i] == value) {
optStr = optStr + '<input type="checkbox" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"checked = "checked" />' + opts[i] + ' ' ;
} else {
optStr = optStr + '<input type="checkbox" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"/>' + opts[i] + ' ';
}
}
}
s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
+ '<div class ="col-sm-12 col-xs-12">'
+ '<div class = "form-group" >'
+ '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >'
+ optStr
+ '</div>'
+ '</div>'
+ '</div>'
+ '</div>' ;
} else if (type == '8' ) {
//单选框
var optStr = "" ;
opts = optValue.split( ',') ;
for (var i = 0 ; i < opts.length; i++) {
if (!$pub.isBlank(opts[i])) {
if ($pub.isBlank(value)) {
if (i == 0) {
optStr = optStr + '<input type="radio" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"checked = "checked" />' + opts[i] + ' ' ;
} else {
optStr = optStr + '<input type="radio" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"/>' + opts[i] + ' ';
}
} else {
if (opts[i] == value) {
optStr = optStr + '<input type="radio" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"checked = "checked" />' + opts[i] + ' ' ;
} else {
optStr = optStr + '<input type="radio" name="' + name + '" id = "' + id + '" value="' + opts[i] + '"/>' + opts[i] + ' ';
}
}
}
}
s = '<div class = "row col-sm-' + divSize + ' col-xs-' + divSize + '">'
+ '<div class ="col-sm-12 col-xs-12">'
+ '<div class = "form-group" >'
+ '<label class= "col-sm-' + labelSize + ' col-xs-' + labelSize + ' control-label">' + label + ':</label>'
+ '<div class = "col-sm-' + inputSize + ' col-xs-' + inputSize + '" >'
+ optStr
+ '</div>'
+ '</div>'
+ '</div>'
+ '</div>' ;
}
return s ;
}
/**
* 动态生成BootStrap3 Form表单
* 参数值: formDom对象
* 属性列表JsonArray
* 其中属性必须包括:{id,dataType,label,name,textSize,defValue,optValue,value,isRequired} 即:{id,数据类型,属性展示名,name,长度,默认值,可选项,值,是否必填}
* 其中dataType包括{"1":"字符串文本","2":"整型文本","3":"浮点型文本","4":"文本区","5":"日期","6":"下拉列表","7":"复选框","8":"单选框"}
* 其中optValue必须以英文,隔开
* 其中isRequired为1时为必填,其他值均为不必填
*
* 示例:
* var pList = [{"id":"4028818851d6d7fe0151d6d8f02e0003","field":"ASDF","defValue":"0","dataType":"1","textSize":"10","isRequired":"0","optValue":{},"label":"asdf"},{"id":"402881aa51cc63210151cdb6aead00b8","field":"BAOZHIQI","defValue":"","dataType":"1","textSize":"50","isRequired":"1","optValue":"50,70,60","label":"保质期"},{"id":"402881aa51cc63210151cdb7359700ba","field":"CHANGJIA","defValue":"","dataType":"1","textSize":"50","isRequired":"1","optValue ":"50","label":"厂家"},{"id":"402881aa51cc63210151ce27085e017a","field":"SHENGCHANRIQI","defValue":"","dataType":"1","textSize":"50","isRequired":"1","optValue":"","label":"生产日期"}] ;
* $pub.initBootStrap3Form($('#productaddForm'),pList) ;
*
*/
$pub.initBootStrap3Form = function (formDom,pList,divSize,lableSize,inputSize) {
$(formDom).html( '') ;
var rules = '{' ;
var messages = '{' ;
var name = "" ;
var label = "" ;
for(var i = 0; i < pList.length; i++) {
var d = pList[i] ;
var s = $pub.getBootStrap3FormDom(d.id,d.dataType,d.label,d.id,d.textSize,d.defValue,d.optValue,d.value,divSize,lableSize,inputSize,d.isRequired) ;
$(formDom).append(s) ;
// name = d.id ;
// label = '{requried : "' + d.label + '是必填项。"}' ;
// if(d.isRequired == '1') {
// rules = rules + "\"" + name + "\"" + ':{"required" : true} ,' ;
// messages = messages + "\"" + name + "\"" + ':{"required" : "' + d.label + '是必填项。"},' ;
// }
}
//初始化日期
$(".form_datetime").datetimepicker({
format: "yyyy-mm-dd" ,
autoclose: true ,
language: 'zh-CN',
pickDate: true ,
pickTime: false ,
startView :2,
minView :2 ,
maxView:4,
pickerPosition: "bottom-left"
});
// if(rules != '{') {
// rules = rules.substring(0,rules.length-1) ;
// }
// if(messages != '{') {
// messages = messages.substring(0,messages.length-1) ;
// }
// rules = rules + '}' ;
// messages = messages + '}' ;
// $pub.getValidator().init(JSON.parse(rules),JSON.parse(messages)) ; //初始化表单验证
}
//判断元素是否为空
$pub.isBlank = function (obj){
if(obj == 'null') {
return true ;
}
if(obj == null ) {
return true ;
}
if(obj.length<1) {
return true ;
}
return false ;
}
/**
*
* 调用默认的表单验证
*/
$pub.initDefaultFormValidator = function (dom) {
$(dom).validate({
errorElement : 'span',
errorClass : 'help-block' ,
focusInvalid : false ,
highlight : function (element) {
$(element).closest('.form-group' ).addClass('has-error') ;
} ,
success : function (label) {
label.closest('.form-group' ).removeClass('has-error') ;
label.remove();
} ,
errorPlacement : function (error, element) {
error.css( 'float', 'left')
element.parent( 'div').append(error) ;
} ,
submitHandler : function (form) {
form.submit() ;
}
});
}
/**
* 表单验证器生成
* 使用方法:
* 1: 调用init方法
* $pub.getValidator.init(rules,messages) ;
* 参数说明: json型relus 和 message
* 参数示例:roles: '{"name":{"required":true},"sex":{"required":true}}' message:'{"name":{"required":"姓名"},"sex":{"required":"性别"}}'
* 2: 调用inita方法
* $pub.getValidator.init(dom) ;
* init参数说明: json型dom
* 参数示例:{"name":"姓名","sex":"性别"}
*/
$pub.getValidator = function () {
var _validator = function (rules,messages) {
var handleSubmit = function(r,m) {
var s = {
errorElement : 'span',
errorClass : 'help-block' ,
focusInvalid : false ,
highlight : function (element) {
$(element).closest('.form-group' ).addClass('has-error');
},
success : function (label) {
label.closest('.form-group' ).removeClass('has-error');
label.remove();
},
errorPlacement : function (error, element) {
element.parent('div' ).append(error);
},
submitHandler : function (form) {
form.submit();
}
}
s.rules = r ;
s.messages = m ;
$( '.form-horizontal' ).validate(s);
$( '.form-horizontal input').keypress(function(e) {
if (e.which == 13) {
if ($('.form-horizontal' ).validate().form()) {
$( '.form-horizontal' ).submit();
}
return false ;
}
});
}
return {
init : function (rules,messages) {
handleSubmit(rules,messages);
},
inita : function (dom) {
var rules = "{" ;
var messages = "{" ;
for (var d in dom) {
var key = d;
var value = dom[d] ;
rules = rules + "\"" + key + "\"" + ':{"required" : true} ,' ;
messages = messages + "\"" + key + "\"" + ':{"required" : "' + value + '是必填项。"},' ;
}
if (rules != '{' ) {
rules = rules.substring(0,rules.length-1) ;
}
if (messages != '{' ) {
messages = messages.substring(0,messages.length-1) ;
}
rules = rules + '}' ;
messages = messages + '}' ;
handleSubmit(JSON.parse(rules),JSON.parse(messages)) ;
}
};
}();
return _validator ;
}
/**
* 将json格式的数据 动态赋值到相应的输入框、下拉列表或其他form表单中
* 参数: json格式的对象 obj
*/
$pub.loadData = function loadData (obj) {
var key,value,tagName,type,arr;
for(x in obj){
key = x ;
value = obj[x] ;
$( "[name='" + key + "'],[name='" + key + "[]']" ).each(function (){
tagName = $( this )[0].tagName;
type = $( this ).attr('type' );
if (tagName == 'INPUT' ){
if (type == 'radio' ){
$( this ).attr('checked' , $(this ).val() == value) ;
} else if (type=='checkbox' ){
arr = value.split( ',') ;
for (var i =0; i<arr.length; i++){
if ($(this ).val() == arr[i]){
$( this ).attr('checked' , true ) ;
break ;
}
}
} else {
$( this ).val(value) ;
}
} else if (tagName == 'SELECT' || tagName == 'TEXTAREA' ){
if (value == true) {
$( this ).val("true" ) ;
} else if (value == false) {
$( this ).val("false" ) ;
} else {
$( this ).val(value) ;
}
}
});
}
}
/**
* 参数为数据表格ID,菜单ID
* 传到后台查询当前用户所拥有的button权限
* 返回button列表
*/
$pub.initButtons = function (toolbarId) {
var menuId = $( '#currentMenuId' ).val() ;
if(menuId == '' || toolbarId == '') {
return ;
}
$('#'+toolbarId).html( '');
$.ajax({
type : "post" ,
data : { 'menuId' : menuId} ,
async : false ,
url : "services/system/ButtonAction_getVerifiedButtons.action" ,
success : function (data) {
if (data.logicSuccess){
var items = data.buttons ;
for (var i = 0;i<items.length;i++){
var item = items[i];
if (item.place == toolbarId) {
var btn = $('<button type="button" onclick = "' + item.handler + '()"><span class="' + item.iconCls + '" aria-hidden="true" style="padding-right:5px"></span>' + item.text + '</button>' ) ;
btn.css( 'border-radius' ,'6px' ) ;
btn.css( 'margin-left' ,'6px' ) ;
btn.css( 'margin-bottom' ,'6px' ) ;
btn.attr( 'class', 'btn btn-default') ;
btn.attr( 'aria-label' ,'Left Align') ;
btn.appendTo($( '#'+toolbarId));
}
}
} else {
createTip( '获取数据失败' ,1000) ;
}
} ,
failure : function () {
createTip( '获取数据失败,网络错误!' ,1000) ;
}
});
}
/**
* 参数为数据表格ID,菜单ID
* 传到后台查询当前用户所拥有的grid权限
* 返回grid列表
*/
$pub.initGrid = function () {
var grids = {};
var menuId = $( '#currentMenuId' ).val() ;
if(menuId == '') {
return ;
}
$.ajax({
type : 'post',
data : { 'menuId' : menuId} ,
async : false ,
url : timestamp('services/system/GridColumnAction_getGridAndColumn.action' ) ,
cache : false ,
dataType : 'json',
success : function (data){
if (data.gridColumns.length>0){
for (var i = 0; i < data.gridColumns.length; i++) {
var a = data.gridColumns[i] ;
var cols = a.columns ;
var _grid = a.gird ;
for (var key in _grid) {
var value = eval("_grid['" + key +"']" );
if (value == null || value == '' ) {
delete (_grid[key]) ;
}
}
delete (_grid['id' ]) ;
for (var j = 0; j<cols.length; j++) {
if (cols[j].resolution != null && cols[j].resolution != '' ) {
cols[j].resolution = eval(cols[j].resolution) ;
}
if (cols[j].codeTable == '' ) {
cols[j].codeTable = null ;
} else {
var ct = eval('codeTable.' +cols[j].codeTable);
if (!$pub.isBlank(ct)) {
cols[j].codeTable = ct ;
} else {
cols[j].codeTable = null ;
}
}
}
_grid.columns = cols ;
if (cols!=null && cols != '') {
_grid = $.fn.DtGrid.init(_grid) ;
_grid.load() ;
}
grids[a.gird.name] = _grid ;
}
} else {
return ;
}
},
error : function (){
createTip( '获取数据失败,网络错误!' ,1000) ;
}
}) ;
return grids ;
}
/**
* 参数为数据表格ID,菜单ID
* 传到后台查询当前用户所拥有的grid权限
* 返回grid列表,未初始化
*/
$pub.getGrid = function () {
var grids = {};
var menuId = $( '#currentMenuId' ).val() ;
if(menuId == '') {
return ;
}
$.ajax({
type : 'post',
data : { 'menuId' : menuId} ,
async : false ,
url : timestamp('services/system/GridColumnAction_getGridAndColumn.action' ) ,
cache : false ,
dataType : 'json',
success : function (data){
if (data.gridColumns.length>0){
for (var i = 0; i < data.gridColumns.length; i++) {
var a = data.gridColumns[i] ;
var cols = a.columns ;
var _grid = a.gird ;
for (var key in _grid) {
var value = eval("_grid['" + key +"']" );
if (value == null || value == '' ) {
delete (_grid[key]) ;
}
}
delete (_grid['id' ]) ;
for (var j = 0; j<cols.length; j++) {
if (cols[j].resolution != null && cols[j].resolution != '' ) {
cols[j].resolution = eval(cols[j].resolution) ;
}
if (cols[j].codeTable == '' ) {
cols[j].codeTable = null ;
} else {
var ct = eval('codeTable.' +cols[j].codeTable);
if (!$pub.isBlank(ct)) {
cols[j].codeTable = ct ;
} else {
cols[j].codeTable = null ;
}
}
}
_grid.columns = cols ;
grids[a.gird.name] = _grid ;
}
} else {
return ;
}
},
error : function (){
createTip( '获取数据失败,网络错误!' ,1000) ;
}
}) ;
return grids ;
}
// ======================== 定义一个map类开始=====================
// 为原生的array添加remove方法
Array.prototype.remove = function(s) {
for ( var i = 0; i < this.length; i++) {
if (s == this [i])
this .splice(i, 1);
}
}
/**
* Simple Map
*
*
* var m = new Map();
* m.put('key','value');
* ...
* var s = "";
* m.each(function(key,value,index){
* s += index+":"+ key+"="+value+"\n";
* });
* alert(s);
*
* @author dewitt
* @date 2008-05 -24
*/
function Map() {
/** 存放键的数组(遍历用到) */
this.keys = new Array();
/** 存放数据 */
this.data = new Object();
/**
* 放入一个键值对
* @param {String} key
* @param {Object} value
*/
this.put = function (key, value) {
if (this .data[key] == null){
this .keys.push(key);
}
this .data[key] = value;
};
/**
* 获取某键对应的值
* @param {String} key
* @return {Object} value
*/
this.get = function (key) {
return this .data[key];
};
/**
* 删除一个键值对
* @param {String} key
*/
this.remove = function (key) {
this .keys.remove(key);
this .data[key] = null;
};
/**
* 遍历Map,执行处理函数
*
* @param {Function} 回调函数 function(key,value,index){..}
*/
this.each = function (fn){
if (typeof fn != 'function' ){
return ;
}
var len = this .keys.length;
for (var i=0;i<len;i++){
var k = this .keys[i];
fn(k, this .data[k],i);
}
};
/**
* 获取键值数组(类似Java的entrySet())
* @return 键值对象{key,value}的数组
*/
this.entrys = function () {
var len = this .keys.length;
var entrys = new Array(len);
for (var i = 0; i < len; i++) {
entrys[i] = {
key : this .keys[i],
value : this .data[i]
};
}
return entrys;
};
/**
* 判断Map是否为空
*/
this.isEmpty = function () {
return this .keys.length == 0;
};
/**
* 获取键值对数量
*/
this.size = function (){
return this .keys.length;
};
/**
* 重写toString
*/
this.toString = function (){
var s = "{" ;
for (var i=0;i<this.keys.length;i++,s+= ','){
var k = this .keys[i];
s += k+ "=" +this .data[k];
}
s+= "}" ;
return s;
};
}
//======================== 定义map类结束=====================
//======================== 文件上传开始=====================
$pub.uploadfy = function (dom,uploader,queueID,buttonText,queueSizeLimit,fileTypeExts,auto,fileSizeLimit,uploadLimit,onUploadSuccessFun) {
jQuery(function() {
$(dom).uploadify({
'swf' : 'resource/uploadify/uploadify.swf' ,
'uploader' : uploader ,
'cancelImg' : 'res/plugin/uploadify/cancel.png' ,
"fileObjName" : $(dom).attr( 'name') , //必须是这个,因为这个名称与后台接受file的名称是一致的
'queueID' : queueID , //这个是显示进度条的div的id
'buttonText' : buttonText , //按钮的文字
'hideButton' : false ,
'queueSizeLimit' : queueSizeLimit , //一次性允许上传的文件个数
'fileTypeExts' : fileTypeExts , //允许上传的文件类型
'auto' : auto , //是否自动上传
'buttonClass' : 'btn btn-default' , //上传按钮div的class
'spanClass' : 'glyphicon glyphicon-upload' ,//自己写的上传按钮里div里的span的class
'radius' : 6 , //这个是我自己设置的可控制按钮的圆边
'fileSizeLimit' : fileSizeLimit , //上传文件的大小,如果为数字的话,它的单位为kb;如果是字符串的话,则这么写:'3MB'、'3GB'
'height' : 30 , //上传按钮的高度
'uploadLimit' : uploadLimit , //最大允许上传的数量
'removeCompleted' : true , //是否上传完成之后移除上传时的进度条
'width' : 90 , //按钮的宽度
onSelect : function (){ //选择文件时调用的方法
},
onUploadSuccess : onUploadSuccessFun,
onSelectError : function (file, errorCode, errorMsg){
switch (errorCode){
case -100 :
if (parseInt($(dom).uploadify('settings' ,'queueSizeLimit' )) > parseInt(errorMsg)) {
this .queueData.errorMsg="同时上传的最大文件数已经超出了系统限制的:" +$(dom).uploadify('settings','uploadLimit')+ "个文件" ;
} else {
this .queueData.errorMsg="同时上传的文件数量超出系统限制的" +$(dom).uploadify('settings','queueSizeLimit')+ "个文件" ; }
break ;
case -110 :
this .queueData.errorMsg="文件[" +file.name+"]大小超出系统限制的" +$(dom).uploadify('settings' ,'fileSizeLimit' )+"的大小" ;
break ;
case -120 :
this .queueData.errorMsg="文件[" +file.name+"]大小异常";
break ;
case -130 :
this .queueData.errorMsg="文件[" +file.name+"]类型不正确应为:" +$(dom).uploadify('settings' ,'fileTypeExts' );
break ;
}
}
});
});
}
//======================== 文件上传结束=====================
//======================== 区域信息4级联动 开始 =====================
/**
* 调用方法:
* $pub.getAreaInfo4LevelLink().init(regionDom, privinceDom, cityDom, areaDom) ;
* 例:
* $pub.getAreaInfo4LevelLink().init(document.getElementById('region'),document.getElementById('province'),document.getElementById('city'),document.getElementById('area')) ;
*/
$pub.getAreaInfo4LevelLink = function () {
var areaInfo4LevelLink = function () {
var handler = function (_carea,_cmbProvince, _cmbCity, _cmbArea) {
var area = _carea ;
var cmbProvince = _cmbProvince ;
var cmbCity = _cmbCity ;
var cmbArea = _cmbArea ;
area.childDom = cmbProvince ;
area.onchange = function () {
changeInfo( this ) ;
} ;
cmbProvince.childDom = cmbCity ;
cmbProvince.onchange = function () {
changeInfo( this ) ;
} ;
cmbCity.childDom = cmbArea ;
cmbCity.onchange = function () {
changeInfo( this ) ;
} ;
cmbArea.childDom = null ;
// 给下拉列表定义序列号
function cmbSelect(cmb, str) {
for (var i=0; i<cmb.options.length; i++)
{
if (cmb.options[i].value == str)
{
cmb.selectedIndex = i;
return ;
}
}
}
//填充下拉框
function cmbAddOption(cmb, str,value, obj ,isSelected ) {
var option = document.createElement("OPTION" );
option.innerHTML = str;
option.value = value;
option.obj = obj;
option.selected = isSelected ;
cmb.options.add(option);
}
function changeInfo (currentDom) {
var childDom = currentDom.childDom ;
if (childDom != null) {
childDom.options.length = 0 ; // 删除options
if (currentDom.selectedIndex == -1) return ;
var item = currentDom.options[currentDom.selectedIndex].obj ;
for (var i=0;i<item.length;i++)
{
cmbAddOption(childDom,item[i].name,item[i].code,item[i].areas, false );
}
cmbAddOption(childDom, '---请选择---' ,'' ,{},true) ;
changeInfo(childDom) ;
} else {
return ;
}
}
for (var i=0; i<areaInfo.length; i++) {
cmbAddOption(area, areaInfo[i].name,areaInfo[i].code, areaInfo[i].areas,false );
}
cmbAddOption(area, '---请选择---' ,'' ,{},true) ;
changeInfo(area) ;
}
return {
init : function (_carea,_cmbProvince, _cmbCity, _cmbArea) {
handler(_carea,_cmbProvince, _cmbCity, _cmbArea) ;
}
}
}();
return areaInfo4LevelLink ;
}
//======================== 区域信息4级联动 结束=====================
//function isEmail(){//失焦事件判断邮箱格式
// var mail=$("#email").val();
// var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
// $("#removeCheck").contents().remove();
// if(mail!=null && mail.length>0){
// if (filter.test(mail)){
// $("#removeCheck").contents().remove();
// return true;
// }
// else {
// $("#email").next().append("邮 箱 格 式 不 正 确 !");
// return false;
// }
// }else{
// return false;
// }
//}