var coreServer = $("#coreServer").val(); var spiServer = $("#spiServer").val(); var isPC = ($(window).width()>768); var globalUserData = ''; var GLOBAL_TOKEN = 'X-Token'; var GLOBAL_USER_ID = 0; var GLOBAL_USER_IDENTITY = 0;//2-会员机构;3-供应商;4-普通机构 var GLOBAL_SHOP_ID = 0; if(localStorage.getItem('userInfo')){ globalUserData = JSON.parse(localStorage.getItem('userInfo')); GLOBAL_TOKEN = globalUserData.token; GLOBAL_USER_ID = globalUserData.userId*1; GLOBAL_USER_IDENTITY = globalUserData.userIdentity*1; GLOBAL_SHOP_ID = globalUserData.shopId*1; if (GLOBAL_USER_ID === 5261 || GLOBAL_USER_ID === 10947 || GLOBAL_USER_ID === 11579) { GLOBAL_USER_IDENTITY = 1; } } else { var pathname = window.location.pathname; var weChatLoginFlag = (Number(getBaseCookie("weChatAutoLogin"))===1 || Number(getBaseCookie("weChatAutoLogin"))===2); if(pathname.indexOf('/product/auth/') === -1 && !weChatLoginFlag ){ var userAgent = navigator.userAgent.toLowerCase(); if (userAgent.match(/MicroMessenger/i)) { // 微信浏览器自动授权登录 var urlForWeChat = 'https://www.caimei365.com/we_chat/redirect_uri.html'; $.get(spiServer+'/user/authorizationLink?mode=1&redirectUri='+urlForWeChat, function(r){ if(r.code===0 && r.data){ setBaseCookie("weChatAutoLogin", 1); setBeforeUrl(); window.location.href = r.data; } }); } } } // 头部 var globalHead = new Vue({ el: '#globalHead', data: { loginStatus: false, userData: {}, classify: [], headCart: { cartList: [], cartCount: 0, productCount: 0, priceTotal: 0 }, shopId:'', userIdentity:'', articleType: '', isFiexd:false, classifyIndex:1, nav_linkName:'' }, methods: { changeClassify: function(value){ this.classifyIndex=value; }, // 初始化分类菜单效果 initClassufyTab: function(){ if(isPC){ setTimeout(function(){ $('#mainClassify').slide({ mainCell:".clsCon", titCell:".clsTab a", trigger: "mouseover" }); $('#mainClassify_1').slide({ mainCell:".tabItem_right", titCell:".tabItem_lift a", trigger: "mouseover" }); $('#mainClassify_2').slide({ mainCell:".tabItem_right", titCell:".tabItem_lift a", trigger: "mouseover" }); $("#mainClassify_2 .tabItem_lift a").eq(0).trigger("mouseover"); $("#mainClassify_1 .tabItem_lift a").eq(0).trigger("mouseover"); },500); }else{ setTimeout(function(){ $('#mainClassify').slide({ mainCell:".clsCon", titCell:".clsTab a", trigger: "click" }); $('#mainClassify_1').slide({ mainCell:".tabItem_right", titCell:".tabItem_lift a", trigger: "click" }); $('#mainClassify_2').slide({ mainCell:".tabItem_right", titCell:".tabItem_lift a", trigger: "click" }); $("#mainClassify_2 .tabItem_lift a").eq(0).trigger("click"); $("#mainClassify_1 .tabItem_lift a").eq(0).trigger("click"); },500); } }, // 头部购物车数据 getHeadCart: function(userId) { var _self = this; tokenAjax("get", "/shoppingCart/header/cart", {userId: userId},function (r) { if (r.code === 0 && r.data) { _self.headCart.cartList = r.data; _self.headCart.cartCount = r.data.length; _self.headCart.productCount = 0; _self.headCart.priceTotal = 0; r.data.map(function(item){ _self.headCart.productCount += item.number; _self.headCart.priceTotal += item.number*item.price; }); }else if(r.code== -99){ CAIMEI.Storage.clear(); location.href = "/login.html"; } }); }, goCartsLinkFn:function(){ var _self = this; if(_self.loginStatus){ window.location.href='/shopping/cart.html'; }else{ window.location.href='/login.html'; } }, productDetailsFn:function(id){ // 跳转详情 window.location.href='/product-'+id+'.html'; }, DeleteCartProducts:function(id){ // 删除购物车 var _self = this; ShoppingApi.DeleteCartProducts({userID: this.userData.userId, productIDs: id},function(response){ if(response.code === 0){ _self.getHeadCart(_self.userData.userId); }else{ CAIMEI.Alert(response.msg,'确定',false); } }); }, pageLinkSupplier: function(){//预览商品 window.open('/supplier-'+this.shopId+'.html'); }, // 退出登录 userLogOut: function(){ localStorage.removeItem('userInfo'); delBaseCookie("loginBeforePath"); this.loginStatus = false; window.location.href = "/index.html"; }, showGlobalMenu: function(){ if(!isPC){ $("#mGlobalMenu").show().find(".cShow").slideDown(500); } }, hideGlobalMenu: function(){ if(!isPC){ $("#mGlobalMenu").hide().find(".cShow").hide(); } } }, created: function () { // 判断登录状态 if (globalUserData.token) { this.loginStatus = true; this.userData = globalUserData; var userId = this.userData.userId; if(userId){ var _self = this; // 获取头部购物车数据 setTimeout(function(){ _self.getHeadCart(userId); }, 1000); } } // 信息中心 this.articleType = getUrlParam("type"); }, mounted:function(){ var _self = this; // 初始化分类菜单效果 this.initClassufyTab(); var userData = JSON.parse(window.localStorage.getItem('userInfo')); if(userData!=null) { this.userIdentity = userData.userIdentity; this.shopId = userData.shopId; } if($(window).width() > 1400){ $(window).on('scroll', function() { var scrollTop = $(this).scrollTop(); if(scrollTop>200){ _self.isFiexd = true; }else{ _self.isFiexd = false; } }) } console.log('hello') _self.nav_linkName = decodeURI(CAIMEI.getUrlParam('name')); if(!_self.nav_linkName || _self.nav_linkName.length === 0 || _self.nav_linkName == "undefined") { var paramsArr = window.location.pathname.split(".")[0].split("-"); if (paramsArr[0].indexOf('/product/type') >= 0) { var pageId = paramsArr.length>=1 ? paramsArr[1] : ''; if (pageId*1 === 287) { _self.nav_linkName = "产品"; } else if (pageId*1 === 286) { _self.nav_linkName = "仪器"; } } else if (paramsArr[0].indexOf('/info/center') >= 0){ _self.nav_linkName = "信息平台"; } else if (paramsArr[0].indexOf('/flea-market') >= 0 && (paramsArr.length>=1 && paramsArr[1].indexOf('market') >= 0)){ _self.nav_linkName = "二手市场"; } else if (paramsArr[0].indexOf('/investment') >= 0){ _self.nav_linkName = "品牌招商"; } else if (paramsArr[0].indexOf('/repair') >= 0){ _self.nav_linkName = "维修"; } } // _self.nav_linkName = window.localStorage.getItem('name'); setTimeout(function(){ $('.navBox li').each(function () { var _thisName = $(this).find('a').text(); if(_self.nav_linkName == _thisName){ $(this).find('a').addClass('on') } }); },500); } }); // 初始化效果 $(function(){ // PC,H5切换时刷新 $(window).resize(function() { var flag = (isPC && $(window).width()<=768) || (!isPC && $(window).width()>768); if(flag){ window.location.reload(); } }); // 导航分类 if(isPC){ jqClickShow(".baseHeadTop .cTab", ".baseHeadTop .cShow"); jqSelect(".jqSelect"); jqHoverShow(".classBtn", "#mainClassify"); }else{ jqMultipleShow("click", ".footLink .list", ".tab", ".con", true); $('body').on('click', '.baseHeadCenter .mClassBtn',function () { $('#mainClassify').show(); fixedBody(); }).on('click', '#mainClassify .close,#mainClassify .mClassBtn',function () { $('#mainClassify').hide(); looseBody(); }).on('click', '#mainClassify',function (e) { e.stopPropagation(); }); } // 登录弹窗 function loginAert(content, btnTxt){ $.confirm({ useBootstrap: false, boxWidth: (isPC?'338px':'74.6vw'), title: false, content:'
'+content+'
', closeIcon: true, animation: 'opacity', closeAnimation: 'opacity', animateFromElement: false, scrollToPreviousElement: false, buttons: { login: { text: btnTxt, btnClass: 'btn-confirm-login', action: function(){ setBeforeUrl(); window.location.href = '/login.html'; } }, close: { text: '取消', btnClass: 'btn-cancel-login' } } }); } // 去登录弹窗 $('body').on("click", '.toLogin',function () { //loginAert('你还未登录请登录后再进行购买', '去登录'); setBeforeUrl(); window.location.href = '/login.html'; }); // 退出登录 $('body').on("click", '.toLogOut',function () { localStorage.removeItem('userInfo'); delBaseCookie("loginBeforePath"); globalHead.loginStatus = false; window.location.href = "/index.html"; }); // 置顶 $('#scrollTop').on("click", '.toTop',function () { $("html,body").animate({scrollTop:0},500); }); // 热线 if(!isPC){ $('#scrollTop').on("click", '.phone',function () { $('#scrollTop').find('.phoneHover').show(); fixedBody(); }).on("click", '.phoneHover div',function (e) { e.stopPropagation(); }).on("click", '.phoneHover,.phoneHover .close',function () { $('#scrollTop').find('.phoneHover').hide(); looseBody(); }); $('body').on("click", '#centerNav .home',function () { if($('#centerNav').find('.home').hasClass("on")){ $('#centerNav').find('.home').removeClass("on"); $('#centerNav').find('.centerBox').slideUp(); looseBody(); }else{ $('#centerNav').find('.home').addClass("on"); $('#centerNav').find('.centerBox').slideDown(); fixedBody(); } }).on("click", '#centerNav .wrap',function (e) { e.stopPropagation(); }).on("click", '#centerNav .centerBox',function () { $('#centerNav').find('.home').removeClass("on"); $('#centerNav').find('.centerBox').slideUp(); looseBody(); }); } // 侧边栏滚动判断 $(window).scroll(function () { if($('body').attr("style") && $('body').attr("style").indexOf('fixed')>0){ return false; } var scoll = Math.max($('html').scrollTop(), $('body').scrollTop()); if(scoll >200){ $('#scrollTop').show(); }else { $('#scrollTop').hide(); } }); // 顶部搜索框 $('#topSearch').on("click", '.searchBtn', function(){ var type = isPC ? $('#topSearch').find('[data-select]').attr("data-select")*1 : $('#topSearch').find('select').val()*1; var keyword = $.trim($('#topSearch').find('.keyword').val()); // 商品 if (keyword.length < 2) { $.confirm({ useBootstrap: false, boxWidth: (isPC?'300px':'70%'), title:'提示', content:'请至少输入两个关键字!', closeIcon: true, animation: 'opacity', closeAnimation: 'opacity', animateFromElement: false, buttons: { close: { text: '确定', btnClass: 'btn-confirm' } } }); return false; } if (type === 0) { window.location.href = '/product/list.html?keyword='+encodeURIComponent(keyword); } else if(type === 1) { // 供应商 window.location.href = '/supplier/list.html?keyword='+encodeURIComponent(keyword); } else if (type === 2) { // 项目仪器 window.location.href = '/equipment/list.html?keyword=' + encodeURIComponent(keyword); } else{ // 文章 window.location.href = '/info/search.html?keyword=' + encodeURIComponent(keyword); } }).on('keyup', '.keyword', function(event) { // 搜索输入框 按回车键搜索 var keyCode = event.keyCode || event.which; if(keyCode === 13){ $(this).parents('#topSearch').find('.searchBtn').trigger("click"); } }).on("click", '.hotKey .word', function(){ // 点击热词 触发搜索 $(this).parents('#topSearch').find('.keyword').val($(this).text()); $(this).parents('#topSearch').find('.searchBtn').trigger("click"); }); // 支付弹框复制标识 $('body').on("click", '.payAlert .copy',function () { var oInput = document.createElement('textarea'); oInput.value = $(this).parents('.payAlert').find('.no').text(); document.body.appendChild(oInput); oInput.select(); // 选择对象 document.execCommand("Copy"); // 执行浏览器复制命令 document.body.removeChild(oInput); CAIMEI.dialog('复制成功'); }); }); /*function uuid() { var s = []; var hexDigits = "0123456789abcdef"; for (var i = 0; i < 36; i++) { s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); } s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010 s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01 s[8] = s[13] = s[18] = s[23] = "-"; return s.join(""); }*/ function setBeforeUrl(){ var baseUrl = window.location.href; var flag = baseUrl.indexOf('/login.html')>0 || baseUrl.indexOf('/register.html')>0 || baseUrl.indexOf('/we_chat/redirect_uri.html')>0; if(!flag){ setBaseCookie("loginBeforePath", baseUrl); } } // 公共方法 function setBaseCookie(cname,cvalue,exdays){ if (exdays) { var d = new Date(); d.setTime(d.getTime()+(exdays*24*60*60*1000)); var expires = "expires="+d.toGMTString(); document.cookie = cname+"="+cvalue+"; path=/; "+expires; } else { document.cookie = cname+"="+cvalue+"; path=/"; } } function getBaseCookie(cname){ if (document.cookie) { var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i'+$(options[i]).text()+''; if($(options[i]).val()===select.val()){ $(this).find("[data-select]").text($(options[i]).text()).attr('data-select',$(options[i]).val()); } } $(this).find("ul").html(list); $(this).find("ul").slideToggle("fast"); }).on("click", selectBox + " li", function(e){ e.stopPropagation(); $(this).parent().prev().attr('data-select',$(this).attr("data-id")).text($(this).text()); $(this).parents("pc").next().val($(this).attr("data-id")); $(this).parent().slideUp("fast"); }).on("click", function(){ $(selectBox).find("ul").slideUp("fast"); }); } //解决移动端滚动穿透 function fixedBody(){ var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; setTimeout(function(){ document.body.style.cssText += 'position:fixed;top:-'+scrollTop+'px;'; },10); } function looseBody() { var body = document.body; body.style.position = ''; var top = body.style.top; document.body.scrollTop = document.documentElement.scrollTop = -parseInt(top); body.style.top = ''; } //url参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = decodeURIComponent(window.location.search).substr(1).match(reg); if (r != null) { return (r[2]) } return null; } function updateUrlParam(params) { var loca = window.location; var baseUrl = loca.origin + loca.pathname + "?"; var query = loca.search.substr(1).toLowerCase(); var queryArr = query.split("&"); var keys = Object.keys(params); if (keys.length > 0) { var obj = {}; for (var i = 0; i < queryArr.length; i++) { queryArr[i] = queryArr[i].split("="); obj[queryArr[i][0]] = queryArr[i][1] } for (var k = 0; k < keys.length; k++) { var name = keys[k]; var value = params[name]; obj[name.toLowerCase()] = value; } var url = baseUrl + JSON.stringify(obj).replace(/["\{\}]/g, "").replace(/\:/g, "=").replace(/\,/g, "&"); return url; } } function tokenAjax(type, url, params, callback, errorBack){ $.ajax({ type: type, url: spiServer + url, xhrFields: { withCredentials: true }, data: params, headers:{ 'Content-Type': type=='post'?'application/x-www-form-urlencoded':'application/json;charset=utf8', 'X-Token':GLOBAL_TOKEN }, success : function (res) { if(res.code === -99){ localStorage.removeItem('userInfo'); delBaseCookie("loginBeforePath"); // window.location.href ='/login.html'; }else{ callback(res); } }, error : function (res) { alertInfo("网络连接超时,请重试!",function (res) { console.log(res) }); } }); } function setSearchProductList(list, userId, callback) {//处理搜索 var productIdArr = []; var resultData = []; list.map(function (item) { resultData.push({ productId: item.productId, name: item.name, image: item.image, unit: item.unit, brandName: item.brandName, priceFlag: item.priceFlag, priceGrade: item.priceGrade, actStatus: 0, priceLoaded: false, beautyActFlag:item.beautyActFlag }); // 0公开价格 1不公开价格 2仅对会员机构公开 if (item.priceFlag !== 1) { productIdArr.push(item.productId) } }); if (userId && userId > 0) { setProductPrice(resultData, productIdArr.join(","), userId, callback); }else { setProductPrice(resultData, productIdArr.join(","), 0, callback); } return resultData; } function setProductPrice(productList, productIds, userId, callback){ $.getJSON(coreServer+"/commodity/price/list",{ userId: userId, productIds: productIds }).done(function (r) { if (r.code === 0 && r.data) { var priceList = r.data; productList.map(function(product){ priceList.map(function(item){ if(product.productId*1 === item.productId){ product.shopId = item.shopId; product.userIdentity = item.userIdentity; product.price = item.price; product.originalPrice = item.originalPrice; product.priceLoaded = true; product.ladderPriceFlag = item.ladderPriceFlag; product.actStatus =item.actStatus; product.promotions =item.promotions; } }); }); } return callback(); }).fail(function(){ return callback(); }) } // 登录后返回登录前页面 function toBeforePath(){ var loginBeforePath = getBaseCookie("loginBeforePath"); if (loginBeforePath && loginBeforePath!='undefined' && loginBeforePath.indexOf('.html')>0) { delBaseCookie("loginBeforePath"); window.location.href = loginBeforePath; } window.location.href = '/index.html'; } function toLogin() {//去登录 setBeforeUrl(); window.location.href = '/login.html'; } function upgrade () { //升级会员 window.location.href=''; } function toLogOut() {//登出 localStorage.removeItem('userInfo'); delBaseCookie("loginBeforePath"); this.loginStatus = false; window.location.href = "/index.html"; } /** * 至少保留两位小数 * 10 => "10.00" * @param {number} num */ function toFloat(num) { var temp = String(num).split('.'); if (temp.length === 1 || temp[1].length < 2) { return Number(num).toFixed(2); }else{ return Number(num); } } /** 表单输入框校验 */ function verifyHandle(obj){ if ($(obj).is(":hidden")) { return false; } var v = $.trim($(obj).val()).replace(/\s+/g,""); var reg = $(obj).attr("rule"); var errorTxt = $(obj).siblings('.errTips').attr("tips"); if ($.trim(v) === '') { if ($(obj).attr("placeholder") && $(obj).attr("placeholder").indexOf("请输入")>=0) { errorTxt = $(obj).attr("placeholder").split("请输入")[1]+'不能为空'; } else { errorTxt = '不能为空'; } setErrorTxt(obj, errorTxt); return false; }else if (typeof reg != "undefined") { reg = new RegExp(reg); if (!reg.test(v)) { setErrorTxt(obj, errorTxt); return false; } } clearErrorTxt(obj); } function setErrorTxt(obj, txt) { $(obj).parent().addClass("error").find('.checked').removeClass("show"); $(obj).siblings('.errTips').text(txt).addClass("show"); } function clearErrorTxt(obj) { $(obj).siblings('.errTips').removeClass("show"); $(obj).parent().removeClass("error").find('.checked').addClass("show"); } // 提交时验证表单 function verifyForm() { $("[needverify]:visible").each(function (index, ele) { if (!$(ele).siblings('.checked').hasClass("show")) { verifyHandle(ele); } }); var len = $('.errTips.show:visible').length; return (len === 0); } // 单个验证表单 function verifyCheack(ele) { if (!$(ele).siblings('.checked').hasClass("show")) { verifyHandle(ele); } var len = $(ele).siblings('.errTips.show:visible').length; return (len === 0); } // 公共信息提示弹框 function alertInfo(txt,callback) { $.confirm({ useBootstrap: false, boxWidth: (isPC?'300px':'70%'), title:'提示', content: txt, closeIcon: true, animation: 'opacity', closeAnimation: 'opacity', animateFromElement: false, buttons: { close: { text: '确定', btnClass: 'btn-confirm', action: function () { callback() } } } }); } //公共吐司 function dialog(txt,callback) { $.confirm({ title: false, content: txt, boxWidth: (isPC?'300px':'70%'), autoClose: 'close|2000', useBootstrap:false, buttons: { close:{ isHidden: true, action: function () { callback() } } } }); } // 加入购物车 function addShoppingCart(userId, productId, count, callback){ tokenAjax("post", "/shoppingCart/addCart", { userID: userId, productID: productId, productCount: count },function (res) { if(res && res.code*1 === 0){ globalHead.getHeadCart(userId); $.confirm({ useBootstrap: false, boxWidth: (isPC?'338px':'74.6vw'), title: false, content:'
商品已成功加入购物车!

当前购物车共'+res.data+'种商品

', closeIcon: true, animation: 'opacity', closeAnimation: 'opacity', animateFromElement: false, scrollToPreviousElement: false, buttons: { login: { text: '去结算', btnClass: 'btn-to-cart', action: function(){ window.location.href = '/shopping/cart.html'; } }, close: { text: '继续购物', btnClass: 'btn-to-goon', action: callback?callback():function(){} } } }); } else { dialog("加入购物车失败!"); } }); }