var app = getApp(); var WxParse = require('../../lib/wxParse/wxParse.js'); var util = require('../../utils/util.js'); var api = require('../../config/api.js'); var user = require('../../utils/user.js'); Page({ data: { code:'', goodsCommentCount: '', supplyEvent: {}, plusNum: '0', chooseSkuVisible: false, activeSku: 0, countSalesNumber: '', recGoodsList: [], goodsComment: [], goodsBuyTime: { }, buyToastShow: false, checkedSku: { specifications: [''], id: '', retailPrice: '', counterPrice: '', }, currentSku: { specifications: [''], id: '', retailPrice: '', counterPrice: '', price: '', }, recGoodsNum: '', selfPayCheck: false, spreadPayShow: false, spreadPayChecked: false, canShare: false, id: 0, goods: {}, groupon: [], //该商品支持的团购规格 grouponLink: {}, //参与的团购 attribute: [], issueList: [], comment: [], //brand: {}, specificationList: [], productList: [], relatedGoods: [], cartGoodsCount: 0, userHasCollect: 0, number: 1, checkedSpecText: '规格数量选择', tmpSpecText: '请选择规格数量', checkedSpecPrice: 0, openAttr: false, openShare: false, collect: false, shareImage: '', isGroupon: false, //标识是否是一个参团购买 soldout: false, canWrite: false, //用户是否获取了保存相册的权限 name_height: 58, //根据名称长度 设置高度 userInfo: {}, hasLogin: false, shareId: 0, //options传递过来的参数 表示是打开哪个分享 wxShareId: 0, //如果要分享此商品的分享id addressInfo: {}, rId: 0, //分享人id, selfDiscount: 0, spreadDiscount: 0, referee: { self: 0, share: 0, }, myqr_show: false, //我的分享二维码 myqr_url: null, //分享海报及推广语言 myqr_ads: '', myqr_blur: 100, //背景模糊值 myqr_bottom_btn: 'fixed', //底部功能按钮 fraId: '', //加盟商id addPurchaseAmount: 0, addPurchase: [], serviceId: '', // bookDetail: { // }, minNum: 0, qid: '', //加盟商服务商品的复购id channelId: '' //商城后台 商品渠道二维码过来的 }, // 页面分享 onShareAppMessage: function () { let that = this; if (!app.globalData.hasLogin) { wx.navigateTo({ url: "/pages/auth/login/login" }); return; } //获取分享id 用来追踪链接 //引荐人和非引荐人的 链接不同 let fraId = wx.getStorageSync('fraId'); let imgUrl = that.data.goods.shareWxUrl ? that.data.goods.shareWxUrl : that.data.goods.gallery[0]; var path = '/pages/goods/goods?id=' + that.data.id + '&rId=' + that.data.userInfo.id; if (that.data.userInfo.isDis) { //是引荐人 path = '/pages/goods/goods?id=' + that.data.id + '&shareId=' + that.data.wxShareId; } if (fraId) { path = path + '&fraId=' + fraId; } this.hidePoster(); return { title: that.data.goods.name + "\n" + that.data.myqr_ads, path: path, imageUrl: imgUrl } }, goCustomerService() { //跳转微信客服 console.info('goCustomerService') wx.openCustomerServiceChat({ extInfo: { url: 'https://work.weixin.qq.com/kfid/kfc1fcfae84340d5125' }, corpId: 'ww034f0b524f8ead00', success(res) {}, fail(res) { console.info(res) } }) }, shareFriendOrCircle: function () { if (!app.globalData.hasLogin) { wx.navigateTo({ url: "/pages/auth/login/login" }); return; } //分享 弹出图片 let that = this; wx.removeStorageSync(String(that.data.goods.id)); //取出本地缓存中的分享图 // let sUrl=wx.getStorageSync(String(that.data.goods.id)); // if(sUrl!=null&&sUrl!=""){//获取过的分享图 不需要再次获取 // that.setData({ // myqr_url:sUrl, // myqr_show:true, // myqr_blur:5 // }); // return; // } wx.showLoading({ title: '生成中', }); util.request(api.QrGoodsCodeCreate, { goodsId: that.data.goods.id }).then(function (res) { wx.hideLoading(); if (res.errno == 0) { that.setData({ myqr_url: res.data.imgUrl, myqr_show: true, myqr_blur: 5 }); //保存分享图url到本地缓存 // wx.setStorageSync(String(that.data.goods.id),res.data.imgUrl); } else if (res.errno == 501) { wx.navigateTo({ url: "/pages/auth/login/login" }); } else { wx.showToast({ title: res.errmsg, duration: 5000 }) } }); //var that = this; /*if (this.data.openShare === false) { this.setData({ openShare: !this.data.openShare }); } else { return false; }*/ }, handleSetting: function (e) { var that = this; // console.log(e) if (!e.detail.authSetting['scope.writePhotosAlbum']) { wx.showModal({ title: '警告', content: '不授权无法保存', showCancel: false }) that.setData({ canWrite: false }) } else { wx.showToast({ title: '保存成功' }) that.setData({ canWrite: true }) } }, // 保存分享图 saveShare: function () { let that = this; wx.showLoading({ title: '图片保存中', }); console.log(that.data); wx.downloadFile({ url: that.data.myqr_url, success: function (res) { console.log(res) wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function (res) { wx.hideLoading(); wx.showModal({ title: '存图成功', content: '图片成功保存到相册了,可以分享到朋友圈了', showCancel: false, confirmText: '好的', confirmColor: '#a78845', success: function (res) { if (res.confirm) { console.log('用户点击确定'); that.setData({ myqr_show: false, myqr_blur: 0 }); } } }) }, fail: function (res) { wx.hideLoading(); wx.showModal({ title: '警告', content: '不授权无法保存', showCancel: false }) that.setData({ myqr_show: false, myqr_blur: 0 }); } }) }, fail: function (res) { wx.hideLoading(); console.log(res); } }) }, //从分享的团购进入 getGrouponInfo: function (grouponId) { let that = this; util.request(api.GroupOnJoin, { grouponId: grouponId }).then(function (res) { if (res.errno === 0) { that.setData({ grouponLink: res.data.groupon, id: res.data.goods.id }); //获取商品详情 that.getGoodsInfo(); } }); }, getReferee: function () { let that = this; util.request(api.GoodsDetail, { id: that.data.id, rId: that.data.rId }).then(res => { if (res.errno === 0) { if (res.data.referee.self != null && res.data.referee.self > 0) { res.data.referee.self = res.data.referee.self.toFixed(2); res.data.referee.share = res.data.referee.share.toFixed(2); } that.setData({ referee: res.data.referee }); console.info(res.data.referee) if (JSON.stringify(res.data.referee) == "{}") { that.setData({ referee: { self: 0, share: 0, isReferee: false } }); } //是引荐人 更新userinfo数据(因为如果后台将客户标记为引荐人 此userinfo是取缓存数据 不会更新状态) if (that.data.referee != null && that.data.referee.isReferee) { let userInfo = that.data.userInfo; userInfo.isDis = true; that.setData({ userInfo: userInfo }) wx.setStorageSync('userInfo', userInfo); } } }); }, // 获取商品信息 getGoodsInfo: function () { console.info('1-》getGoodsInfo start'); let that = this; let params = { id: that.data.id, rId: that.data.rId, qid: that.data.qid }; if (this.data.serviceId) { params = { id: that.data.id, rId: that.data.rId, serviceId: that.data.serviceId } } util.request(api.GoodsDetail, params).then(function (res) { console.info('2-》getGoodsInfo end'); console.info(res); if (res.errno === 0) { let _specificationList = res.data.specificationList // 如果仅仅存在一种货品,那么商品页面初始化时默认checked if (_specificationList.length == 1) { if (_specificationList[0].valueList.length == 1) { _specificationList[0].valueList[0].checked = true console.info(res.data.info); // 如果仅仅存在一种货品,那么商品价格应该和货品价格一致 // 这里检测一下 let _productPrice = res.data.productList[0].price; let _goodsPrice = res.data.info.retailPrice; if (_productPrice != _goodsPrice) { console.error('商品数量价格和货品不一致'); } that.setData({ checkedSpecText: _specificationList[0].valueList[0].value, tmpSpecText: '已选择:' + _specificationList[0].valueList[0].value, }); } } console.info('3-》getGoodsInfo count end'); //设置显示名称的控件高度 let height = 56; if (res.data.info.name.length > 17 & res.data.info.name.length < 36) height = 76; else if (res.data.info.name.length >= 36) height = 116; // console.info(res.data.share); let goodsComment = res.data.goodsComment; let list = []; goodsComment.forEach(item => { let obj = item; if (item.commentImgs) { let img = item.commentImgs.split(','); if (img.length >= 1) { obj.commentImg = img[0]; } else { obj.commentImg = '' } } list.push(obj) }); let checkedSku = res.data.productList[0]; // if (res.data.info.type == 4) { // that.setData({ // plusNum: 1, // minNum: 1 // }) // } if(res.data.info.gallery!=null&&res.data.info.gallery!=''){ res.data.info.gallery=res.data.info.gallery.split(','); } that.setData({ goodsCommentCount: res.data.goodsCommentCount, goods: res.data.info, // attribute: res.data.attribute, // issueList: res.data.issue, // comment: res.data.comment, //brand: res.data.brand, specificationList: res.data.specificationList, productList: res.data.productList, //productList: res.data.info.products, userHasCollect: res.data.userHasCollect, shareImage: res.data.shareImage, checkedSpecPrice: res.data.info.retailPrice, // canShare: res.data.share, name_height: height, wxShareId: res.data.shareId, countSalesNumber: res.data.countSalesNumber, recGoodsList: res.data.recGoodsList, recGoodsNum: res.data.recGoodsList.length, goodsComment: list, goodsBuyTime: res.data.goodsBuyTime, checkedSku: checkedSku, currentSku: checkedSku, buyToastShow: true, // plusNum:res.data.info.type==4?1:0 // bookDetail: res.data.bookDetail }); // setTimeout(()=>{ // that.setData({ // buyToastShow:true // }) // },500); // setTimeout(()=>{ // that.setData({ // buyToastShow:false // }) // },3500); if (res.data.userHasCollect == 1) { that.setData({ collect: true }); } else { that.setData({ collect: false }); } WxParse.wxParse('goodsDetail', 'html', res.data.info.detail, that); //获取推荐商品 // that.getGoodsRelated(); } }); }, // 获取推荐商品 getGoodsRelated: function () { let that = this; util.request(api.GoodsRelated, { id: that.data.id, shopId: this.data.addressInfo.shopId }).then(function (res) { if (res.errno === 0) { that.setData({ relatedGoods: res.data.list, }); } }); }, // 团购选择 clickGroupon: function (event) { let that = this; //参与团购,不可更改选择 if (that.data.isGroupon) { return; } let specName = event.currentTarget.dataset.name; let specValueId = event.currentTarget.dataset.valueId; let _grouponList = this.data.groupon; for (let i = 0; i < _grouponList.length; i++) { if (_grouponList[i].id == specValueId) { if (_grouponList[i].checked) { _grouponList[i].checked = false; } else { _grouponList[i].checked = true; } } else { _grouponList[i].checked = false; } } this.setData({ groupon: _grouponList, }); }, // 规格选择 clickSkuValue: function (event) { let that = this; let specName = event.currentTarget.dataset.name; let specValueId = event.currentTarget.dataset.valueId; //判断是否可以点击 //TODO 性能优化,可在wx:for中添加index,可以直接获取点击的属性名和属性值,不用循环 let _specificationList = this.data.specificationList; for (let i = 0; i < _specificationList.length; i++) { if (_specificationList[i].name === specName) { for (let j = 0; j < _specificationList[i].valueList.length; j++) { if (_specificationList[i].valueList[j].id == specValueId) { //如果已经选中,则反选 if (_specificationList[i].valueList[j].checked) { _specificationList[i].valueList[j].checked = false; } else { _specificationList[i].valueList[j].checked = true; } } else { _specificationList[i].valueList[j].checked = false; } } } } this.setData({ specificationList: _specificationList, }); //重新计算spec改变后的信息 this.changeSpecInfo(); //重新计算哪些值不可以点击 }, //获取选中的团购信息 getCheckedGrouponValue: function () { let checkedValues = {}; let _grouponList = this.data.groupon; for (let i = 0; i < _grouponList.length; i++) { if (_grouponList[i].checked) { checkedValues = _grouponList[i]; } } return checkedValues; }, //获取选中的规格信息 getCheckedSpecValue: function () { let checkedValues = []; let _specificationList = this.data.specificationList; for (let i = 0; i < _specificationList.length; i++) { let _checkedObj = { name: _specificationList[i].name, valueId: 0, valueText: '' }; for (let j = 0; j < _specificationList[i].valueList.length; j++) { if (_specificationList[i].valueList[j].checked) { _checkedObj.valueId = _specificationList[i].valueList[j].id; _checkedObj.valueText = _specificationList[i].valueList[j].value; } } checkedValues.push(_checkedObj); } return checkedValues; }, //判断规格是否选择完整 isCheckedAllSpec: function () { return !this.getCheckedSpecValue().some(function (v) { if (v.valueId == 0) { return true; } }); }, getCheckedSpecKey: function () { let checkedValue = this.getCheckedSpecValue().map(function (v) { return v.valueText; }); return checkedValue; }, // 规格改变时,重新计算价格及显示信息 changeSpecInfo: function () { let checkedNameValue = this.getCheckedSpecValue(); //设置选择的信息 let checkedValue = checkedNameValue.filter(function (v) { if (v.valueId != 0) { return true; } else { return false; } }).map(function (v) { return v.valueText; }); if (checkedValue.length > 0) { this.setData({ tmpSpecText: checkedValue.join(' ') }); } else { this.setData({ tmpSpecText: '请选择规格数量' }); } if (this.isCheckedAllSpec()) { this.setData({ checkedSpecText: this.data.tmpSpecText }); // 规格所对应的货品选择以后 let checkedProductArray = this.getCheckedProductItem(this.getCheckedSpecKey()); if (!checkedProductArray || checkedProductArray.length <= 0) { this.setData({ soldout: true }); console.error('规格所对应货品不存在'); return; } let checkedProduct = checkedProductArray[0]; if (checkedProduct.number > 0) { this.setData({ checkedSpecPrice: checkedProduct.price, soldout: false }); } else { this.setData({ checkedSpecPrice: this.data.goods.retailPrice, soldout: true }); } } else { this.setData({ checkedSpecText: '规格数量选择', checkedSpecPrice: this.data.goods.retailPrice, soldout: false }); } }, // 获取选中的产品(根据规格) getCheckedProductItem: function (key) { return this.data.productList.filter(function (v) { if (v.specifications.toString() == key.toString()) { return true; } else { return false; } }); }, async wxloginCode(){ let that =this; await user.login().then(res => { console.info(res) that.setData({ code: res.code }) }); }, async loginByOpenId(){ if (wx.getStorageSync('userInfo') && wx.getStorageSync('token')) { return;//跳过已登录 } let that = this; let r_userid = wx.getStorageSync('r_userid'); if (r_userid == null || r_userid == "") r_userid = 0; await util.request(api.AuthRegister, { code: that.data.code, r_userid: r_userid }).then(function (res) { if (res.errno === 0) { //存储用户信息 app.globalData.hasLogin = true; app.globalData.userInfo=res.data.userInfo; wx.setStorageSync('userInfo', res.data.userInfo); wx.setStorageSync('token', res.data.token); that.getdefalutUserAddress(); } wx.hideLoading(); that.wxloginCode(); }).catch(function (err) { wx.hideLoading(); that.wxloginCode(); }) }, onLoad: async function (options) { console.log(options); await this.wxloginCode(); await this.loginByOpenId(); // if (app.globalData.hasLogin) { // let userInfo = wx.getStorageSync('userInfo'); // app.globalData.userInfo=userInfo; // this.setData({ // userInfo: userInfo, // hasLogin: true // }); // } var scene = decodeURIComponent(options.scene); console.log(scene); let sceneStr = scene.split(';'); if (scene.indexOf('fra') >= 0) { this.setData({ id: sceneStr[0].split(",")[1], serviceId: sceneStr[1].split(",")[1] }); wx.setStorageSync('fraId', sceneStr[2].split(",")[1]); } //如果是id,XXX;chId,XXX表示从商城后台生成的商品渠道二维码过来的; if (scene.indexOf('chId') >= 0) { this.setData({ id: sceneStr[0].split(",")[1], channelId: sceneStr[1].split(",")[1] }); wx.setStorageSync('channelId', this.data.channelId); } //从加盟商商品复购码进入qid,123,456,789 qid 123=分享码id 456是商品id 789加盟商id if (scene.indexOf('qid') >= 0) { let datas = scene.split(","); this.setData({ qid: datas[1], id: datas[2], fraId: datas[3] }); console.info(this.data.qid); console.info(this.data.id); console.info(this.data.fraId); wx.setStorageSync('fraId', this.data.fraId); } // 页面初始化 options为页面跳转所带来的参数 var addressInfo = wx.getStorageSync('addressInfo'); if (addressInfo) { this.setData({ addressInfo: addressInfo }) } if (options.rId) { this.setData({ rId: parseInt(options.rId) }) } if (options.shareId) { this.setData({ shareId: parseInt(options.shareId) }) } if (options.id) { this.setData({ id: parseInt(options.id) }); } if (options.fraId) { wx.setStorageSync('fraId', options.fraId); } //加载客户详情 this.getGoodsInfo(); }, onShow: function () { // 页面显示 if (app.globalData.hasLogin) { let userInfo = wx.getStorageSync('userInfo'); app.globalData.userInfo = userInfo; this.setData({ userInfo: userInfo, hasLogin: true }); } // this.getReferee(); // 已登陆并且是引荐人展示自购推广 if (this.data.hasLogin && this.data.userInfo.isDis) { // this.setData({ // selfDiscount:0, // spreadDiscount:0, // }) } }, //添加或是取消收藏 addCollectOrNot: function () { let that = this; util.request(api.CollectAddOrDelete, { type: 0, valueId: this.data.id }, "POST") .then(function (res) { if (that.data.userHasCollect == 1) { that.setData({ collect: false, userHasCollect: 0 }); } else { that.setData({ collect: true, userHasCollect: 1 }); } }); }, //立即购买(先自动加入购物车)appType=0:先买后约 appType=1:立即预约 addFast: function (event) { let appType = event.currentTarget.dataset.type; var that = this; // 如果是安心包只能购买一个 console.log(this.data.goods); // 如果是中介类,跳转到信息收集页面 // if (this.data.goods.type == 2) { //20230710屏蔽 // app.globalData.infoGoods = { // name: this.data.goods.name, // brief: this.data.goods.brief, // picUrl: this.data.goods.picUrl, // type: this.data.goods.type // }; // wx.navigateTo({ // url: '/pages/goods/infoCollect/infoCollect' // }); // return false; // } // if (this.data.openAttr == false) { // //打开规格选择窗口 // this.setData({ // openAttr: !this.data.openAttr // }); // } else { //提示选择完整规格 // if (!this.isCheckedAllSpec()) { // util.showErrorToast('请选择完整规格'); // return false; // } //根据选中的规格,判断是否有对应的sku信息 // let checkedProductArray = this.getCheckedProductItem(this.getCheckedSpecKey()); // if (!checkedProductArray || checkedProductArray.length <= 0) { // //找不到对应的product信息,提示没有库存 // util.showErrorToast('没有库存'); // return false; // } // let checkedProduct = checkedProductArray[0]; //验证库存 // if (checkedProduct.number <= 0) { // util.showErrorToast('没有库存'); // return false; // } //验证团购是否有效 let checkedGroupon = this.getCheckedGrouponValue(); //如果goodstype=4 补差类商品 加购直接加的是份数 //立即购买 util.request(api.CartFastAdd, { goodsId: this.data.goods.id, number: this.data.number, // productId: checkedProduct.id, productId: this.data.checkedSku.id, shareId: this.data.shareId, unitIncreaseNumber: this.data.plusNum, // bookDetailId: this.data.bookDetail.bookDetailId ? this.data.bookDetail.bookDetailId : null, // originalOrderId: this.data.bookDetail.originalOrderId ? this.data.bookDetail.originalOrderId : null, qId: this.data.qid }, "POST") .then(res => { if (res.errno == 0) { // 如果storage中设置了cartId,则是立即购买,否则是购物车购买 try { wx.setStorageSync('cartId', res.data); wx.setStorageSync('grouponRulesId', checkedGroupon.id); wx.setStorageSync('grouponLinkId', that.data.grouponLink.id); // 支付结果页面展示图片用 app.globalData.infoGoods = { name: this.data.goods.name, brief: this.data.goods.brief, picUrl: this.data.goods.picUrl, type: this.data.goods.type }; //存储客户按钮选择的预约动作 wx.setStorageSync('appType', appType ? appType : ''); if (that.data.shareId > 0) wx.navigateTo({ url: '/pages/checkout/checkout?shareId=' + that.data.shareId }) else wx.navigateTo({ url: '/pages/checkout/checkout' }) } catch (e) { console.info(e) } } else { wx.showToast({ title: res.errmsg, icon: 'none', duration: 3000 }) // util.showErrorToast(res.errmsg); } }); //} }, //添加到购物车 addToCart: function () { var that = this; if (this.data.openAttr == false) { //打开规格选择窗口 this.setData({ openAttr: !this.data.openAttr }); } else { //提示选择完整规格 if (!this.isCheckedAllSpec()) { util.showErrorToast('请选择完整规格'); return false; } //根据选中的规格,判断是否有对应的sku信息 let checkedProductArray = this.getCheckedProductItem(this.getCheckedSpecKey()); // if (!checkedProductArray || checkedProductArray.length <= 0) { // //找不到对应的product信息,提示没有库存 // util.showErrorToast('没有库存'); // return false; // } let checkedProduct = checkedProductArray[0]; //验证库存 // if (checkedProduct.number <= 0) { // util.showErrorToast('没有库存'); // return false; // } //添加到购物车 util.request(api.CartAdd, { goodsId: this.data.goods.id, number: this.data.number, productId: checkedProduct.id }, "POST") .then(function (res) { let _res = res; if (_res.errno == 0) { wx.showToast({ title: '添加成功' }); that.setData({ openAttr: !that.data.openAttr, cartGoodsCount: _res.data }); //显示tab购物车缓存 //user.cartadd(that.data.number); if (that.data.userHasCollect == 1) { that.setData({ collect: true }); } else { that.setData({ collect: false }); } } else { util.showErrorToast(_res.errmsg); } }); } }, cutNumber: function () { this.setData({ number: (this.data.number - 1 > 1) ? this.data.number - 1 : 1 }); }, addNumber: function () { // 如果是安心包只能购买一个 console.log(this.data.goods); if (this.data.goods.goodsSn == '1036016') { wx.showToast({ title: '此款商品只能购买一个', icon: 'none', duration: 2000 }); } else { this.setData({ number: this.data.number + 1 }); } }, onHide: function () { // 页面隐藏 }, onUnload: function () { // 页面关闭 }, switchAttrPop: function () { if (this.data.openAttr == false) { this.setData({ openAttr: !this.data.openAttr }); } }, closeAttr: function () { this.setData({ openAttr: false, }); }, closeShare: function () { this.setData({ openShare: false, }); }, openCartPage: function () { wx.switchTab({ url: '/pages/tabBar/cart/cart' }); }, onReady: function () { // 页面渲染完成 }, qrtouchstart: function () { this.setData({ myqr_blur: 100, myqr_show: false }); }, copyToHM() { let copyLink = this.data.goods.copyLink; console.log(copyLink); if (copyLink != undefined && copyLink != '') { wx.setClipboardData({ data: copyLink, success(res) { wx.getClipboardData({ success(res) { console.log(res.data) // data } }) } }); } else { wx.showToast({ title: '该商品暂未配置盒马链接', icon: 'none' }) } }, onSelfPayChange(e) { console.log(e); this.setData({ selfPayChecked: e.detail, }); }, onSpreadPayChange(e) { console.log(e); this.setData({ spreadPayChecked: e.detail, }); }, cancelSpreadPay() { let spreadPayChecked = this.data.spreadPayChecked; if (spreadPayChecked == true) { wx.setStorageSync('spreadPayChecked', true); } this.setData({ spreadPayShow: false, }); }, goSpread() { let spreadPayChecked = wx.getStorageSync('spreadPayChecked'); console.log(spreadPayChecked); if (spreadPayChecked != true) { this.setData({ spreadPayShow: true, }); } else { // wx.navigateTo({ // url: '/pages/goods/goodsPoster/goodsPoster?goodsId='+this.data.goods.id, // }) this.createPoster(); } }, posterCopy() { let that = this wx.setClipboardData({ data: that.data.myqr_ads, success: function (res) { wx.getClipboardData({ success: function (res) { wx.showToast({ title: '文案复制成功', icon: 'success', duration: 2000 }); // that.hidePoster(); } }) } }) }, hidePoster() { this.setData({ myqr_show: false, myqr_blur: 100, myqr_bottom_btn: 'fixed' }) }, createPoster() { wx.showLoading({ title: '生成中', }) wx.pageScrollTo({ scrollTop: 0 }) if (this.data.myqr_url != null) { wx.hideLoading(); this.setData({ myqr_show: true, myqr_blur: 25, myqr_bottom_btn: 'unset' }) return; } util.request(api.QrGoodsCodeCreate, { goodsId: this.data.goods.id }).then(res => { wx.hideLoading(); if (res.errno == 0) { this.setData({ myqr_url: res.data.imgUrl, myqr_ads: res.data.ads, myqr_show: true, myqr_blur: 25, myqr_bottom_btn: 'unset' }) } else { util.showErrorToast("未设置分享图") } }); }, goSaveQrcode: function () { //保存二维码图片 let that = this; console.info(that.data.myqr_url); wx.downloadFile({ url: that.data.myqr_url, success: function (res) { if (res.statusCode === 200) { let img = res.tempFilePath; wx.saveImageToPhotosAlbum({ filePath: img, success(res) { that.goCloseMyqr('个人专属二维码图片已保存到您的相册'); }, fail(res) { that.goCloseMyqr('网络或授权问题 图片保存失败 请重试'); } }) } else that.goCloseMyqr('网络或授权问题 图片保存失败 请重试'); }, fail(res) { that.goCloseMyqr('网络或授权问题 图片保存失败 请重试'); } }) }, goCloseMyqr: function (msg) { //关闭分享图片的弹层 this.hidePoster(); if (msg) { wx.showToast({ title: msg, icon: 'none', duration: 3000 }) } }, reSpread() { let spreadPayChecked = this.data.spreadPayChecked; if (spreadPayChecked == true) { wx.setStorageSync('spreadPayChecked', true); } this.setData({ spreadPayShow: false, }); this.createPoster(); // wx.navigateTo({ // url: '/pages/goods/goodsPoster/goodsPoster?goodsId='+this.data.goods.id, // }) }, goMemberCenter() { if (!app.globalData.hasLogin) { wx.navigateTo({ url: "/pages/auth/login/login" }); return; } else { wx.navigateTo({ url: "/pages/member/memberCenter/memberCenter" }); } }, onSkuClose() { this.setData({ chooseSkuVisible: false }); }, showSkuPopup() { this.setData({ chooseSkuVisible: true, currentSku: this.data.checkedSku, activeSku: this.data.checkedSku.id }); }, selectSku(e) { let id = e.currentTarget.dataset.id; let index = e.currentTarget.dataset.index; this.setData({ activeSku: id, currentSku: this.data.productList[index], }); }, confSku() { this.setData({ checkedSku: this.data.currentSku, chooseSkuVisible: false }); }, goWholeEval() { wx.navigateTo({ url: '/pages/goods/wholeEvaluation/wholeEvaluation?id=' + this.data.id, }) }, bindGoodsNumInput(e) { let max = e.currentTarget.dataset.max; let plusNum = parseInt(e.detail.value == '' ? '' : e.detail.value); if (plusNum > max) plusNum = max; this.addNumGoods(plusNum); }, minusNum() { if (this.data.plusNum && this.data.plusNum == this.data.minNum) { return false; } else { console.info(this.data.plusNum) if(this.data.plusNum!==this.data.minNum){ let result = Number(this.data.plusNum) - 1; this.addNumGoods(result); } } }, addNum() { //加购数量 默认1 if (this.data.checkedSku.unitMaximum && this.data.plusNum && this.data.plusNum >= this.data.checkedSku.unitMaximum) { return false; } else { let plusNum = this.data.plusNum ? this.data.plusNum : 0; this.addNumGoods(plusNum*1 + 1); } }, addNumGoods(num) { let result = num; // console.info(this.data.goods.unitMaximum) // console.info(this.data.productList) // 加购类 if (this.data.checkedSku.isSupportAddbuy) { let addPurchaseAmount=this.data.checkedSku.unitPrice*result; console.log(result); console.log(addPurchaseAmount); this.setData({ plusNum: result, addPurchaseAmount:addPurchaseAmount, totalPrice: Number(this.data.checkedSku.price +addPurchaseAmount ).toFixed(2)// - this.data.couponPrice }); } }, goIm() { wx.navigateTo({ url: '/pages/im/im' }); }, })