/* ############################# 页面 查看 编辑 保存 输入域只读控制 begin create by smx ######################## */
/**
*页面所有输入域不可用(用于查看的操作)
*/
function readOnlyAll(){
$(":input").attr("disabled","true");
$(".l-btn").attr("disabled","true");
// $(":input").attr("style","border:0;border-bottom:1 solid black;background:white;");
}
/**
*页面除removeIds外,其他输入域不可用(常用于编辑的操作)
* @param removeIds “test,test2,test3”可包含了按钮事件的id
* @param btnClickable linkbutton事件是否禁用 ,默认为false,不禁用 (可为空)
*/
function readOnlyExcIds(removeIds,btnClickable){
$(':input').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).attr("disabled","true");
}
});
if(btnClickable && typeof(btnClickable) != "undefined"){
$('.l-btn').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).attr("disabled","true");
}
});
}
}
/**
*针对某一块区域的id,页面除removeIds外,其他输入域为不可用
* @param fieldId 指定某个区域
* @param removeIds“test,test2,test3” (可为空)包括linkbutton的Ids
* @param btnClickable linkbutton事件是否禁用, 默认为false,不禁用(可为空)
*/
function readOnlyById(fieldId,removeIds,btnClickable){
if(fieldId.indexOf("#") == -1 && fieldId.indexOf(".") == -1){
fieldId = "#"+fieldId;
}
if(removeIds && typeof(removeIds) != "undefined"){
$(fieldId+' :input').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).attr("disabled","true");
}
});
//按钮事件控制
if(btnClickable && typeof(btnClickable) != "undefined"){
$(fieldId+' .l-btn').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).attr("disabled","true");
}
});
}
}else{
$(fieldId+' :input').attr("disabled","true");
//按钮事件控制
if(btnClickable && typeof(btnClickable) != "undefined"){
$(".l-btn").attr("disabled","true");
}
}
}
/**
* 只对页面Ids进行不可用设置
* @param leaveIds 数组['test1','test2','test3']
*/
function readOnlyForIds(leaveIds){
$.each(leaveIds,function(n,value){
$("#"+value).attr("disabled","true");
});
}
/**
* 对页面Ids解除不可用设置
* @param leaveIds 数组['test1','test2','test3']
*/
function unReadOnlyForIds(leaveIds){
$.each(leaveIds,function(n,value){
$("#"+value).removeAttr("disabled");
});
}
/**
* 根据id对某块区域解除不可用设置,除removeIds的输入域
* @param fieldId 指定某个区域
* @param removeIds“test,test2,test3” (可为空)包括linkbutton的Ids
* @param btnClickUnable linkbutton事件是否解禁用, 默认为false,不解禁(可为空)
*/
function unReadOnlyByFieldId(fieldId,removeIds,btnClickUnable){
if(fieldId.indexOf("#") == -1 && fieldId.indexOf(".") == -1){
fieldId = "#"+fieldId;
}
if(removeIds && typeof(removeIds) != "undefined"){
$(fieldId+' :input').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).removeAttr("disabled");
}
});
//按钮事件控制
if(btnClickUnable && typeof(btnClickUnable) != "undefined"){
$(fieldId+' .l-btn').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).removeAttr("disabled");
}
});
}
}else{
$(fieldId+' :input').removeAttr("disabled");
//按钮事件控制
if(btnClickUnable && typeof(btnClickUnable) != "undefined"){
$(".l-btn").removeAttr("disabled");
}
}
}
/* ############################# 页面 查看 编辑 保存 输入域不可用控制 end ######################## */
//############# 查询列表模块---begin--create by smx--####################
/**
* @author
* @requires jQuery
* 将form表单元素的值序列化成对象
* @returns object
*/
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;
};
/**
* 初始化查询列表
* @param datagridId
* @param title
* @param url
* @param columns
* @param params 查询参数
* @param hasPagination //默认有分页,为false表示无分页
* @returns {*|jQuery}
*/
function initDatagrid(datagridId,title,url,columns,params,hasPagination){
if(typeof(hasPagination) == "undefined" ){
hasPagination = true;
}
if(typeof(params) == "undefined" || params == ""){
params = {};
}
var datagrid = $('#'+datagridId).datagrid({
title : title,
url : url,
queryParams: params,
fit : false,
loadMsg : '数据加载中...',
rownumbers : true,
singleSelect : false,
fitColumns : true,
showFooter : true,
columns : [columns],
onLoadSuccess : function(data) {
$("#"+datagridId).datagrid("clearSelections");
},
pagination : hasPagination
});
datagrid.datagrid('getPager').pagination({
beforePageText : '',
afterPageText : '/{pages}',
displayMsg : '{from}-{to}共{total}条',
showPageList : true,
pageList : [ 10, 20, 30 ],
showRefresh : true,
onBeforeRefresh : function(pageNumber, pageSize) {
$(this).pagination('loading');
$(this).pagination('loaded');
}
});
return datagrid;
}
/**
* EasyUI DataGrid根据字段动态合并单元格
* @param tableID 要合并table的id
* @param colList 要合并的列,用逗号分隔(例如:"itemType,department,office");
*/
function mergeCellsByField(tableID,colList){
var ColArray = colList.split(",");
var tTable = $('#'+tableID);
var TableRowCnts=tTable.datagrid("getRows").length;
var tmpA;
var tmpB;
var PerTxt = "";
var CurTxt = "";
var alertStr = "";
for (j = ColArray.length-1;j>=0 ;j-- ) {
PerTxt="";
tmpA=1;
tmpB=0;
for (i=0;i<=TableRowCnts ;i++ ) {
if (i==TableRowCnts) {
CurTxt="";
} else {
CurTxt=tTable.datagrid("getRows")[i][ColArray[j]];
} if (PerTxt==CurTxt) {
tmpA+=1;
} else {
tmpB+=tmpA;
tTable.datagrid('mergeCells',{
index:i-tmpA,
field:ColArray[j],
rowspan:tmpA,
colspan:null
});
tmpA=1;
}
PerTxt=CurTxt;
}
}
}
//############# 查询列表模块---end----####################
function saveForm(formId,url){
$("#"+formId).form("submit", {
url : url,
onSubmit : function() {
$.messager.progress({text:'保存中...'});
},
success : function(data) {
var r = $.parseJSON(data);
if(r.success){
$.messager.progress('close');
$.messager.alert('提示', r.msg, 'info');
var title = $('.tabs-selected').text();
$('#maintabs').tabs('close',title.substring(0, title.length - 2));
}else{
$.messager.progress('close');
$.messager.alert('提示', r.msg, 'info');
}
}
});
}
/**
* ajax中获取的日期格式化
*/
function timeStampToString(time){
var datetime = new Date();
datetime.setTime(time);
var year = datetime.getFullYear();
var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
}
/*###############加减条功能样式定义 begin create by smx ##################*/
/**
*删除一行数据
* @param field this
* @param target 模块名称
* @param preExec 删除前调用其他函数(可用于删除前的数据校验)
* @param callBack 删除后调用其他函数
*/
function delRowEven(field,target,preExec,callBack){
target = target.replace('[','\\[').replace(']','\\]');
var preExecFlag = true;
if(preExec && "" != preExec && typeof(preExec) != "undefined"){
preExecFlag = eval(preExec);
}
if(preExecFlag){
$(field).parent().parent().remove();
resetRowNum(target);
}
if(callBack && "" != callBack && typeof(callBack) != "undefined"){
eval(callBack);
}
}
/**
*增加一行数据
* @param target 模块名称
* @param preExec 增加前调用其他函数(可用于增加前的数据校验)
* @param callBack 增加后调用其他函数(对增加的数据初始化)
* @param autpTipsId 复制行包含autotips复制的模板id,如果是多个用","隔开
* @param autpTipsHtml 用来被替换autotips的内容,如果有多个用“,”隔开,注意模板id和内容位置要一直
*/
function addRowEven(target,preExec,callBack,autpTipsId,autpTipsHtml){
target = target.replace('[','\\[').replace(']','\\]');
var preExecFlag = true;
if(preExec && "" != preExec && typeof(preExec) != "undefined"){
preExecFlag = eval(preExec);
}
if(preExecFlag){
var tr = $("."+target+"_perRowTemp").clone();
var html = tr.html();
if(autpTipsId!=null&&autpTipsId!=""&&autpTipsHtml!=null&&autpTipsHtml!=""){
var arr1 = autpTipsId.split(",");
var arr2 = autpTipsHtml.split(",");
for(var i=0;i<arr1.length;i++){
if(arr1[i]!=null&&arr1[i]!=""&&arr2[i]!=null&&arr2[i]!=""){
html = html.replace(arr2[i],$("#"+arr1[i]).val());
}
}
}
$("#"+target+"_mainRow").append("<tr class='perRow'>"+html+"</tr>");
resetRowNum(target);
}
if(callBack && "" != callBack && typeof(callBack) != "undefined"){
eval(callBack);
}
}
/**
* 下标重置
* @param target模块名称
*/
function resetRowNum(target) {
var _initIndex=$("#"+target+"_addDelTab").find("#initIndex").val();
if(!_initIndex || typeof(_initIndex) == "undefined" || _initIndex == ""){
_initIndex = 0;
}
var _count=-1;
$("#"+target+"_mainRow").find('.perRow').each(function(p){
var i = p + parseInt(_initIndex) ;
$(':input, select ,a', this).each(function(){
var $this = $(this), name = $this.attr('name'),id = $this.attr('id'),cl=$this.attr('class');
if(name && "" != name && typeof(name) != "undefined"){
if (name.indexOf("_[#index#]") >= 0){
$this.attr("name",name.replace('_[#index#]','['+i+']'));
}else if(name.indexOf("[")>=0 && name.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=name.length;j < len;j++){
if("[" == name.charAt(j)){
s=j;
}else if("]" == name.charAt(j)){
e=j;
}
}
var new_name = name.substring(s+1,e);
$this.attr("name",name.replace(new_name,i));
}
if((name.indexOf("serilNo") >= 0)){
$this.val(i+1);
}
}
if(id && "" != id && typeof(id) != "undefined"){
if (id.indexOf("_[#index#]") >= 0){
$this.attr("id",id.replace('_[#index#]','['+i+']'));
}else if(id.indexOf("[")>=0 && id.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=id.length;j < len;j++){
if("[" == id.charAt(j)){
s=j;
}else if("]" == id.charAt(j)){
e=j;
}
}
var new_id = id.substring(s+1,e);
$this.attr("id",id.replace(new_id,i));
}
}
if(cl && "" != cl && typeof(cl) != "undefined"){
if (cl.indexOf("#easyui#") >= 0){
$this.attr("class",cl.replace('#easyui#','easyui'));
}
}
});
_count=_count+1;
});
$("#"+target+"_addDelTab").find("#maxIndexId").val(_count);
}
/*############### 加减条功能样式定义 end ##################*/
/*###############加减条功能样式定义 begin create by smx ##################*/
/**
*删除一行数据
* @param field this
* @param target 模块名称
* @param preExec 删除前调用其他函数(可用于删除前的数据校验)
* @param callBack 删除后调用其他函数
*/
function delParentRowEven(field,target,preExec,callBack){
var preExecFlag = true;
if(preExec && "" != preExec && typeof(preExec) != "undefined"){
preExecFlag = eval(preExec);
}
if(preExecFlag){
$(field).parent().parent().remove();
resetParentRowNum(target);
}
if(callBack && "" != callBack && typeof(callBack) != "undefined"){
eval(callBack);
}
}
/**
*增加一行数据
* @param target 模块名称
* @param preExec 增加前调用其他函数(可用于增加前的数据校验)
* @param callBack 增加后调用其他函数(对增加的数据初始化)
* @param autpTipsId 复制行包含autotips复制的模板id,如果是多个用","隔开
* @param autpTipsHtml 用来被替换autotips的内容,如果有多个用“,”隔开,注意模板id和内容位置要一直
*/
function addParentRowEven(target,preExec,callBack,autpTipsId,autpTipsHtml){
var preExecFlag = true;
if(preExec && "" != preExec && typeof(preExec) != "undefined"){
preExecFlag = eval(preExec);
}
if(preExecFlag){
var tr = $("."+target+"_perParentRowTemp").clone();
var html = tr.html();
if(autpTipsId!=null&&autpTipsId!=""&&autpTipsHtml!=null&&autpTipsHtml!=""){
var arr1 = autpTipsId.split(",");
var arr2 = autpTipsHtml.split(",");
for(var i=0;i<arr1.length;i++){
if(arr1[i]!=null&&arr1[i]!=""&&arr2[i]!=null&&arr2[i]!=""){
html = html.replace(arr2[i],$("#"+arr1[i]).val());
}
}
}
$("#"+target+"_mainParentRow").append("<tr class='perParentRow'>"+html+"</tr>");
resetParentRowNum(target);
}
if(callBack && "" != callBack && typeof(callBack) != "undefined"){
eval(callBack);
}
}
/**
* 下标重置
* @param target模块名称
*/
function resetParentRowNum(target) {
var _initIndex=$("#"+target+"_addDelTab").find("#initParentIndex").val();
if(!_initIndex || typeof(_initIndex) == "undefined" || _initIndex == ""){
_initIndex = 0;
}
var _count=-1;
$("#"+target+"_mainParentRow").find('.perParentRow').each(function(p){
var i = p + parseInt(_initIndex) ;
$(':input, select ,a , table,tr,tbody', this).each(function(){
var $this = $(this), name = $this.attr('name'),id = $this.attr('id'),cl=$this.attr('class'),oncli=$this.attr("onclick");
if(name && "" != name && typeof(name) != "undefined"){
if (name.indexOf("_[#num#]") >= 0){
$this.attr("name",name.replace('_[#num#]','['+i+']'));
}else if(name.indexOf("[")>=0 && name.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=name.length;j < len;j++){
if("[" == name.charAt(j) && s==0){
s=j;
}else if("]" == name.charAt(j) && e==0){
e=j;
}
}
var new_name = name.substring(s+1,e);
$this.attr("name",name.replace(new_name,i));
}
if((name.indexOf("serilNo") >= 0)){
$this.val(i+1);
}
}
if(id && "" != id && typeof(id) != "undefined"){
if (id.indexOf("_[#num#]") >= 0){
$this.attr("id",id.replace('_[#num#]','['+i+']'));
}else if(id.indexOf("[")>=0 && id.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=id.length;j < len;j++){
if("[" == id.charAt(j) && s==0){
s=j;
}else if("]" == id.charAt(j) && e==0){
e=j;
}
}
var new_id = id.substring(s+1,e);
$this.attr("id",id.replace(new_id,i));
}
}
if(oncli && "" != oncli && typeof(oncli) != "undefined"){
if (oncli.indexOf("_[#num#]") >= 0){
$this.attr("onclick",oncli.replace('_[#num#]','['+i+']'));
}else if(oncli.indexOf("[")>=0 && oncli.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=oncli.length;j < len;j++){
if("[" == oncli.charAt(j) && s==0){
s=j;
}else if("]" == oncli.charAt(j) && e==0){
e=j;
}
}
var new_oncli = oncli.substring(s+1,e);
$this.attr("onclick",oncli.replace(new_oncli,i));
}
}
if(cl && "" != cl && typeof(cl) != "undefined"){
if (cl.indexOf("_[#num#]") >= 0){
$this.attr("class",cl.replace('_[#num#]','['+i+']'));
}else if(cl.indexOf("[")>=0 && cl.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=cl.length;j < len;j++){
if("[" == cl.charAt(j) && s==0){
s=j;
}else if("]" == cl.charAt(j) && e==0){
e=j;
}
}
var new_cl = cl.substring(s+1,e);
$this.attr("class",cl.replace(new_cl,i));
}
}
if(cl && "" != cl && typeof(cl) != "undefined"){
if (cl.indexOf("#easyui#") >= 0){
$this.attr("class",cl.replace('#easyui#','easyui'));
}
}
});
_count=_count+1;
});
$("#"+target+"_addDelTab").find("#maxParentIndexId").val(_count);
}
/*############### 加减条功能样式定义 end ##################*/
/* ########################## 弹出窗口封装 begin by smx ################################ */
/**
* author:sumingxun
* date:2014-5-4
* des:根据Url弹出新窗口
* @param title 弹出框名称
* @param url 目标页面
* @param callback :一个字符串,可回调多个方法:"test1(); , test2()" 用逗号隔开
* @param zIndex :弹出框的层次 数值类型 默认为1900
* @param winType :窗口类型,不同类型,窗口大小不一样
* @param btnsArray :自定义lhgdialog按钮,是数组类型
* @param dialogId :自定义当前弹窗框的iframe窗口的name -->默认为“winDialogId”
* @param isLock :是否锁定界面 效果和模态对话框相似 {true,false}
* @returns {$.dialog}
*/
var win_dialog ;
function openDialogWin(title,url,callback,zIndex,winType,btnsArray,dialogId,isLock){
if(typeof(btnsArray) == "undefined" || !btnsArray || btnsArray == ""){
btnsArray=[{
name: '返回',
callback: function(){}
}];//默认只提供返回按钮;
}
var _dialogArguments = null;
if(typeof(winType) == "undefined" || !winType || winType == ""){
_dialogArguments= {width:1000,height:500,content:url,dgmax:1,
close:function(){
callBack(callback);
var duration = 600, /*动画时长*/
api = this,
opt = api.config,
wrap = api.DOM.wrap;
wrap.animate({opacity:0}, duration, function(){
opt.close = function(){};
api.close();
});
return false;
},zIndex:1900};
}else if (winType == "bigWin"){
_dialogArguments= {width:1000,height:500,content:url,dgmax:0,
close:function(){
callBack(callback);
var duration = 600, /*动画时长*/
api = this,
opt = api.config,
wrap = api.DOM.wrap,
top = $(window).scrollTop() - wrap[0].offsetHeight;
wrap.animate({top:top+'px',opacity:0}, duration, function(){
opt.close = function(){};
api.close();
});
return false;
},zIndex:2500};
}else if (winType == "normalWin"){
_dialogArguments= {width:800,height:450,content:url,dgmax:0,
close:function(){
callBack(callback);
var duration = 600, /*动画时长*/
api = this,
opt = api.config,
wrap = api.DOM.wrap,
right = $(window).scrollLeft() + wrap[0].offsetWidth,
top = 100;
wrap.css('width',100+'px').css('height',50+'px').animate({top:top + 'px',left:right + 'px',opacity:0}, duration, function(){
opt.close = function(){};
api.close();
});
return false;
},zIndex:2500};
}else if (winType == "smallWin"){
_dialogArguments= {width:600,height:450,content:url,dgmax:0,
close:function(){
callBack(callback);
var duration = 400, /*动画时长*/
api = this,
opt = api.config,
wrap = api.DOM.wrap;
wrap.animate({opacity:0}, duration, function(){
opt.close = function(){};
api.close();
});
return false;
},zIndex:2500};
}
if(typeof(zIndex) == "undefined" || zIndex == ""){
zIndex = _dialogArguments.zIndex;//默认值;
}
var _arguments;
if(dialogId && typeof(dialogId) != "undefined" && dialogId != ""){
_arguments = {
id:dialogId,
title:title,
url:url,
zIndex:zIndex,
button:btnsArray,
btnBar:true,
lock:isLock
};
}else{
_arguments = {
title:title,
url:url,
zIndex:zIndex,
button:btnsArray,
btnBar:true,
lock:isLock
};
}
$.extend(_dialogArguments, _arguments);
if (url.indexOf("html:") == 0) {
_dialogArguments.content = url.substring(5);
} else {
_dialogArguments.content = 'url:'+url;
}
//判断是否最大化显示
if(_dialogArguments.dgmax){
win_dialog = $.dialog(_dialogArguments).max();
}else{
win_dialog = $.dialog(_dialogArguments);
}
}
function closeDialogWin(){
var api = parent.frameElement.api,W = api.opener;
api.close();
}
/**
* 回调
* @param MethodsStr
*/
function callBack(MethodsStr){
if(MethodsStr && "" != MethodsStr && typeof(MethodsStr) != "undefined"){
var methods=MethodsStr.split(",");
for(var i=0;i<methods.length;i++){
eval(methods[i]);
}
}
}
/* ########################## 弹出窗口封装 end ################################ */
/* ####################### tab标签页特殊实现 begin create by smx ######################### */
/**
* 当页面存在,则让用户判断是否重新打开
* @param subtitle
* @param url
* @param closAble
*/
function addTabFromBtn(subtitle, url,tabId, closAble, selectStatus) {
if(typeof(closAble) == "undefined"){
closAble = true;
}
if(typeof(tabId) == "undefined" || tabId== ''){
tabId = "page";
}
var _width = $('#mainPanel').width();
var _height = $('#mainPanel').height();
if (!$('#pub_tabs').tabs('exists', subtitle)) {
$('#pub_tabs').tabs('add',{
title : subtitle,
content : '<iframe name="page" id="'+tabId+'" scrolling="no" frameborder="0" src="'
+ url
+ '" style="width:100%;height:'+_height+'px;"></iframe>',
closable : closAble,
selected :selectStatus
});
}else if("业务操作区" == subtitle) {
$('#pub_tabs').tabs('select', subtitle);
} else {
$('#pub_tabs').tabs('select', subtitle);
var _content = "已存在‘"+subtitle+"’页面,重新加载原页面数据将会丢失,是否重新加载?";
var _yesFun = function(){
$('#pub_tabs').tabs('close', subtitle);
$('#pub_tabs').tabs('add',{
title : subtitle,
content : '<iframe name="page" id="'+tabId+'" scrolling="auto" frameborder="0" src="'
+ url
+ '" style="width:100%;height:100%;"></iframe>',
closable : closAble,
selected: selectStatus
});
}
$.dialog.confirm(_content,_yesFun,null);
}
}
/**
* author:SuMingXun
* 在子窗口上打开一个新父窗口
* @param subtitle
* @param url
*/
function subAddTab(subtitle, url){
parent.window.addTab(subtitle, url);
}
/**
* author:SuMingXun
* 指定某个div,打开窗口页面
* @param subtitle
* @param url
* @param targetPage :打开的目标页面
*/
function addTabToDiv(subtitle, url, targetPage) {
if (!$('#pub_tabs').tabs('exists', subtitle)) {
$('#pub_tabs').tabs('add',{
title : subtitle,
content : '<iframe name="'+targetPage+'" id="'+targetPage+'" scrolling="auto" frameborder="0" src="'
+ url
+ '" style="width:100%;height:100%;"></iframe>',
closable : closAble,
width : $('mainPanel').width() - 10
});
}else{
$('#pub_tabs').tabs('close', subtitle);
addTabToDiv(subtitle, url, targetPage);
}
}
/* ####################### tab标签页特殊实现 end ######################### */
/**
* 统计字符长度
* @param Str
* @returns
* @author ThinkPad User
*/
function getStringLen(Str){
var i,len,code;
if(Str==null || Str==""){
return 0;
}
len = Str.length;
for(i=0; i<Str.length; i++){
code = Str.charCodeAt(i);
if(code > 255){
len ++;
}
}
return len;
}
/**
* 右侧按钮弹出框实现方法
* @param title
* @param url
* @param callback
* @param zIndex
* @param winType
* @param btnsArray
* @param dialogId
*/
function openDivWin(title,url,callback,zIndex,winType,btnsArray,dialogId){
openDialogWin(title,url,callback,zIndex,winType,btnsArray,dialogId);
}
/**
* 电话号码格式校验
*/
function telOrMobileValid(id,errorDesc){
var linkPhoneNo=$("#"+id+"").val();
var b1=true;
var b2=true;
var result='';
if(linkPhoneNo!=null&&linkPhoneNo!=""){
if (!isMobile(linkPhoneNo)){
b1=false;
}
if (!isTel(linkPhoneNo)){
b2=false;
}
if(!(b1||b2)){
result=errorDesc;
}
}
return result;
}
//手机号码
function isMobile(value) {
var validateReg = /^((\+?86)|(\(\+86\)))?1\d{10}$/;
return validateReg.test(value);
}
//电话号码
function isTel(s){
var patrn = /^((\+?86)|(\(\+86\)))?\d{3,4}-\d{7,8}(-\d{3,4})?$/
if (!patrn.exec(s)){
return false;
}
return true;
}
/**
* 去字符串前后空格
* @param str
* @returns
*/
function trim(str){
str = str.replace(/^(\s|\u00A0)+/,'');
for(var i=str.length-1; i>=0; i--){
if(/\S/.test(str.charAt(i))){
str = str.substring(0, i+1);
break;
}
}
return str;
}
/*
* 日期格式化
*/
Date.prototype.format =function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4- RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
};
/**
* 对input必输项动态加载'*'标志
* @param fieldId 当fieldId为空时对所有必输项加载'*'标志
*/
function requiredStyle(fieldId){
if(typeof(fieldId) == "undefined"){
fieldId = "";
}else if(fieldId&&(fieldId.indexOf("#") == -1 && fieldId.indexOf(".") == -1)){
fieldId = "#"+fieldId;
}
$(fieldId+' :input').each(function (){
var requiredStr = $(this).attr("data-options");
if(typeof(requiredStr)!="undefined"&&requiredStr.indexOf("required:true") != -1){
$(this).parent().append('<span style="color: red;">*</span>');
}
});
}
/**
*页面所有输入域不可用(用于查看的操作)
*/
function readOnlyAll(){
$(":input").attr("disabled","true");
$(".l-btn").attr("disabled","true");
// $(":input").attr("style","border:0;border-bottom:1 solid black;background:white;");
}
/**
*页面除removeIds外,其他输入域不可用(常用于编辑的操作)
* @param removeIds “test,test2,test3”可包含了按钮事件的id
* @param btnClickable linkbutton事件是否禁用 ,默认为false,不禁用 (可为空)
*/
function readOnlyExcIds(removeIds,btnClickable){
$(':input').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).attr("disabled","true");
}
});
if(btnClickable && typeof(btnClickable) != "undefined"){
$('.l-btn').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).attr("disabled","true");
}
});
}
}
/**
*针对某一块区域的id,页面除removeIds外,其他输入域为不可用
* @param fieldId 指定某个区域
* @param removeIds“test,test2,test3” (可为空)包括linkbutton的Ids
* @param btnClickable linkbutton事件是否禁用, 默认为false,不禁用(可为空)
*/
function readOnlyById(fieldId,removeIds,btnClickable){
if(fieldId.indexOf("#") == -1 && fieldId.indexOf(".") == -1){
fieldId = "#"+fieldId;
}
if(removeIds && typeof(removeIds) != "undefined"){
$(fieldId+' :input').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).attr("disabled","true");
}
});
//按钮事件控制
if(btnClickable && typeof(btnClickable) != "undefined"){
$(fieldId+' .l-btn').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).attr("disabled","true");
}
});
}
}else{
$(fieldId+' :input').attr("disabled","true");
//按钮事件控制
if(btnClickable && typeof(btnClickable) != "undefined"){
$(".l-btn").attr("disabled","true");
}
}
}
/**
* 只对页面Ids进行不可用设置
* @param leaveIds 数组['test1','test2','test3']
*/
function readOnlyForIds(leaveIds){
$.each(leaveIds,function(n,value){
$("#"+value).attr("disabled","true");
});
}
/**
* 对页面Ids解除不可用设置
* @param leaveIds 数组['test1','test2','test3']
*/
function unReadOnlyForIds(leaveIds){
$.each(leaveIds,function(n,value){
$("#"+value).removeAttr("disabled");
});
}
/**
* 根据id对某块区域解除不可用设置,除removeIds的输入域
* @param fieldId 指定某个区域
* @param removeIds“test,test2,test3” (可为空)包括linkbutton的Ids
* @param btnClickUnable linkbutton事件是否解禁用, 默认为false,不解禁(可为空)
*/
function unReadOnlyByFieldId(fieldId,removeIds,btnClickUnable){
if(fieldId.indexOf("#") == -1 && fieldId.indexOf(".") == -1){
fieldId = "#"+fieldId;
}
if(removeIds && typeof(removeIds) != "undefined"){
$(fieldId+' :input').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).removeAttr("disabled");
}
});
//按钮事件控制
if(btnClickUnable && typeof(btnClickUnable) != "undefined"){
$(fieldId+' .l-btn').each(function () {
if(removeIds.indexOf($(this).attr('id')) == -1){
$(this).removeAttr("disabled");
}
});
}
}else{
$(fieldId+' :input').removeAttr("disabled");
//按钮事件控制
if(btnClickUnable && typeof(btnClickUnable) != "undefined"){
$(".l-btn").removeAttr("disabled");
}
}
}
/* ############################# 页面 查看 编辑 保存 输入域不可用控制 end ######################## */
//############# 查询列表模块---begin--create by smx--####################
/**
* @author
* @requires jQuery
* 将form表单元素的值序列化成对象
* @returns object
*/
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;
};
/**
* 初始化查询列表
* @param datagridId
* @param title
* @param url
* @param columns
* @param params 查询参数
* @param hasPagination //默认有分页,为false表示无分页
* @returns {*|jQuery}
*/
function initDatagrid(datagridId,title,url,columns,params,hasPagination){
if(typeof(hasPagination) == "undefined" ){
hasPagination = true;
}
if(typeof(params) == "undefined" || params == ""){
params = {};
}
var datagrid = $('#'+datagridId).datagrid({
title : title,
url : url,
queryParams: params,
fit : false,
loadMsg : '数据加载中...',
rownumbers : true,
singleSelect : false,
fitColumns : true,
showFooter : true,
columns : [columns],
onLoadSuccess : function(data) {
$("#"+datagridId).datagrid("clearSelections");
},
pagination : hasPagination
});
datagrid.datagrid('getPager').pagination({
beforePageText : '',
afterPageText : '/{pages}',
displayMsg : '{from}-{to}共{total}条',
showPageList : true,
pageList : [ 10, 20, 30 ],
showRefresh : true,
onBeforeRefresh : function(pageNumber, pageSize) {
$(this).pagination('loading');
$(this).pagination('loaded');
}
});
return datagrid;
}
/**
* EasyUI DataGrid根据字段动态合并单元格
* @param tableID 要合并table的id
* @param colList 要合并的列,用逗号分隔(例如:"itemType,department,office");
*/
function mergeCellsByField(tableID,colList){
var ColArray = colList.split(",");
var tTable = $('#'+tableID);
var TableRowCnts=tTable.datagrid("getRows").length;
var tmpA;
var tmpB;
var PerTxt = "";
var CurTxt = "";
var alertStr = "";
for (j = ColArray.length-1;j>=0 ;j-- ) {
PerTxt="";
tmpA=1;
tmpB=0;
for (i=0;i<=TableRowCnts ;i++ ) {
if (i==TableRowCnts) {
CurTxt="";
} else {
CurTxt=tTable.datagrid("getRows")[i][ColArray[j]];
} if (PerTxt==CurTxt) {
tmpA+=1;
} else {
tmpB+=tmpA;
tTable.datagrid('mergeCells',{
index:i-tmpA,
field:ColArray[j],
rowspan:tmpA,
colspan:null
});
tmpA=1;
}
PerTxt=CurTxt;
}
}
}
//############# 查询列表模块---end----####################
function saveForm(formId,url){
$("#"+formId).form("submit", {
url : url,
onSubmit : function() {
$.messager.progress({text:'保存中...'});
},
success : function(data) {
var r = $.parseJSON(data);
if(r.success){
$.messager.progress('close');
$.messager.alert('提示', r.msg, 'info');
var title = $('.tabs-selected').text();
$('#maintabs').tabs('close',title.substring(0, title.length - 2));
}else{
$.messager.progress('close');
$.messager.alert('提示', r.msg, 'info');
}
}
});
}
/**
* ajax中获取的日期格式化
*/
function timeStampToString(time){
var datetime = new Date();
datetime.setTime(time);
var year = datetime.getFullYear();
var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
}
/*###############加减条功能样式定义 begin create by smx ##################*/
/**
*删除一行数据
* @param field this
* @param target 模块名称
* @param preExec 删除前调用其他函数(可用于删除前的数据校验)
* @param callBack 删除后调用其他函数
*/
function delRowEven(field,target,preExec,callBack){
target = target.replace('[','\\[').replace(']','\\]');
var preExecFlag = true;
if(preExec && "" != preExec && typeof(preExec) != "undefined"){
preExecFlag = eval(preExec);
}
if(preExecFlag){
$(field).parent().parent().remove();
resetRowNum(target);
}
if(callBack && "" != callBack && typeof(callBack) != "undefined"){
eval(callBack);
}
}
/**
*增加一行数据
* @param target 模块名称
* @param preExec 增加前调用其他函数(可用于增加前的数据校验)
* @param callBack 增加后调用其他函数(对增加的数据初始化)
* @param autpTipsId 复制行包含autotips复制的模板id,如果是多个用","隔开
* @param autpTipsHtml 用来被替换autotips的内容,如果有多个用“,”隔开,注意模板id和内容位置要一直
*/
function addRowEven(target,preExec,callBack,autpTipsId,autpTipsHtml){
target = target.replace('[','\\[').replace(']','\\]');
var preExecFlag = true;
if(preExec && "" != preExec && typeof(preExec) != "undefined"){
preExecFlag = eval(preExec);
}
if(preExecFlag){
var tr = $("."+target+"_perRowTemp").clone();
var html = tr.html();
if(autpTipsId!=null&&autpTipsId!=""&&autpTipsHtml!=null&&autpTipsHtml!=""){
var arr1 = autpTipsId.split(",");
var arr2 = autpTipsHtml.split(",");
for(var i=0;i<arr1.length;i++){
if(arr1[i]!=null&&arr1[i]!=""&&arr2[i]!=null&&arr2[i]!=""){
html = html.replace(arr2[i],$("#"+arr1[i]).val());
}
}
}
$("#"+target+"_mainRow").append("<tr class='perRow'>"+html+"</tr>");
resetRowNum(target);
}
if(callBack && "" != callBack && typeof(callBack) != "undefined"){
eval(callBack);
}
}
/**
* 下标重置
* @param target模块名称
*/
function resetRowNum(target) {
var _initIndex=$("#"+target+"_addDelTab").find("#initIndex").val();
if(!_initIndex || typeof(_initIndex) == "undefined" || _initIndex == ""){
_initIndex = 0;
}
var _count=-1;
$("#"+target+"_mainRow").find('.perRow').each(function(p){
var i = p + parseInt(_initIndex) ;
$(':input, select ,a', this).each(function(){
var $this = $(this), name = $this.attr('name'),id = $this.attr('id'),cl=$this.attr('class');
if(name && "" != name && typeof(name) != "undefined"){
if (name.indexOf("_[#index#]") >= 0){
$this.attr("name",name.replace('_[#index#]','['+i+']'));
}else if(name.indexOf("[")>=0 && name.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=name.length;j < len;j++){
if("[" == name.charAt(j)){
s=j;
}else if("]" == name.charAt(j)){
e=j;
}
}
var new_name = name.substring(s+1,e);
$this.attr("name",name.replace(new_name,i));
}
if((name.indexOf("serilNo") >= 0)){
$this.val(i+1);
}
}
if(id && "" != id && typeof(id) != "undefined"){
if (id.indexOf("_[#index#]") >= 0){
$this.attr("id",id.replace('_[#index#]','['+i+']'));
}else if(id.indexOf("[")>=0 && id.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=id.length;j < len;j++){
if("[" == id.charAt(j)){
s=j;
}else if("]" == id.charAt(j)){
e=j;
}
}
var new_id = id.substring(s+1,e);
$this.attr("id",id.replace(new_id,i));
}
}
if(cl && "" != cl && typeof(cl) != "undefined"){
if (cl.indexOf("#easyui#") >= 0){
$this.attr("class",cl.replace('#easyui#','easyui'));
}
}
});
_count=_count+1;
});
$("#"+target+"_addDelTab").find("#maxIndexId").val(_count);
}
/*############### 加减条功能样式定义 end ##################*/
/*###############加减条功能样式定义 begin create by smx ##################*/
/**
*删除一行数据
* @param field this
* @param target 模块名称
* @param preExec 删除前调用其他函数(可用于删除前的数据校验)
* @param callBack 删除后调用其他函数
*/
function delParentRowEven(field,target,preExec,callBack){
var preExecFlag = true;
if(preExec && "" != preExec && typeof(preExec) != "undefined"){
preExecFlag = eval(preExec);
}
if(preExecFlag){
$(field).parent().parent().remove();
resetParentRowNum(target);
}
if(callBack && "" != callBack && typeof(callBack) != "undefined"){
eval(callBack);
}
}
/**
*增加一行数据
* @param target 模块名称
* @param preExec 增加前调用其他函数(可用于增加前的数据校验)
* @param callBack 增加后调用其他函数(对增加的数据初始化)
* @param autpTipsId 复制行包含autotips复制的模板id,如果是多个用","隔开
* @param autpTipsHtml 用来被替换autotips的内容,如果有多个用“,”隔开,注意模板id和内容位置要一直
*/
function addParentRowEven(target,preExec,callBack,autpTipsId,autpTipsHtml){
var preExecFlag = true;
if(preExec && "" != preExec && typeof(preExec) != "undefined"){
preExecFlag = eval(preExec);
}
if(preExecFlag){
var tr = $("."+target+"_perParentRowTemp").clone();
var html = tr.html();
if(autpTipsId!=null&&autpTipsId!=""&&autpTipsHtml!=null&&autpTipsHtml!=""){
var arr1 = autpTipsId.split(",");
var arr2 = autpTipsHtml.split(",");
for(var i=0;i<arr1.length;i++){
if(arr1[i]!=null&&arr1[i]!=""&&arr2[i]!=null&&arr2[i]!=""){
html = html.replace(arr2[i],$("#"+arr1[i]).val());
}
}
}
$("#"+target+"_mainParentRow").append("<tr class='perParentRow'>"+html+"</tr>");
resetParentRowNum(target);
}
if(callBack && "" != callBack && typeof(callBack) != "undefined"){
eval(callBack);
}
}
/**
* 下标重置
* @param target模块名称
*/
function resetParentRowNum(target) {
var _initIndex=$("#"+target+"_addDelTab").find("#initParentIndex").val();
if(!_initIndex || typeof(_initIndex) == "undefined" || _initIndex == ""){
_initIndex = 0;
}
var _count=-1;
$("#"+target+"_mainParentRow").find('.perParentRow').each(function(p){
var i = p + parseInt(_initIndex) ;
$(':input, select ,a , table,tr,tbody', this).each(function(){
var $this = $(this), name = $this.attr('name'),id = $this.attr('id'),cl=$this.attr('class'),oncli=$this.attr("onclick");
if(name && "" != name && typeof(name) != "undefined"){
if (name.indexOf("_[#num#]") >= 0){
$this.attr("name",name.replace('_[#num#]','['+i+']'));
}else if(name.indexOf("[")>=0 && name.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=name.length;j < len;j++){
if("[" == name.charAt(j) && s==0){
s=j;
}else if("]" == name.charAt(j) && e==0){
e=j;
}
}
var new_name = name.substring(s+1,e);
$this.attr("name",name.replace(new_name,i));
}
if((name.indexOf("serilNo") >= 0)){
$this.val(i+1);
}
}
if(id && "" != id && typeof(id) != "undefined"){
if (id.indexOf("_[#num#]") >= 0){
$this.attr("id",id.replace('_[#num#]','['+i+']'));
}else if(id.indexOf("[")>=0 && id.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=id.length;j < len;j++){
if("[" == id.charAt(j) && s==0){
s=j;
}else if("]" == id.charAt(j) && e==0){
e=j;
}
}
var new_id = id.substring(s+1,e);
$this.attr("id",id.replace(new_id,i));
}
}
if(oncli && "" != oncli && typeof(oncli) != "undefined"){
if (oncli.indexOf("_[#num#]") >= 0){
$this.attr("onclick",oncli.replace('_[#num#]','['+i+']'));
}else if(oncli.indexOf("[")>=0 && oncli.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=oncli.length;j < len;j++){
if("[" == oncli.charAt(j) && s==0){
s=j;
}else if("]" == oncli.charAt(j) && e==0){
e=j;
}
}
var new_oncli = oncli.substring(s+1,e);
$this.attr("onclick",oncli.replace(new_oncli,i));
}
}
if(cl && "" != cl && typeof(cl) != "undefined"){
if (cl.indexOf("_[#num#]") >= 0){
$this.attr("class",cl.replace('_[#num#]','['+i+']'));
}else if(cl.indexOf("[")>=0 && cl.indexOf("]")>=0){
//name中出现多个的中括号时,取最后一个为有效
var s = 0,e = 0;
for(var j=0,len=cl.length;j < len;j++){
if("[" == cl.charAt(j) && s==0){
s=j;
}else if("]" == cl.charAt(j) && e==0){
e=j;
}
}
var new_cl = cl.substring(s+1,e);
$this.attr("class",cl.replace(new_cl,i));
}
}
if(cl && "" != cl && typeof(cl) != "undefined"){
if (cl.indexOf("#easyui#") >= 0){
$this.attr("class",cl.replace('#easyui#','easyui'));
}
}
});
_count=_count+1;
});
$("#"+target+"_addDelTab").find("#maxParentIndexId").val(_count);
}
/*############### 加减条功能样式定义 end ##################*/
/* ########################## 弹出窗口封装 begin by smx ################################ */
/**
* author:sumingxun
* date:2014-5-4
* des:根据Url弹出新窗口
* @param title 弹出框名称
* @param url 目标页面
* @param callback :一个字符串,可回调多个方法:"test1(); , test2()" 用逗号隔开
* @param zIndex :弹出框的层次 数值类型 默认为1900
* @param winType :窗口类型,不同类型,窗口大小不一样
* @param btnsArray :自定义lhgdialog按钮,是数组类型
* @param dialogId :自定义当前弹窗框的iframe窗口的name -->默认为“winDialogId”
* @param isLock :是否锁定界面 效果和模态对话框相似 {true,false}
* @returns {$.dialog}
*/
var win_dialog ;
function openDialogWin(title,url,callback,zIndex,winType,btnsArray,dialogId,isLock){
if(typeof(btnsArray) == "undefined" || !btnsArray || btnsArray == ""){
btnsArray=[{
name: '返回',
callback: function(){}
}];//默认只提供返回按钮;
}
var _dialogArguments = null;
if(typeof(winType) == "undefined" || !winType || winType == ""){
_dialogArguments= {width:1000,height:500,content:url,dgmax:1,
close:function(){
callBack(callback);
var duration = 600, /*动画时长*/
api = this,
opt = api.config,
wrap = api.DOM.wrap;
wrap.animate({opacity:0}, duration, function(){
opt.close = function(){};
api.close();
});
return false;
},zIndex:1900};
}else if (winType == "bigWin"){
_dialogArguments= {width:1000,height:500,content:url,dgmax:0,
close:function(){
callBack(callback);
var duration = 600, /*动画时长*/
api = this,
opt = api.config,
wrap = api.DOM.wrap,
top = $(window).scrollTop() - wrap[0].offsetHeight;
wrap.animate({top:top+'px',opacity:0}, duration, function(){
opt.close = function(){};
api.close();
});
return false;
},zIndex:2500};
}else if (winType == "normalWin"){
_dialogArguments= {width:800,height:450,content:url,dgmax:0,
close:function(){
callBack(callback);
var duration = 600, /*动画时长*/
api = this,
opt = api.config,
wrap = api.DOM.wrap,
right = $(window).scrollLeft() + wrap[0].offsetWidth,
top = 100;
wrap.css('width',100+'px').css('height',50+'px').animate({top:top + 'px',left:right + 'px',opacity:0}, duration, function(){
opt.close = function(){};
api.close();
});
return false;
},zIndex:2500};
}else if (winType == "smallWin"){
_dialogArguments= {width:600,height:450,content:url,dgmax:0,
close:function(){
callBack(callback);
var duration = 400, /*动画时长*/
api = this,
opt = api.config,
wrap = api.DOM.wrap;
wrap.animate({opacity:0}, duration, function(){
opt.close = function(){};
api.close();
});
return false;
},zIndex:2500};
}
if(typeof(zIndex) == "undefined" || zIndex == ""){
zIndex = _dialogArguments.zIndex;//默认值;
}
var _arguments;
if(dialogId && typeof(dialogId) != "undefined" && dialogId != ""){
_arguments = {
id:dialogId,
title:title,
url:url,
zIndex:zIndex,
button:btnsArray,
btnBar:true,
lock:isLock
};
}else{
_arguments = {
title:title,
url:url,
zIndex:zIndex,
button:btnsArray,
btnBar:true,
lock:isLock
};
}
$.extend(_dialogArguments, _arguments);
if (url.indexOf("html:") == 0) {
_dialogArguments.content = url.substring(5);
} else {
_dialogArguments.content = 'url:'+url;
}
//判断是否最大化显示
if(_dialogArguments.dgmax){
win_dialog = $.dialog(_dialogArguments).max();
}else{
win_dialog = $.dialog(_dialogArguments);
}
}
function closeDialogWin(){
var api = parent.frameElement.api,W = api.opener;
api.close();
}
/**
* 回调
* @param MethodsStr
*/
function callBack(MethodsStr){
if(MethodsStr && "" != MethodsStr && typeof(MethodsStr) != "undefined"){
var methods=MethodsStr.split(",");
for(var i=0;i<methods.length;i++){
eval(methods[i]);
}
}
}
/* ########################## 弹出窗口封装 end ################################ */
/* ####################### tab标签页特殊实现 begin create by smx ######################### */
/**
* 当页面存在,则让用户判断是否重新打开
* @param subtitle
* @param url
* @param closAble
*/
function addTabFromBtn(subtitle, url,tabId, closAble, selectStatus) {
if(typeof(closAble) == "undefined"){
closAble = true;
}
if(typeof(tabId) == "undefined" || tabId== ''){
tabId = "page";
}
var _width = $('#mainPanel').width();
var _height = $('#mainPanel').height();
if (!$('#pub_tabs').tabs('exists', subtitle)) {
$('#pub_tabs').tabs('add',{
title : subtitle,
content : '<iframe name="page" id="'+tabId+'" scrolling="no" frameborder="0" src="'
+ url
+ '" style="width:100%;height:'+_height+'px;"></iframe>',
closable : closAble,
selected :selectStatus
});
}else if("业务操作区" == subtitle) {
$('#pub_tabs').tabs('select', subtitle);
} else {
$('#pub_tabs').tabs('select', subtitle);
var _content = "已存在‘"+subtitle+"’页面,重新加载原页面数据将会丢失,是否重新加载?";
var _yesFun = function(){
$('#pub_tabs').tabs('close', subtitle);
$('#pub_tabs').tabs('add',{
title : subtitle,
content : '<iframe name="page" id="'+tabId+'" scrolling="auto" frameborder="0" src="'
+ url
+ '" style="width:100%;height:100%;"></iframe>',
closable : closAble,
selected: selectStatus
});
}
$.dialog.confirm(_content,_yesFun,null);
}
}
/**
* author:SuMingXun
* 在子窗口上打开一个新父窗口
* @param subtitle
* @param url
*/
function subAddTab(subtitle, url){
parent.window.addTab(subtitle, url);
}
/**
* author:SuMingXun
* 指定某个div,打开窗口页面
* @param subtitle
* @param url
* @param targetPage :打开的目标页面
*/
function addTabToDiv(subtitle, url, targetPage) {
if (!$('#pub_tabs').tabs('exists', subtitle)) {
$('#pub_tabs').tabs('add',{
title : subtitle,
content : '<iframe name="'+targetPage+'" id="'+targetPage+'" scrolling="auto" frameborder="0" src="'
+ url
+ '" style="width:100%;height:100%;"></iframe>',
closable : closAble,
width : $('mainPanel').width() - 10
});
}else{
$('#pub_tabs').tabs('close', subtitle);
addTabToDiv(subtitle, url, targetPage);
}
}
/* ####################### tab标签页特殊实现 end ######################### */
/**
* 统计字符长度
* @param Str
* @returns
* @author ThinkPad User
*/
function getStringLen(Str){
var i,len,code;
if(Str==null || Str==""){
return 0;
}
len = Str.length;
for(i=0; i<Str.length; i++){
code = Str.charCodeAt(i);
if(code > 255){
len ++;
}
}
return len;
}
/**
* 右侧按钮弹出框实现方法
* @param title
* @param url
* @param callback
* @param zIndex
* @param winType
* @param btnsArray
* @param dialogId
*/
function openDivWin(title,url,callback,zIndex,winType,btnsArray,dialogId){
openDialogWin(title,url,callback,zIndex,winType,btnsArray,dialogId);
}
/**
* 电话号码格式校验
*/
function telOrMobileValid(id,errorDesc){
var linkPhoneNo=$("#"+id+"").val();
var b1=true;
var b2=true;
var result='';
if(linkPhoneNo!=null&&linkPhoneNo!=""){
if (!isMobile(linkPhoneNo)){
b1=false;
}
if (!isTel(linkPhoneNo)){
b2=false;
}
if(!(b1||b2)){
result=errorDesc;
}
}
return result;
}
//手机号码
function isMobile(value) {
var validateReg = /^((\+?86)|(\(\+86\)))?1\d{10}$/;
return validateReg.test(value);
}
//电话号码
function isTel(s){
var patrn = /^((\+?86)|(\(\+86\)))?\d{3,4}-\d{7,8}(-\d{3,4})?$/
if (!patrn.exec(s)){
return false;
}
return true;
}
/**
* 去字符串前后空格
* @param str
* @returns
*/
function trim(str){
str = str.replace(/^(\s|\u00A0)+/,'');
for(var i=str.length-1; i>=0; i--){
if(/\S/.test(str.charAt(i))){
str = str.substring(0, i+1);
break;
}
}
return str;
}
/*
* 日期格式化
*/
Date.prototype.format =function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4- RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
};
/**
* 对input必输项动态加载'*'标志
* @param fieldId 当fieldId为空时对所有必输项加载'*'标志
*/
function requiredStyle(fieldId){
if(typeof(fieldId) == "undefined"){
fieldId = "";
}else if(fieldId&&(fieldId.indexOf("#") == -1 && fieldId.indexOf(".") == -1)){
fieldId = "#"+fieldId;
}
$(fieldId+' :input').each(function (){
var requiredStr = $(this).attr("data-options");
if(typeof(requiredStr)!="undefined"&&requiredStr.indexOf("required:true") != -1){
$(this).parent().append('<span style="color: red;">*</span>');
}
});
}