const util = require('../../utils/util.js'); const api = require('../../config/api.js'); const user = require('../../services/user.js'); //获取应用实例 const app = getApp(); Page({ data: { groupGoods: [], hotGoods: [], topics: [], brands: [], floorGoods: [], banner: [], channel: [], groupBanner: {}, storeName: '', showPop: false, //活动弹窗 couponVo: {}, storeId: '', page: 1, size: 3, list: [], openAttr: false, isMapShow: '', //第三方商户是否启用地图显示 isStartLocation: null, isSystemLocation: null }, onLoad: function(options) { let that = this; // console.log('http://120.76.26.84:80/group1/M00/00/03/rBJEdVv1LDWAAjsfABCztmpupr8780.mp4') // console.log(wx.getFileSystemManager().readFile()) wx.setStorageSync("navUrl", "/pages/index/index"); // options.scene = 148; // options.scene = 93; // options.scene = 38; options.scene = 67; // options.scene = 28; // options.scene = 8; if (options.scene) { // console.log("have scene"); var scene = decodeURIComponent(options.scene); console.log("scene is ", scene); that.setData({ storeId: scene }); wx.setStorageSync('storeId', scene); //扫码进入的小程序则清除是否分享缓存 wx.removeStorageSync('isShare'); } else { //是否分享过商品,有数据则分享过;从首页进入页面则没有分享过,从详情页进入则分享过 if (wx.getStorageSync('isShare') == 'true') { console.log('是分享进入首页门店id:' + wx.getStorageSync('storeId') + ',从商品页获取的缓存') console.log('是分享进入首页:' + wx.getStorageSync('isShare')) } else { //小程序入口进入的主页,则清除storeId,获取当前地址最近的门店 wx.removeStorageSync('storeId'); // console.log('不是分享进入首页门店id:【' + wx.getStorageSync('storeId') + '】,获取最近门店') // console.log('不是分享进入首页:' + wx.getStorageSync('isShare')) } } wx.getLocation({ success: function(location) { // that.successLoadStore(location); }, fail: function() { wx.hideLoading(); wx.getSetting({ success: function(res) { if (!res.authSetting['scope.userLocation']) { wx.showModal({ title: '', content: '检测到您没有开启获取地理位置权限,是否开启', confirmText: '确定', success: function(resConfirm) { if (resConfirm.confirm) { wx.openSetting(); } else { that.setData({ isStartLocation: false }); } } }) } else { //用户已授权,但是获取地理位置失败,提示用户去系统设置中打开定位 wx.showModal({ title: '', content: '请在系统设置中打开定位服务', confirmText: '确定', showCancel: false, success: function(resConfirm2) { that.setData({ isSystemLocation: false }); } }) } } }) } }); }, onReady: function() { // 页面渲染完成 }, onShow: function() { // 页面显示 let that = this; wx.setStorageSync("navUrl", "/pages/index/index"); wx.setStorageSync("isLocationIndex", "false"); //购物车是否已跳转登录页,到首页重置字段为false未跳转 if (!wx.getStorageSync('isRefusedLogin')) { if (wx.getStorageSync('userInfo') && wx.getStorageSync('token')) { console.log('缓存是否授权为空,用户已授权:' + wx.getStorageSync('isRefusedLogin')) wx.setStorageSync('isRefusedLogin', 'false'); } else { console.log('缓存是否授权为空,用户未授权:' + wx.getStorageSync('isRefusedLogin')) wx.setStorageSync('isRefusedLogin', 'true'); //拒绝授权 } } else { console.log('授权不为空:' + wx.getStorageSync('isRefusedLogin')) wx.setStorageSync('isRefusedLogin', wx.getStorageSync('isRefusedLogin')); } that.syncStore(); // if (wx.getStorageSync('userInfo') && wx.getStorageSync('token')) { // } else { // // console.log('拒绝授权:' + wx.getStorageSync('isRefusedLogin')) // if (wx.getStorageSync('isRefusedLogin') != 'true') { // wx.navigateTo({ // url: '/pages/auth/btnAuth/btnAuth', // }) // } // } }, onHide: function() { // 页面隐藏 }, onUnload: function() { // 页面关闭 }, showCouponPop() { let that = this; this.setData({ showPop: false }); // wx.showToast({ // title: '恭喜获取优惠券一张' + that.data.couponVo.name, // duration: 2000 // }); wx.showModal({ title: '获取优惠券一张', showCancel: false, content: that.data.couponVo.name }) }, onShareAppMessage: function() { var that = this; // console.log('分享:' + that.data.storeId) return { title: '中网跨境电商主页', desc: '中网跨境电商主页', path: '/pages/index/index?scene=' + that.data.storeId } }, // 同步门店 syncStore: function() { let that = this; // console.log(wx.getStorageSync('merchSn')); //获取附件门店信息 // util.getLocation((lng, lat) => { wx.getLocation({ success: function(location) { // console.log(location) that.successLoadStore(location); }, fail: function() { wx.hideLoading(); wx.getSetting({ success: function(res) { if (!res.authSetting['scope.userLocation']) { that.setData({ isStartLocation: false }); } else { //用户已授权,但是获取地理位置失败,提示用户去系统设置中打开定位 that.setData({ isSystemLocation: false }); // wx.showModal({ // title: '', // content: '请在系统设置中打开定位服务', // confirmText: '确定', // showCancel: false, // success: function (resConfirm2) { // that.setData({ // isSystemLocation: false // }); // } // }) } } }); } }); }, /** * 打开微信定位 */ openSetLocation: function() { wx.openSetting(); }, /** * 定位确定授权加载附近门店信息 */ successLoadStore: function(location) { let that = this; that.setData({ isStartLocation: true, isSystemLocation: true }); var lng = location.longitude; var lat = location.latitude; wx.setStorageSync('location', JSON.stringify({ lng, lat })); let storeId = wx.getStorageSync('storeId'); util.request(api.NearbyList, { longitude: lng, latitude: lat, storeId: storeId, thirdPartyMerchCode: '' }).then((res) => { let nlist = res.data; // wx.removeStorageSync('nearStoreList'); // wx.removeStorageSync('storeId'); // wx.removeStorageSync('storeVo'); // wx.setStorageSync('storeId', storeId); if (!wx.getStorageSync('currentCategory')) { wx.removeStorageSync('currentCategory'); } if (!nlist.length) { wx.removeStorageSync('nearStoreList'); wx.removeStorageSync('mapIndexStoreId'); } else { wx.setStorageSync('nearStoreList', JSON.stringify(nlist)); wx.setStorageSync('mapIndexStoreId', nlist[0].id); } if (!nlist.length) { // wx.removeStorageSync('storeId'); wx.removeStorageSync('storeVo'); that.setData({ storeName: '附近暂无门店' }) } else { that.setData({ storeName: nlist[0].storeName, storeId: nlist[0].id }) that.checkLoginTokenByUpd(nlist); wx.setStorageSync('storeVo', JSON.stringify(nlist[0])); } }) }, /** * 校验token是否失效,失效则更新新token */ checkLoginTokenByUpd: function (nlist){ var that = this; util.request(api.checkToken, { token: wx.getStorageSync('token'), isRefusedLogin: wx.getStorageSync('isRefusedLogin'), userId: wx.getStorageSync('userId')+'', storeId: parseInt(that.data.storeId) }, 'POST').then(function (res) { if (res.data.errno == 401) { console.log(res.data.errmsg) console.log(wx.getStorageSync('token')) wx.getSetting({ success: (setRes) => { if (setRes.authSetting['scope.userInfo'] == undefined) { wx.setStorageSync('isRefusedLogin', 'true');//未授权 wx.request({ url: api.AuthLoginSaveToken, data: { storeId: that.data.storeId, merchSn: nlist[0].merchSn }, method: 'POST', header: { 'Content-Type': 'application/json', 'isRefusedLogin': wx.getStorageSync('isRefusedLogin') }, success: function (wxRes) { // console.log(wxRes) if (wxRes.data.errno === 0) { //存储用户信息 // wx.setStorageSync('userInfo', wxRes.data.data.userInfo); wx.setStorageSync('token', wxRes.data.data.token); console.log('微信用户未授权,获取一个新的token' + wx.getStorageSync('token')) // wx.setStorageSync('userId', wxRes.data.data.userId); that.chooseStore(nlist[0].id, nlist[0].merchSn); } }, fail: function (err) { console.log("failed"); } }); } else { console.log('微信用户点击授权操作,过了一段时间token失效,更新token') wx.login({ success: function (loginRes) { if (loginRes.code) { //登录远程服务器 wx.request({ url: api.AuthLoginSaveToken, data: { code: loginRes.code, userInfo: wx.getStorageSync('userInfo'), storeId: that.data.storeId, merchSn: nlist[0].merchSn }, method: 'POST', header: { 'Content-Type': 'application/json' }, success: function (wxRes) { // console.log(wxRes) if (wxRes.data.errno === 0) { //存储用户信息 wx.setStorageSync('userInfo', wxRes.data.data.userInfo); wx.setStorageSync('token', wxRes.data.data.token); wx.setStorageSync('userId', wxRes.data.data.userId); wx.setStorageSync('isRefusedLogin', 'false');//允许授权 console.log("登录成功"); that.chooseStore(nlist[0].id, nlist[0].merchSn); } }, fail: function (err) { console.log("failed"); } }); } else { console.log("failed"); } }, fail: function (err) { console.log("failed"); } }); } } }); } else { console.log('token未失效'); // console.log(res) that.chooseStore(nlist[0].id, nlist[0].merchSn); } }); }, // 更新门店Id chooseStore: function(storeId, merchSn) { let that = this; util.request(api.ChooseStoreId, { storeId: storeId, merchSn: merchSn, isRefusedLogin: wx.getStorageSync('isRefusedLogin') }, 'POST').then(function (res) { if (res.errno === 0) { wx.setStorageSync('storeId', storeId); wx.setStorageSync('merchSn', merchSn); console.log(res.data.token) wx.setStorageSync('token', res.data.token); // wx.getSetting({ // success: (setRes) => { // if (setRes.authSetting['scope.userInfo'] == undefined) { // }else{ // wx.setStorageSync('token', res.data.token); // } // } // }); if (wx.getStorageSync('userInfo') && wx.getStorageSync('token')) { that.reLoad(); } else { wx.setStorageSync('isLoadGoods', '0'); //1:代表每次点首页都会重新加载商品,0:否 } that.getIndexData(); that.enableActivity(); that.getGroupData(); } }); }, reLoad: function() { let that = this; // console.log(wx.getStorageSync('userId')); // console.log(wx.getStorageSync('storeId')); // console.log(wx.getStorageSync('merchSn')); if (wx.getStorageSync('storeId')) { if (wx.getStorageSync('userId')) { wx.request({ url: api.updateLoginUser, data: { userId: wx.getStorageSync('userId'), storeId: wx.getStorageSync('storeId'), merchSn: wx.getStorageSync('merchSn') }, method: 'POST', header: { 'Content-Type': 'application/json' }, success: function(wxRes) { if (wxRes.data.errno === 0) { that.setData({ isMapShow: wxRes.data.data.isMapShow }); // console.log(wxRes.data.data.isLoadGoods); wx.setStorageSync('isLoadGoods', wxRes.data.data.isLoadGoods); wx.setStorageSync('thirdPartyMerchCode', wxRes.data.data.thirdPartyMerchCode); // console.log(that.data.isMapShow) // console.log("用户信息更新成功"); } }, fail: function(err) { console.log("failed"); } }); } } }, getIndexData: function() { setTimeout(function() {}, 350) wx.showLoading({ title: '加载中...', }) let that = this; util.request(api.IndexUrl).then(function(res) { if (res.errno === 0) { // console.log(res.data.banner); that.setData({ // newGoods: res.data.newGoodsList, // hotGoods: res.data.hotGoodsList, // topics: res.data.topicList, // brand: res.data.brandList, // floorGoods: res.data.categoryList, banner: res.data.banner, // groupBanner: res.data.groupBanner, channel: res.data.channel }); // console.log(that.data.hotGoods.length) // console.log(wx.getStorageSync('storeId')) // console.log(wx.getStorageSync('mapIndexStoreId')) // if (that.data.hotGoods.length == 0) { // that.getGoodsList(); // } // console.log("mapIndexStoreId:" + wx.getStorageSync('mapIndexStoreId')) // console.log("storeId:" + wx.getStorageSync('storeId')) // console.log("isShare:" + wx.getStorageSync('isShare')) // console.log("isLoadGoods:" + wx.getStorageSync('isLoadGoods')) //当切换了门店地图(mapIndexStoreId),或是由用户分享进入的商品详情切换进入的首页(isShare:true) if (wx.getStorageSync('storeId') != wx.getStorageSync('mapIndexStoreId') || wx.getStorageSync('isShare') == 'true' || that.data.hotGoods.length == 0 || wx.getStorageSync('isLoadGoods') == '1') { that.setData({ hotGoods: [], page: 1 }); that.getGoodsList(); if (wx.getStorageSync('isLoadGoods') == '1') { util.request(api.UpdateStoreLoadGoods, { storeId: wx.getStorageSync('storeId') }).then(function(res) {}); } wx.setStorageSync('isShare', 'false'); } } wx.hideLoading(); }); }, getGoodsList: function() { let that = this; util.request(api.GoodsHot).then(function(res) { if (res.errno == 0) { util.request(api.HotGoodsList, { isHot: 1, page: that.data.page, size: that.data.size, categoryId: 0 }) .then(function(res) { if (res.errno == 0) { let goodsList = that.data.hotGoods.concat(res.data.goodsList); that.setData({ hotGoods: goodsList, list: res.data.goodsList }); } }); wx.hideLoading(); } }); }, getGroupData: function() { let that = this; util.request(api.GroupList).then(function(res) { if (res.errno === 0) { that.setData({ groupGoods: res.data.data, }); } }); }, handleStore() { wx.navigateTo({ url: '../map/map', }) }, goSearch() { wx.navigateTo({ url: '../search/search', }) }, goCatalog: function(e) { let url = ''; // console.log('dataset.goodsBizType:' + e.currentTarget.dataset.goodsBizType); app.globalData.appGoodsBizType = e.currentTarget.dataset.goodsBizType; // console.log('appgoodsBizType1:' + app.globalData.appGoodsBizType); wx.setStorageSync('isSwitchCatalog', 'true'); //主页跳转至分类页加载商品, wx.switchTab({ url: '/pages/catalog/catalog', }); }, onReachBottom: function() { if (this.data.bottomLoadDone === true || this.data.bottomLoading === true) { return false; } this.setData({ bottomLoading: true }); // this.getFloorCategory(); }, //购物车减少 cutNumber: function(e) { let that = this; var goodsId = e.currentTarget.dataset.goodsId; var productId = e.currentTarget.dataset.productId; var hotGoods = that.data.hotGoods; // hotGoods.forEach(function (val, index, arr) { // if (val.product_id == productId) { // val.cart_num = val.cart_num - 1; // if (val.cart_num >= 0) { // hotGoods[index] = val; // } // } // }); // that.setData({ hotGoods: hotGoods }); util.request(api.CartMinus, { goodsId: goodsId, productId: productId, number: 1 }, 'POST').then(function(res) { if (res.errno === 0 && null != res.data) { var hotGoods = that.data.hotGoods; hotGoods.forEach(function(val, index, arr) { if (val.product_id == productId) { val.cart_num = res.data; hotGoods[index] = val; that.setData({ hotGoods: hotGoods }); } }, that); } }); }, //购物车增加 addNumber: function(e) { let that = this; var goodsId = e.currentTarget.dataset.goodsId; var productId = e.currentTarget.dataset.productId; var hotGoods = that.data.hotGoods; // hotGoods.forEach(function (val, index, arr) { // if (val.product_id == productId) { // val.cart_num = val.cart_num + 1; // hotGoods[index] = val; // } // }); // that.setData({ hotGoods: hotGoods }); util.request(api.CartAdd, { goodsId: goodsId, productId: productId, number: 1 }, 'POST').then(function(res) { if (res.errno === 0 && null != res.data) { hotGoods.forEach(function(val, index, arr) { res.data.cartList.forEach(function(cartVal, cartIndex, cartArr) { if (val.product_id == cartVal.product_id) { val.cart_num = cartVal.number; hotGoods[index] = val; } }); that.setData({ hotGoods: hotGoods }); }, that); wx.showToast({ title: '添加成功' }) } else { wx.showToast({ title: res.errmsg, icon: 'none' }) } }); }, // 查询是否有活动 enableActivity: function() { let that = this; let couponIds = wx.getStorageSync('couponIds'); if (!couponIds) { couponIds = new Array(); } // util.request(api.EnableActivity, { couponIds: couponIds }).then(function (res) { // // if (res.errno === 0 && null != res.data.showCoupon) { // // if (couponIds.contains(res.data.showCoupon.id)) { // // return; // // } // // couponIds.push(res.data.showCoupon.id); // // wx.setStorageSync('couponIds', couponIds); // // that.setData({ // // couponVo: res.data.showCoupon, // // showPop: true // // }); // // } else // if (res.errno === 0 && null != res.data.takeCoupon && null != res.data.takeCoupon.id) { // that.setData({ // couponVo: res.data.takeCoupon, // showPop: true // }); // } // }); }, // 商品扫码 scanGoodsCode: function(e) { var that = this; var code; var value; var substrValue; var scanType; // 调起客户端扫码界面进行扫码 wx.scanCode({ // 是否只能从相机扫码 onlyFromCamera: true, // 扫码类型, barCode:一维码, qrCode:二维码 scanType: ['barCode', 'qrCode'], success: function(res) { that.code = "结果:" + res.result + ",路径:" + res.path + ",编码:" + res.rawData; that.value = res.result; that.scanType = res.scanType; that.setData({ goodsCode: that.code }); if (that.scanType == 'QR_CODE') { //二维码 that.substrValue = that.value.substring(0, 5); that.value = that.value.substring(5, that.value.length); // var goodId = that.value.substring(18, that.value.length); var scanArray = that.value.split('&'); // console.log(scanArray.length); if (scanArray.length < 2) { wx.showModal({ title: '', content: '您所扫描的商品无效', showCancel: false }); return; } var goodId = scanArray[0].substring(18, that.value.length); var storeId = scanArray[1].substring(8, that.value.length); // console.log("storeId:" + storeId); // console.log("goodId:" + goodId); if (that.substrValue != 'emato') { //../goods/goods?id=&merchSn= wx.showModal({ title: '', content: '您所扫描的商品无效', showCancel: false, success: function(res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }); return; } if (storeId != wx.getStorageSync('storeId')) { wx.showModal({ title: '扫描结果', content: '该商品不属于当前门店', showCancel: false }); return; } util.request(api.GoodsDetail, { id: goodId, storeId: storeId, referrer: '' }).then(function(res) { if (res.errno === 0) { // console.log(res); // 跳转页面 setTimeout(function() { wx.navigateTo({ url: that.value, success: function(e) { console.log('跳转成功'); }, fail: function(e) { console.log('跳转失败'); } }) }, 350) } else { wx.showModal({ title: '扫描结果', content: '商品不存在', showCancel: false }); } }); } else { //其他码 //弹框显示结果 wx.showModal({ title: '扫描结果', content: that.value, showCancel: false }); } }, fail: function() { // 显示提示框 wx.showToast({ title: '扫码失败', icon: 'none', // 提示的延迟时间 duration: 3000 }) } }) }, imgOnLoad: function(e) { let that = this; // console.log('图片加载完成'); // var realthumb = e.target.dataset.thumb; // let list = that.data.list // for (var i = 0; i < list.length; i++) { // if (list[i].thumb == realthumb) { // list[i].loaded = true // } // that.setData({ // list: list // }) // } }, switchAttrPop: function() { this.setData({ openAttr: !this.data.openAttr }) }, hideSwitchAttrPop: function() { this.setData({ openAttr: false }) }, //购物车增加 addCart: function(e) { let that = this; that.setData({ number: 1 }); var goodsId = e.currentTarget.dataset.goodsId; var retailPrice = e.currentTarget.dataset.retailPrice; util.request(api.GoodsSku, { goodsId: goodsId }).then(function(res) { if (res.errno === 0 && null != res.data) { that.setData({ goodsVo: res.data.goodsVo, specificationList: res.data.specificationList, productList: res.data.productList, openAttr: !that.data.openAttr, retailPrice: retailPrice, stockNum: res.data.stockNum, cartNumber: res.data.cartNumber, checkedSpecText: res.data.specificationList[0].valueList[0].value }); // let _specificationList = res.data.specificationList; for (let i = 0; i < _specificationList.length; i++) { if (_specificationList[i].valueList.length == 1) { //如果已经选中,则反选 _specificationList[i].valueList[0].checked = true; } } that.setData({ 'specificationList': _specificationList }); } }); }, shows: function(e) { // wx.redirectTo({ // url: '/pages/images/images' // }) // wx.navigateTo({ // url: '../ucenter/campMinus/campMinus?campMinusId=' + 9 + '&&storeId=' + 8 + '&&campName=' + '满200减50' + "&&isShare=1" // }) wx.redirectTo({ url: '/pages/checkVideo/checkVideo' }) }, onReachBottom() { var that = this; if (that.data.list.length > 0) { // console.log(that.data.list) wx.showLoading({ title: '加载中...', }) } that.setData({ page: that.data.page + 1 }); that.getGoodsList(); } })