var WST = WST || {}; WST.v = 'a2.0.2'; WST.checkBrowser = function(){ return { mozilla : /firefox/.test(navigator.userAgent.toLowerCase()), webkit : /webkit/.test(navigator.userAgent.toLowerCase()), opera : /opera/.test(navigator.userAgent.toLowerCase()), msie : /msie/.test(navigator.userAgent.toLowerCase()) } } WST.pageHeight = function(){ if(WST.checkBrowser().msie){ return document.compatMode == "CSS1Compat"? document.documentElement.clientHeight : document.body.clientHeight; }else{ return self.innerHeight; } }; //返回当前页面宽度 WST.pageWidth = function(){ if(WST.checkBrowser().msie){ return document.compatMode == "CSS1Compat"? document.documentElement.clientWidth : document.body.clientWidth; }else{ return self.innerWidth; } }; WST.TreeSelector = function(item,data,rootId,defaultValue){ this._data = data; this._item = item; this._rootId = rootId; if(defaultValue)this.defaultValue = defaultValue; } WST.TreeSelector.prototype.createTree = function(){ var len =this._data.length; for( var i= 0;i 31 && (charCode < 48 || charCode > 57)){ return false; }else{ return true; } } //只能輸入數字和小數點 WST.isNumberdoteKey = function(evt){ var e = evt || window.event; var srcElement = e.srcElement || e.target; var charCode = (evt.which) ? evt.which : event.keyCode; if (charCode > 31 && ((charCode < 48 || charCode > 57) && charCode!=46)){ return false; }else{ if(charCode==46){ var s = srcElement.value; if(s.length==0 || s.indexOf(".")!=-1){ return false; } } return true; } } //只能輸入數字和字母 WST.isNumberCharKey = function(evt){ var e = evt || window.event; var srcElement = e.srcElement || e.target; var charCode = (evt.which) ? evt.which : event.keyCode; if((charCode>=48 && charCode<=57) || (charCode>=65 && charCode<=90) || (charCode>=97 && charCode<=122) || charCode==8){ return true; }else{ return false; } } WST.isChinese = function(obj,isReplace){ var pattern = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/i if(pattern.test(obj.value)){ if(isReplace)obj.value=obj.value.replace(/[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/ig,""); return true; } return false; } Number.prototype.toFixed = function(exponent){ return parseInt(this * Math.pow(10, exponent)+0.5 )/Math.pow(10,exponent); } //用户名判断 (可输入"_",".","@", 数字,字母) WST.isUserName = function(evt){ var evt = evt || window.event; var charCode = (evt.which) ? evt.which : evt.keyCode; if((charCode==95 || charCode==46 || charCode==64) || (charCode>=48 && charCode<=57) || (charCode>=65 && charCode<=90) || (charCode>=97 && charCode<=122) || charCode==8){ return true; }else{ return false; } } WST.isEmail =function(v){ var tel = new RegExp("^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$"); return(tel.test(v)); } //判断是否电话 WST.isTel = function(v){ var tel = new RegExp("^[[0-9]{3}-|\[0-9]{4}-]?(\[0-9]{8}|[0-9]{7})?$"); return(tel.test(v)); } WST.isPhone = function(v){ var tel = new RegExp("^[1][0-9]{10}$"); return(tel.test(v)); } //判断url WST.isUrl = function(str){ if(str==null||str=="") return false; var result=str.match(/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\’:+!]*([^<>\"])*$/); if(result==null)return false; return true; } //比较时间差 WST.getTimeDiff = function(startTime,endTime,diffType){ //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 startTime = startTime.replace(/-/g, "/"); endTime = endTime.replace(/-/g, "/"); //将计算间隔类性字符转换为小写 diffType = diffType.toLowerCase(); var sTime = new Date(startTime); //开始时间 var eTime = new Date(endTime); //结束时间 //作为除数的数字 var divNum = 1; switch (diffType) { case "second": divNum = 1000; break; case "minute": divNum = 1000 * 60; break; case "hour": divNum = 1000 * 3600; break; case "day": divNum = 1000 * 3600 * 24; break; default: break; } return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum)); } /** * 截取字符串 */ WST.cutStr = function (str,len) { if(!str || str=='')return ''; var strlen = 0; var s = ""; for(var i = 0;i < str.length;i++) { if(strlen >= len){ return s + "..."; } if(str.charCodeAt(i) > 128) strlen += 2; else strlen++; s += str.charAt(i); } return s; } WST.checkChks = function(obj,cobj){ $(cobj).each(function(){ $(this)[0].checked = obj.checked; }) } WST.getChks = function(obj){ var ids = []; $(obj).each(function(){ if($(this)[0].checked)ids.push($(this).val()); }); return ids; } WST.showHide = function(t,str){ var s = str.split(','); if(t){ for(var i=0;i-1){ if((s.length - s.indexOf(".")-1)>len){ obj.value = s.substring(0,s.indexOf(".")+len+1); } } s = null; } WST.getParams = function(obj){ var params = {}; var chk = {},s; $(obj).each(function(){ if($(this)[0].type=='hidden' || $(this)[0].type=='number' || $(this)[0].type=='tel' || $(this)[0].type=='password' || $(this)[0].type=='select-one' || $(this)[0].type=='textarea' || $(this)[0].type=='text'){ params[$(this).attr('id')] = $.trim($(this).val()); }else if($(this)[0].type=='radio'){ if($(this).attr('name')){ params[$(this).attr('name')] = $('input[name='+$(this).attr('name')+']:checked').val(); } }else if($(this)[0].type=='checkbox'){ if($(this).attr('name') && !chk[$(this).attr('name')]){ s = []; chk[$(this).attr('name')] = 1; $('input[name='+$(this).attr('name')+']:checked').each(function(){ s.push($(this).val()); }); params[$(this).attr('name')] = s.join(','); } } }); chk=null,s=null; return params; } WST.setValue = function(name, value){ var first = name.substr(0,1), input, i = 0, val; if("#" === first || "." === first){ input = $(name); } else { input = $("[name='" + name + "']"); } if(input.eq(0).is(":radio")) { //单选按钮 input.filter("[value='" + value + "']").each(function(){this.checked = true}); } else if(input.eq(0).is(":checkbox")) { //复选框 if(!$.isArray(value)){ val = new Array(); val[0] = value; } else { val = value; } for(i = 0, len = val.length; i < len; i++){ input.filter("[value='" + val[i] + "']").each(function(){this.checked = true}); } } else { //其他表单选项直接设置值 input.val(value); } } WST.setValues = function(obj){ var input,value,val; for(var key in obj){ if($('#'+key)[0]){ WST.setValue('#'+key,obj[key]); }else if($("[name='" + key + "']")[0]){ WST.setValue(key,obj[key]); } } } $(function(){ /** * 获取WSTMart基础配置 * @type {object} */ WST.conf = window.conf; /* 基础对象检测 */ WST.conf || $.error("WSTMart基础配置没有正确加载!"); if(WST.conf.ROUTES)WST.conf.ROUTES = eval("("+WST.conf.ROUTES+")"); /** * 解析URL * @param {string} url 被解析的URL * @return {object} 解析后的数据 */ WST.parse_url = function(url){ var parse = url.match(/^(?:([a-z]+):\/\/)?([\w-]+(?:\.[\w-]+)+)?(?::(\d+))?([\w-\/]+)?(?:\?((?:\w+=[^#&=\/]*)?(?:&\w+=[^#&=\/]*)*))?(?:#([\w-]+))?$/i); parse || $.error("url格式不正确!"); return { "scheme" : parse[1], "host" : parse[2], "port" : parse[3], "path" : parse[4], "query" : parse[5], "fragment" : parse[6] }; } WST.parse_str = function(str){ var value = str.split("&"), vars = {}, param; for(var i=0;i/g); var tmpv = null; for(var v in vars){ tmpv = '<'+v+'>'; if($.inArray(tmpv,urlparams)>-1){ newUrl = newUrl.replace(tmpv,vars[v]); delete vars[v]; } } tmpv = urlparams = null; if(false !== WST.conf.SUFFIX){ newUrl += "." + WST.conf.SUFFIX; } if($.isPlainObject(vars)){ var tmp = $.param(vars); if(tmp!='')newUrl += "?"+tmp; tmp = null; } //url = url.replace(new RegExp("%2F","gm"),"+"); newUrl = WST.conf.APP + "/"+newUrl; return newUrl; } WST.U0 = function(url, vars){ if(!url || url=='')return ''; var info = this.parse_url(url), path = [], reg; /* 验证info */ info.path || $.error("url格式错误!"); url = info.path; /* 解析URL */ path = url.split("/"); path = [path.pop(), path.pop(), path.pop()].reverse(); path[1] || $.error("WST.U(" + url + ")没有指定控制器"); /* 解析参数 */ if(typeof vars === "string"){ vars = this.parse_str(vars); } /* 解析URL自带的参数 */ info.query && $.extend(vars, this.parse_str(info.query)); if(false !== WST.conf.SUFFIX){ url += "." + WST.conf.SUFFIX; } if($.isPlainObject(vars)){ var tmp = $.param(vars); if(tmp!='')url += "?"+tmp; tmp = null; } //url = url.replace(new RegExp("%2F","gm"),"+"); url = WST.conf.APP + "/"+url; return url; } WST.U = function(url,vars){ if(WST.conf.ROUTES && WST.conf.ROUTES[url]){ return WST.initU(url,vars); }else{ return WST.U0(url, vars); } } WST.AU = function(url, vars){ if(!url || url=='')return ''; var info = this.parse_url(url); url = info.path; path = url.split("/"); url = "addon/"; path = [path.pop(), path.pop()].reverse(); path[0] || $.error("WST.AU(" + url + ")没有指定控制器"); path[1] || $.error("WST.AU(" + url + ")没有指定接口"); url = url + info.scheme + "-" + path.join('-'); /* 解析参数 */ if(typeof vars === "string"){ vars = this.parse_str(vars); } info.query && $.extend(vars, this.parse_str(info.query)); if(false !== WST.conf.SUFFIX){ url += "." + WST.conf.SUFFIX; } if($.isPlainObject(vars)){ var tmp = $.param(vars); if(tmp!='')url += "?"+tmp; tmp = null; } return WST.conf.APP + "/"+url; } }); WST.replaceImg = function(v,str){ var vs = v.split('.'); return v.replace("."+vs[1],str+"."+vs[1]); }