445 lines
14 KiB
JavaScript
Executable File
445 lines
14 KiB
JavaScript
Executable File
var WST = WST?WST:{};
|
||
WST.wxv = '1.0_0825';
|
||
WST.toJson = function(str,notLimit){
|
||
var json = {};
|
||
if(str){
|
||
try{
|
||
if(typeof(str )=="object"){
|
||
json = str;
|
||
}else{
|
||
json = eval("("+str+")");
|
||
}
|
||
if(!notLimit){
|
||
if(json.status && json.status=='-999'){
|
||
WST.inLogin();
|
||
}
|
||
}
|
||
}catch(e){
|
||
alert("系统发生错误:"+e.getMessage);
|
||
json = {};
|
||
}
|
||
return json;
|
||
}else{
|
||
return;
|
||
}
|
||
}
|
||
//登录
|
||
WST.inLogin = function(){
|
||
var urla = window.location.href;
|
||
$.post(WST.U('wechat/index/sessionAddress'),{url:urla},function(data,textStatus){});
|
||
var urls = escape(document.location.protocol+'//'+window.location.host+WST.U('wechat/users/login','type=1'));
|
||
var url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='+WST.conf.wxAppId+'&redirect_uri='+urls+'&response_type=code&scope=snsapi_userinfo&state='+window.conf.wxAppCode+'#wechat_redirect';
|
||
window.location.href = url;
|
||
}
|
||
//底部的tab
|
||
WST.initFooter = function(tab){
|
||
var homeImage = (tab=='home') ? 'home-active' : 'home';
|
||
var categoryImage = (tab=='category') ? 'category-active' : 'category';
|
||
var cartImage = (tab=='cart') ? 'cart-active' : 'cart';
|
||
var followImage = (tab=='brand') ? 'follow-active' : 'follow';
|
||
var usersImage = (tab=='user') ? 'user-active' : 'user';
|
||
$('#home').append('<span class="icon '+homeImage+'"></span><span class="'+homeImage+'-word">首页</span>');
|
||
$('#category').append('<span class="icon '+categoryImage+'"></span><span class="'+categoryImage+'-word">分类</span>');
|
||
$('#cart').prepend('<span class="icon '+cartImage+'"></span><span class="'+cartImage+'-word">购物车</span>');
|
||
$('#follow').append('<span class="icon '+followImage+'"></span><span class="'+followImage+'-word">关注</span>');
|
||
$('#user').append('<span class="icon '+usersImage+'"></span><span class="'+usersImage+'-word">我的</span>');
|
||
}
|
||
//变换选中框的状态
|
||
WST.changeIconStatus = function (obj, toggle, status){
|
||
if(toggle==1){
|
||
if( obj.attr('class').indexOf('ui-icon-unchecked-s') > -1 ){
|
||
obj.removeClass('ui-icon-unchecked-s').addClass('ui-icon-success-block wst-active');
|
||
}else{
|
||
obj.removeClass('ui-icon-success-block wst-active').addClass('ui-icon-unchecked-s');
|
||
}
|
||
}else if(toggle==2){
|
||
if(status == 'wst-active'){
|
||
obj.removeClass('ui-icon-unchecked-s').addClass('ui-icon-success-block wst-active');
|
||
}else{
|
||
obj.removeClass('ui-icon-success-block wst-active').addClass('ui-icon-unchecked-s');
|
||
}
|
||
}
|
||
}
|
||
WST.changeIptNum = function(diffNum,iptId,id,func){
|
||
var suffix = (id)?"_"+id:"";
|
||
var iptElem = $(iptId+suffix);
|
||
var minVal = parseInt(iptElem.attr('data-min'),10);
|
||
var maxVal = parseInt(iptElem.attr('data-max'),10);
|
||
var num = parseInt(iptElem.val(),10);
|
||
num = num?num:1;
|
||
num = num + diffNum;
|
||
if(maxVal<=num)num=maxVal;
|
||
if(num<=minVal)num=minVal;
|
||
if(num==0)num=1;
|
||
iptElem.val(num);
|
||
if(suffix!='')WST.changeCartGoods(id,num,-1);
|
||
if(func){
|
||
var fn = window[func];
|
||
fn();
|
||
}
|
||
}
|
||
WST.changeCartGoods = function(id,buyNum,isCheck){
|
||
$.post(WST.U('wechat/carts/changeCartGoods'),{id:id,isCheck:isCheck,buyNum:buyNum,rnd:Math.random()},function(data,textStatus){
|
||
var json = WST.toJson(data);
|
||
if(json.status!=1){
|
||
WST.msg(json.msg,'info');
|
||
}
|
||
});
|
||
}
|
||
// 批量修改购物车状态
|
||
WST.batchChangeCartGoods = function(ids,isCheck){
|
||
$.post(WST.U('wechat/carts/batchChangeCartGoods'),{ids:ids,isCheck:isCheck},function(data,textStatus){
|
||
var json = WST.toJson(data);
|
||
if(json.status!=1){
|
||
WST.msg(json.msg,'info');
|
||
}
|
||
});
|
||
}
|
||
//商品主页
|
||
WST.intoGoods = function(id){
|
||
location.href = WST.U('wechat/goods/detail','goodsId='+id);
|
||
};
|
||
//店铺主页
|
||
WST.intoShops = function(id){
|
||
location.href = WST.U('wechat/shops/home','shopId='+id);
|
||
};
|
||
//首页
|
||
WST.intoIndex = function(){
|
||
location.href = WST.U('wechat/index/index');
|
||
};
|
||
//搜索
|
||
WST.searchPage = function(type,state){
|
||
if(state==1){
|
||
$("#wst-"+type+"-search").show();
|
||
}else{
|
||
$("#wst-"+type+"-search").hide();
|
||
}
|
||
};
|
||
WST.search = function(type){
|
||
var data = $('#wst-search').val();
|
||
if(type==1){
|
||
location.href = WST.U('wechat/shops/shopStreet','keyword='+data);//店铺
|
||
}else if(type==0){
|
||
location.href = WST.U('wechat/goods/lists','keyword='+data);//商品
|
||
}else if(type==2){
|
||
var shopId = $('#shopId').val();
|
||
location.href = WST.U('wechat/shops/shopGoodsList','goodsName='+data+'&shopId='+shopId);//店铺商品
|
||
}
|
||
};
|
||
//关注
|
||
WST.favorites = function(sId,type){
|
||
$.post(WST.U('wechat/favorites/add'),{id:sId,type:type},function(data){
|
||
var json = WST.toJson(data);
|
||
if(json.status==1){
|
||
WST.msg(json.msg,'success');
|
||
if(type==1){
|
||
$('#fStatus').html('已关注');
|
||
$('#fBtn').attr('onclick','WST.cancelFavorite('+json.data.fId+',1)');
|
||
$('.j-shopfollow').addClass('follow');
|
||
$('#followNum').html(parseInt($('#followNum').html())+1);
|
||
}else{
|
||
$('.imgfollow').removeClass('nofollow').addClass('follow');
|
||
$('.imgfollow').attr('onclick','WST.cancelFavorite('+json.data.fId+',0)');
|
||
}
|
||
}else{
|
||
WST.msg(json.msg,'info');
|
||
}
|
||
})
|
||
}
|
||
// 取消关注
|
||
WST.cancelFavorite = function(fId,type){
|
||
$.post(WST.U('wechat/favorites/cancel'),{id:fId,type:type},function(data){
|
||
var json = WST.toJson(data);
|
||
if(json.status==1){
|
||
WST.msg(json.msg,'success');
|
||
if(type==1){
|
||
$('#fStatus').html('关注店铺');
|
||
$('#fBtn').attr('onclick','WST.favorites('+$('#shopId').val()+',1)');
|
||
$('.j-shopfollow').removeClass('follow');
|
||
$('#followNum').html(parseInt($('#followNum').html())-1);
|
||
}else{
|
||
$('.imgfollow').removeClass('follow').addClass('nofollow');
|
||
$('.imgfollow').attr('onclick','WST.favorites('+$('#goodsId').val()+',0)');
|
||
}
|
||
}else{
|
||
WST.msg(json.msg,'info');
|
||
}
|
||
});
|
||
}
|
||
WST.userPhoto = function(userPhoto){
|
||
if(userPhoto.substring(0,4)!='http' && userPhoto!=""){
|
||
userPhoto = window.conf.ROOT+"/"+userPhoto;
|
||
}else if(!userPhoto){
|
||
userPhoto = window.conf.ROOT+"/"+window.conf.USER_LOGO;
|
||
}
|
||
return userPhoto;
|
||
}
|
||
//刷新验证码
|
||
WST.getVerify = function(id){
|
||
$(id).attr('src',WST.U('wechat/index/getVerify','rnd='+Math.random()));
|
||
}
|
||
//返回当前页面高度
|
||
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.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.isNumberKey = function(evt){
|
||
var charCode = (evt.which) ? evt.which : event.keyCode;
|
||
if (charCode > 31 && (charCode < 48 || charCode > 57)){
|
||
return false;
|
||
}else{
|
||
return true;
|
||
}
|
||
}
|
||
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;
|
||
}
|
||
//适应图片大小正方形
|
||
WST.imgAdapt = function(name){
|
||
var w = $('.'+name).width();
|
||
$('.'+name).css({"width": w+"px","height": w+"px"});
|
||
$('.'+name+' a').css({"width": w+"px","height": w+"px"});
|
||
$('.'+name+' a img').css({"max-width": w+"px","max-height": w+"px"});
|
||
}
|
||
//显示隐藏
|
||
WST.showHide = function(t,str){
|
||
var s = str.split(',');
|
||
if(t){
|
||
for(var i=0;i<s.length;i++){
|
||
$(s[i]).show();
|
||
}
|
||
}else{
|
||
for(var i=0;i<s.length;i++){
|
||
$(s[i]).hide();
|
||
}
|
||
}
|
||
s = null;
|
||
}
|
||
/**
|
||
* 提示信息
|
||
* @param content 内容
|
||
* @param type info/普通,success/成功,warn/错误
|
||
* @param stayTime 显示时间
|
||
*/
|
||
WST.msg = function(content,type,stayTime){
|
||
if(!stayTime){
|
||
stayTime = '1200';
|
||
}
|
||
var el = $.tips({content:content,type:type,stayTime:stayTime});
|
||
return el;
|
||
}
|
||
//提示对话框
|
||
WST.dialog = function(content,event){
|
||
$("#wst-dialog").html(content);
|
||
$("#wst-event2").attr("onclick","javascript:"+event);
|
||
$("#wst-di-prompt").dialog("show");
|
||
}
|
||
//提示分享对话框
|
||
WST.share = function(){
|
||
$("#wst-di-share").dialog("show");
|
||
}
|
||
/**
|
||
* 隐藏对话框
|
||
* @param event prompt/提示对话框
|
||
* @param event share/提示对话框
|
||
*/
|
||
WST.dialogHide = function(event){
|
||
$("#wst-di-"+event).dialog("hide");
|
||
}
|
||
//加载中
|
||
WST.load = function(content){
|
||
$('#Loadl').css('display','-webkit-box');
|
||
$('#j-Loadl').html(content);
|
||
}
|
||
WST.noload = function(){
|
||
$('#Loadl').css('display','none');
|
||
}
|
||
//滚动到顶部
|
||
WSTrunToTop = function (){
|
||
currentPosition=document.documentElement.scrollTop || document.body.scrollTop;
|
||
currentPosition-=20;
|
||
if(currentPosition>0){
|
||
window.scrollTo(0,currentPosition);
|
||
}
|
||
else{
|
||
window.scrollTo(0,0);
|
||
clearInterval(timer);
|
||
}
|
||
}
|
||
|
||
WST.blank = function(str,defaultVal){
|
||
if(str=='0000-00-00')str = '';
|
||
if(str=='0000-00-00 00:00:00')str = '';
|
||
if(!str)str = '';
|
||
if(typeof(str)=='null')str = '';
|
||
if(typeof(str)=='undefined')str = '';
|
||
if(str=='' && defaultVal)str = defaultVal;
|
||
return str;
|
||
}
|
||
|
||
/**
|
||
* 上传图片
|
||
*/
|
||
WST.upload = function(opts){
|
||
var _opts = {};
|
||
_opts = $.extend(_opts,{auto: true,swf: WST.conf.ROOT +'/plugins/webuploader/Uploader.swf',server:WST.U('wechat/orders/uploadPic')},opts);
|
||
var uploader = WebUploader.create(_opts);
|
||
uploader.on('uploadSuccess', function( file,response ) {
|
||
var json = WST.toJson(response._raw);
|
||
if(_opts.callback)_opts.callback(json,file);
|
||
});
|
||
uploader.on('uploadError', function( file ) {
|
||
if(_opts.uploadError)_opts.uploadError();
|
||
});
|
||
uploader.on( 'uploadProgress', function( file, percentage ) {
|
||
percentage = percentage.toFixed(2)*100;
|
||
if(_opts.progress)_opts.progress(percentage);
|
||
});
|
||
return uploader;
|
||
}
|
||
|
||
//返回键
|
||
function backPrevPage(url){
|
||
window.location.hash = "ready";
|
||
window.location.hash = "ok";
|
||
setTimeout(function(){
|
||
$(window).on('hashchange', function(e) {
|
||
var hashName = window.location.hash.replace('#', '');
|
||
hashName = hashName.split('&');
|
||
if( hashName[0] == 'ready' ){
|
||
location.href = url;
|
||
}
|
||
});
|
||
},50);
|
||
}
|
||
|
||
//图片切换
|
||
WST.replaceImg = function(v,str){
|
||
var vs = v.split('.');
|
||
return v.replace("."+vs[1],str+"."+vs[1]);
|
||
}
|
||
|
||
$(function(){
|
||
echo.init();//图片懒加载
|
||
// 滚动到顶部
|
||
$(window).scroll(function(){
|
||
if( $(window).scrollTop() > 200 ){
|
||
$('#toTop').show();
|
||
}else{
|
||
$('#toTop').hide();
|
||
}
|
||
});
|
||
$('#toTop').on('click', function() {
|
||
timer=setInterval("WSTrunToTop()",1);
|
||
});
|
||
/**
|
||
* 获取WSTMart基础配置
|
||
* @type {object}
|
||
*/
|
||
WST.conf = window.conf;
|
||
/* 基础对象检测 */
|
||
WST.conf || $.error("WSTMart基础配置没有正确加载!");
|
||
/**
|
||
* 解析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<value.length;i++){
|
||
param = value[i].split("=");
|
||
vars[param[0]] = param[1];
|
||
}
|
||
return vars;
|
||
}
|
||
WST.U = 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)){
|
||
url += "?" + $.param(vars);
|
||
}
|
||
//url = url.replace(new RegExp("%2F","gm"),"+");
|
||
url = WST.conf.APP + "/"+url;
|
||
return url;
|
||
}
|
||
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)){
|
||
url += "?" + $.param(vars);
|
||
}
|
||
return WST.conf.APP + "/"+url;
|
||
}
|
||
}); |