項目分享之常用js封裝工具util

/* ############################# 頁面 查看 編輯 保存 輸入域只讀控制 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>');
}
});
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章