var Utils = function() { this.Tools; this.ui; }; Utils = new Utils(); Utils.prototype.Tools = { year:'', month:'', day:'', week:'', time:'', hours:'', minute:'', second:'', weeks:['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], /** * 獲取當前用戶使用的瀏覽器類型 * @returns */ browserVersion:function(){ var explorer = window.navigator.userAgent; if (explorer.indexOf("MSIE") >= 0) {// ie10及以下 var b_version = navigator.appVersion; var version = b_version.split(";"); version = version[1].replace(/[ ]/g, ""); version = version.split('MSIE')[1]; browser = 'IE:' + version; } else if (explorer.indexOf("Firefox") >= 0) {// Firefox browser = 'Firefox'; } else if (explorer.indexOf("Chrome") >= 0) {// Chrome browser = 'Chrome'; } else if (explorer.indexOf("Opera") >= 0) {// Opera browser = 'Opera'; } else if (explorer.indexOf("Safari") >= 0) {// Safari browser = 'Safari'; } else if (explorer.indexOf("Trident/7.0") >= 0) {// IE11 browser = 'IE:10.0以上'; } return borwser; }, strFormatDate : function(param) { var months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Setp','Oct','Nov','Dec']; var weeks=['Mon','Tue','Wed','Thu','Fri','Sat','Sun']; var date=param.split(" "); var browser= new Utils().browserVersion(); if(browser=='Chrome'||browser=='Firefox'||browser=='IE:10.0以上'){ this.year=date[3]; this.month=months[date[1]]; this.day=date[2]; this.time=date[4]; this.week=date[weeks[0]]; return this.year+"年"+this.month+"月"+this.day+"日 "+this.time; }else if(browser=='IE:10'||browser=='IE:9'||browser=='IE:8'){ this.year=date[5]; this.month=months[date[1]]; this.day=date[2]; this.time=date[3]; this.week=date[weeks[0]]; return this.year+"年"+this.month+"月"+this.day+"日 "+this.time; } }, /** * * @param date * @returns {String} */ DateFormatDate:function(date){ this.year=date.getFullYear(); this.month=date.getMonth()+1; this.day=date.getDate(); this.hours=date.getHours(); this.minute=date.getMinutes(); this.second=date.getSeconds(); this.week=date.getDay(); return this.year+"年"+this.month+"月"+this.day+"日 "+this.hours+":"+this.minute+":"+this.second+" 星期"+this.weeks[this.week]; }, /** * 解決瀏覽器地址欄亂碼問題 * @param strParame 參數名稱 * @returns */ formatUrlParam:function(strParame){ var args = new Object(); var query = location.search.substring(1); // Get query string var pairs = query.split("&"); // Break at ampersand for ( var i = 0; i < pairs.length; i++) { var pos = pairs[i].indexOf('='); // Look for "name=value" if (pos == -1) continue; // If not found, skip var argname = pairs[i].substring(0, pos); // Extract the name var value = pairs[i].substring(pos + 1); // Extract the value value = decodeURIComponent(value); // Decode it, if needed args[argname] = value; // Store as a property } return args[strParame]; // Return the object }, /** * 獲取選中復選框的值 * @param checkBoxName checkbox的name * @returns {String} */ multipleChoiceCheckBox:function(checkBoxName){ var content=''; var serids =document.getElementsByName(checkBoxName); for(var i=0;i<serids.length;i++){ if(serids[i].checked){ content+=serids[i].value+","; } } content=content.substr(0,content.length-1); return content; }, /** * 復選框--反選 * @param checkBoxName checkbox的name * @param parentName 控制反選按鈕的id */ reverseFlotationCheckBox:function(checkBoxName,parentName) var bool=$("#"+parentName).attr("checked"); var serids =document.getElementsByName(checkBoxName); if(bool){ for(var i=0;i<serids.length;i++){ serids[i].checked=true; } }else{ for(var i=0;i<serids.length;i++){ serids[i].checked=false; } } }, /** * 復選框--全選 * @param checkBoxName checkbox的name * @param parentName 控制反選按鈕的id */ checkAllCheckBox:function(checkBoxName,parentName){ var serids =document.getElementsByName(checkBoxName); var bool=$("#"+parentName).attr("checked"); if(bool){ for(var i=0;i<serids.length;i++){ serids[i].checked=true; } }else{ for(var i=0;i<serids.length;i++){ serids[i].checked=false; } } }, addOption:function(id,path,defaultValue){ //給select添加選項 $("#"+id).empty(); $.ajax({ url: path, type: "POST", data:'type=gfType', dataType: "json", async: false, success: function(results) { for(var i=0;i<results.length;i++) { if(results[i].id == defaultValue) { html += "<option value='" + results[i].id + "' selected>" + results[i].codename + "</option>"; } else { html += "<option value='" + results[i].id + "'>" + results[i].codename + "</option>"; } } $("#"+id).append(html); }, error: function(e) { YMLib.Tools.showPrompt("!-logo", "系統錯誤!請聯系管理員!", 5000); } }); }, /** *獲取字符串字節數 */ GetStringByteLength:function(val){ var Zhlength=0;// 全角 var Enlength=0;// 半角 for(var i=0;i<val.length;i++){ if(val.substring(i, i + 1).match(/[^\x00-\xff]/ig) != null) Zhlength+=1; else Enlength+=1; } // 返回當前字符串字節長度 return (Zhlength*2)+Enlength; }, //js實現返回頂部 BackToTop:function(){ $("body,html").animate({scrollTop:0},1000); }, /** *復制到粘貼板 */ copyToShearPlate:function(){ $('.content').click(function(){ $(this).select(); }); //設置swf路徑 ZeroClipboard.setMoviePath("ZeroClipboard.swf"); //創建對象 var clip = new ZeroClipboard.Client(); //設置手型 clip.setHandCursor(true); //綁定按鈕(目標對象id) clip.glue('copy_btn'); //復制內容 clip.addEventListener( "mouseOver", function(client) { client.setText($('#content').text()); }); //復制成功后的提示 clip.addEventListener( "complete", function(){ alert("copyed successful"); }); }, /** *判斷是否是正確的url地址 */ IsURL:function(str_url) { var strRegex = "^((https|http|ftp|rtsp|mms)?://)" "?(([0-9a-z_!~*'().= $%-] : )?[0-9a-z_!~*'().= $%-] @)?" //ftp的user@ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 "|" // 允許IP和DOMAIN(域名) "([0-9a-z_!~*'()-] \.)*" // 域名- www. "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二級域名 "[a-z]{2,6})" // first level domain- .com or .museum "(:[0-9]{1,4})?" // 端口- :80 "((/?)|" // a slash isn't required if there is no file name "(/[0-9a-z_!~*'().;?:@= $,%#-] ) /?)$"; var re=new RegExp(strRegex); //re.test() if (re.test(str_url)){ return (true); }else{ return (false); } }, setValueUeditor:function(){ //當editor創建完畢,給editor設置內容 UE.getEditor('solution').ready(function(){ UE.getEditor('solution').setContent(obj.solution); }); } }; Utils.prototype.ui = { /* *拼接表格 * @param source 格式如下: { "qlmc":"橋梁名稱", "qldm":"橋梁代碼", "qlzxzh":"橋梁中心樁號", "qlkjfl":"橋梁跨徑分類", "xzqhbm":"行政區划編碼", "lxmc":"路線名稱", "lxbm":"路線代碼" } * @param tableId 表格id * @param path 請求地址 * */ joinTable:function(source,tableId,path){ field="[[{field: 'ck', checkbox: true},"; var source=data.data; for(var key in source){ field+="{field: '"+key+"', title:'"+source[key]+"', width: 100, align: 'center'},"; } field=field.substr(0,field.length-1); field+="]]"; field = eval(field); $('#'+tableId).datagrid({ border: false, fit: true, fitColumns: true, rownumbers: true, pagination: true, striped: true, singleSelect: false, selectOnCheck: true, checkOnSelect: true, url: path, columns:field }); }, /* *表格自適應高度 * @param tb_div table 所在div的id * @param tableId table id * @param path 請求地址 * */ autoHeight:function(tb_div,tableId,path){ var pageSize=Math.floor($('#'+tb_div).height()/40)-1; $('#'+tableId).datagrid({ fit : true, fitColumns : true, loadMsg : '正在加載數據,請稍候...', url : path, rownumbers : true, autoRowHeight : false, striped : true, pagination : true, pageSize : pageSize, pageList : [ pageSize, pageSize*2, pageSize*3 ], rowStyler:function(index,row){ return "height:50px;line-height:50px"; } }); } } //正則 去除目標對象中的圖片 //return param.replace(/\<img([^>]*)>/gim,""); //去除目標對象的前后空格 //.replace(/^\s+|\s+$/g, '') //郵箱驗證方法 //if(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(value)){ //flag=true; //} //手機號和座機的驗證方法 //if((/^1[3|5|8]\d{9}$/.test(value)) || (/^0\d{2,3}-?\d{7,8}$/.test(value))){ //flag=true; //} //清除指定字符中的html標簽 //describe = datas[i].describe.replace(/<[^>].*?>/g,''); //判斷指定字符串是否包含漢字 //(/[\u4e00-\u9fa5]+/).test(describe) /** * 通過restClient將url轉換成json數據. * * @param url 需要轉換的url * @return 返回json */ //public String parseServiceUri(String url){ //RestClient client = new RestClient(); // HttpServletRequest request=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); // String path = request.getContextPath(); // String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/"; // org.apache.wink.client.Resource resource = client.resource("http://192.168.0.250:6080/"+url); //org.apache.wink.client.Resource resource = client.resource(url); //String response = resource.accept(MediaType.APPLICATION_JSON).get(String.class); //return response; } //參數亂碼 //new String(((String)map.get("name")).getBytes("ISO-8859-1"), "UTF-8")