(function (win, doc, $, UXUN, undefined) { "use strict"; var PublicController = UXUN.extend({ constructor: function PublicController() { //执行父类构造器,实现构造器继承 PublicController._Parent(this, arguments); this.userinfo = UXUN.getUser()||{}; //初始化绑定事件 this.recommendList = _Storage.getItem("recommendList"); this.actionObj=null; //1:首页,2:礼品越换,3:积分应用,4:积分计划,5:我的积分易,6:购物车,7:我的订单,8:帮助中心,9:商户中心,10领券中心 this.index=1; }, init:function(){ pageObject.render('pageInitHeadTpl', {userinfo:{}}, "#pageInitHeadDiv"); pageObject.render('pageInitFooterTpl', {}, "#pageInitFooterDiv"); //初始化底部 UXUN.keyCode(pageObject.eventHandlers.goodsSearch,".search-form input"); pageObject.queryFooter(); //初始化左侧 pageObject.renderSlide(); //初始化实名认证弹框 pageObject.renderVerify(); //初始化为你推荐 pageObject.queryRecommendReq(20); //初始化购物车 pageObject.getShopCar(); //初始化登陆弹出框 pageObject.renderLoginAlert(); //IE8 placeholder added by sulm 20180102 this.ie8placeholder(); }, /*********************事件处理器定义(开始)*****************************/ //添加初始化选中效果 initSelect:function(){ pageObject.selected(); $("dd .pageInitSelectedIndex").on('click',function(){ var thisIndex = $(this).data('index'); _Storage.setItem('pageInitHeadSelectIndex',thisIndex); pageObject.selected(); }); }, selected:function(){ $(".pageInitSelectedIndex").each(function(){ var index = $(this).data('index'); var thisIndex = _Storage.getItem('pageInitHeadSelectIndex')||1; if(thisIndex==index){ $(this).addClass("all"); }else{ $(this).removeClass("all"); } }); }, renderLoginAlert:function(){ $("#memberLoginView").find("#pageInitImgCode").attr("src", getApplication('BASE_EMALLAPP') + "imgcode?" + new Date().getTime()); }, getShopCar:function(){ if(UXUN.isNotNull(pageObject.userinfo)){ this.request({ url: 'getShopCar', success: "getShopCarRsp", error: "getShopCarRsp" }, true); }else{ pageObject.render('pageInitHeadTpl', {userinfo:{}}, "#pageInitHeadDiv"); pageObject.initSelect(); } }, queryFooter:function(){ pageObject.render('pageInitFooterTpl', {}, "#pageInitFooterDiv"); }, queryRecommendReq:function(num,count){ var self = this; count=count||5; if($("#pageInitRecommendList").length===0) return; if(!self.recommendList){ self.request({ url: 'recommend', data:{num:num}, success: "queryRecommendRsp", error: "queryRecommendRsp" }, true); }else{ $(".picScroll-left .bd").html($("#pageInitRecommendListUl")); if(self.recommendList.length>num){ self.recommendList.length = num; } this.render("pageInitRecommendList", {goodsRecommendList:pageObject.recommendList},"#pageInitRecommendListUl"); $(".picScroll-left").slide({titCell:".hd ul",mainCell:".bd ul",autoPage:true,effect:"left",autoPlay:true,scroll:count,vis:count,pnLoop:false}); UXUN.imageLoad('#pageInitRecommendListUl',"images/default.png"); } }, renderSlide:function(){ pageObject.render('pageInitLeftTpl', {}, "#pageInitLeftDiv"); $(".ux-active").parents(".nav-item").find(".nav-toggle").find("span").addClass("c1"); var leftHeight = $(".page-sidebar-wrapper .page-help-sidebar").height(); $(".page-content-wrapper .js_equalLeft").css({"min-height":leftHeight+"px"}); }, renderVerify:function(){ pageObject.render('verifyViewTpl', {}, "#js_realNameBox"); }, /** * 单个商品结算 * price_money:商品现金价格 * goods_price_points:积分价格 * amount:商品数量 * goodstotalmoney:商品现金总价值 * car_price_points:购物车积分价格 * pointsRate:积分兑换比例 * moneyMode:商品类型:1:全现金,2:全积分,3:(混合定价)现金+积分,4:现金+积分抵现 **/ settlement:function(data){ if(!data) return ''; if(data.moneyMode==1){ return { price_money:data.price_money, totalMoney:parseFloat(data.price_money)*data.amount }; } if(data.moneyMode==2){ return { price_points:data.goods_price_points, totalPoints:parseFloat(data.goods_price_points)*data.amount }; } if(data.moneyMode==3){ return { price_money:data.price_money, price_points:data.goods_price_points, totalMoney:parseFloat(data.price_money)*data.amount, totalPoints:parseFloat(data.goods_price_points)*data.amount }; } if(data.moneyMode==4){ data.pointsRate = parseFloat(data.pointsRate); data.car_price_points = parseFloat(data.car_price_points); data.goodstotalmoney = UXUN.format.moneyPC(data.goodstotalmoney); var money = UXUN.format.moneyPC((data.goodstotalmoney-(data.car_price_points/data.pointsRate)*data.amount)/data.amount); return { price_money:money, price_points:data.car_price_points, totalMoney:UXUN.format.moneyPC(money*data.amount), totalPoints:data.car_price_points*data.amount }; } }, loginOut:function(){ this.request({ async:false, url:'loginOut', success:"loginOutRsp", error:"loginOutRsp" },false); }, qurGoodsMarket:function(){ this.request({ async:false, url:'qurGoodsMarket', success:"qurGoodsMarketRsp", error:"qurGoodsMarketRsp" },false); }, /*********************声明式事件定义(开始)*****************************/ events: { 'click .pageInitDeleteShopCar':'deleteShopCar', 'click #pageInitSearchId':'goodsSearch', 'click #pageInitLeftDiv .js_needVerify':'verifyIsRealName', //个人中心左侧弹框 'click .information .js-needLogin':'verifyIsRealName', //个人中心弹框 'click #js_realNameBox #close':'closeRealBox', 'click .ux-head-menu ul a':'jumpPage' }, /*********************声明式事件定义(结束)*****************************/ /*********************事件处理器定义(开始)*****************************/ eventHandlers: { loginOut:function(){ pageObject.loginOut(); }, goodsSearch:function(e,self){ var _input = $(".search-form input"); var value = _input.val(); // var reg = /^[\u4E00-\u9FA5A-Za-z0-9\s\-\x00-\xff]+$/; // var reg = /^[\u4e00-\u9fa5A-Za-z0-9\s]|[^\x00-\xff]+$/; var reg = /^[\u4E00-\u9FA5A-Za-z0-9\s\-]+$/; if(value.length>0&&!reg.test(value)){ UXUN.toast("非法字符,请重新输入"); _input.val(""); return false; } _PluginPage.open(UXUN.getPublicPath()+"view/goods/searchGoods.html?searchname="+value,{searchname:value}); }, deleteShopCar:function(e,self){ this.actionObj = self; var batchGoodsId = self[0].dataset.goodsid; this.request({ url: 'deleteShopCar', data: {batchGoodsId:batchGoodsId}, success: "deleteShopCarRsp", error: "deleteShopCarRsp" }, true); }, verifyIsRealName:function(e,self){ e.preventDefault(); this.verifyPage=$(self).attr("href"); pageObject.request({ url: 'toRealName', success: "toRealNameRsp", error: "toRealNameRsp" }, true,true); }, closeRealBox:function(){ $("#js_realNameBox").removeClass('disable'); }, jumpPage:function(e,self){ _PluginPage.open(UXUN.getPublicPath()+'view/goods/searchGoods.html',{goodsTypeId:self.attr('data-goodsTypeId')}); } }, /*********************事件处理器定义(结束)*****************************/ /*********************request方法回调函数放置的位置定义(开始)*****************************/ requestCallbacks: { // 登录按钮 submitLoginRsp: function (data) { var error = UXUN.isError(data); if (error) { UXUN.toast(error); } else { UXUN.updateUser(data.member); $("#memberLoginView").removeClass('disable'); } }, loginOutRsp:function(data){ // var error = UXUN.isError(data); // if (error) { // UXUN.toast(error); // return false; // } win.pageHeadObject.userinfo = pageObject.userinfo={}; pageObject.init(); }, deleteShopCarRsp:function(data){ var error = UXUN.isError(data); if (error) { UXUN.toast(error); return false; } UXUN.toast("商品移出购物车"); if(win.goodsShopCar) win.goodsShopCar.isUpdate=false; pageObject.getShopCar(); }, //接口回调事件定义位置 queryRecommendRsp:function(data){ var error = UXUN.isError(data); if (error) { this.render("pageInitRecommendList", {},"#pageInitRecommendListUl"); UXUN.toast(error); return false; } var recommendList = data.goodsRecommendList; _Storage.setItem("recommendList",recommendList); //有商品进行查询活动信息 var goodsIdArr = []; $.each(recommendList,function (index,element) { goodsIdArr.push(element.goodsId); }); this.qurGoodsMarket({ "goodsIdStr":goodsIdArr.toString() }); }, //接口回调事件定义位置 getShopCarRsp:function(data){ var error = UXUN.isError(data),self=this; if (error) { pageObject.render('pageInitHeadTpl', {userinfo:pageObject.userinfo}, "#pageInitHeadDiv"); pageObject.initSelect(); return false; } if(win.goodsShopCar&&!win.goodsShopCar.isUpdate){ pageHeadObject.isUpdate = true; goodsShopCar.requestCallbacks.getShopCarRsp(data); } var shopCarAuxiliary = data.shopCarAuxiliarylogin; if(shopCarAuxiliary&&!UXUN.isEmptyObject(shopCarAuxiliary.map)){ pageObject.userinfo.shopCar=shopCarAuxiliary; pageObject.render('pageInitHeadTpl', {userinfo:pageObject.userinfo,pointsRate:data.pointsRate}, "#pageInitHeadDiv"); }else{ pageObject.userinfo.shopCar=""; pageObject.render('pageInitHeadTpl', {userinfo:pageObject.userinfo}, "#pageInitHeadDiv"); } //因为有失效的商品,模板根据数据渲染完成之后,查一次渲染出来的结果,如果没有商品,则隐藏 //added by sulm 20171226 var shopCartObj=$(".cartlist"); if(shopCartObj.length){ if(shopCartObj.find("li").length===0){ var url=UXUN.getPublicPath()+'view/shopcar/shopcar.html'; $(".cartbox").html('
购物车中还没有商品,赶紧选购吧!
') .on("click",".cartshop",function(){ _PluginPage.open(url,null,true); }); } } pageObject.initSelect(); }, //实名认证 toRealNameRsp:function(data){ if(data.retcode!=="1009"){ $("#js_realNameBox").addClass('disable'); }else{ location.href=this.verifyPage; } }, qurGoodsMarketRsp:function(data){ var error = UXUN.isError(data); if (error) { console.log(error); } if(data.retcode === '0000'){ var actList = data.actInfoList; $.each(_Storage.getItem("recommendList"),function (index,item) { for (var i=0;i"+_this.attr("placeholder")+""; if(tp.find("span.placeholder").length) tp.find("span.placeholder").remove(); if(tpPos==="relative" || tpPos==="absolute" || tpPos==="fixed"){ tp.append(s); } else{ tp.css("position","relative").append(s); } if(_this.val() !== ""){ tp.find("span.placeholder").hide(); } else{ tp.find("span.placeholder").show(); } }).on("focus", function(){ $(this).parent().find("span.placeholder").hide(); }).on("blur", function(){ var _this = $(this); if(_this.val() !== ""){ _this.parent().find("span.placeholder").hide(); } else{ _this.parent().find("span.placeholder").show(); } }); // 点击表示placeholder的标签相当于触发input $("span.placeholder").on("click", function(){ $(this).hide(); $(this).siblings("[placeholder]").trigger("click"); $(this).siblings("[placeholder]").trigger("focus"); }); } } /*********************自定义事件处理(结束)*****************************/ }); var pageObject = win.pageHeadObject = new PublicController(); pageObject.init(); }(window, document,$,UXUN));