321 lines
7.6 KiB
JavaScript
321 lines
7.6 KiB
JavaScript
// pages/goodsDetails/goodsDetails.js
|
||
const app = getApp()
|
||
const WxParse = require('../../wxParse/wxParse.js');
|
||
Page({
|
||
|
||
data: {
|
||
ip: app.globalData.ipUrl,
|
||
contents: '', //富文本
|
||
standardNum: 1, //商品数量
|
||
minusStatus: 'disabled',
|
||
goodsList: [],
|
||
bnrUrl: [], //轮播图
|
||
specsIndex: 0, //选择规格
|
||
specs: '', //规格
|
||
integral: 0, //积分商城进入
|
||
login: true
|
||
},
|
||
// 页面加载时
|
||
onLoad: function (options) {
|
||
console.log(options.goodsId)
|
||
//商品ID进入
|
||
if (options.goodsId) {
|
||
this.setData({
|
||
goodsId: options.goodsId
|
||
})
|
||
this.goodDtail()
|
||
}
|
||
//上级id
|
||
if (options.pId) {
|
||
wx.setStorage({
|
||
data: options.pId,
|
||
key: 'pId',
|
||
})
|
||
}
|
||
//判断登录
|
||
wx.getStorage({
|
||
key: 'user',
|
||
success: s => {
|
||
this.setData({
|
||
login: true
|
||
})
|
||
},
|
||
fail: f => {
|
||
this.setData({
|
||
login: false
|
||
})
|
||
}
|
||
})
|
||
},
|
||
onShow: function () {
|
||
|
||
},
|
||
//轮播图片查看
|
||
previewImage(e) {
|
||
let imgUrls = e.currentTarget.dataset.src;
|
||
let preLunboList = this.data.bnrUrl
|
||
let preUrls = []
|
||
for (let i in preLunboList) {
|
||
preUrls.push(preLunboList[i])
|
||
}
|
||
//图片预览
|
||
wx.previewImage({
|
||
current: imgUrls, // 当前显示图片的http链接
|
||
urls: preUrls // 需要预览的图片http链接列表
|
||
})
|
||
},
|
||
// 商品详情
|
||
goodDtail() {
|
||
wx.showLoading({
|
||
title: '加载中',
|
||
mask: true,
|
||
})
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/goods/getGoodsDetail',
|
||
method: 'GET',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
},
|
||
data: {
|
||
goodsId: this.data.goodsId,
|
||
userId: app.globalData.userId
|
||
},
|
||
success: res => {
|
||
wx.hideLoading();
|
||
console.log(res)
|
||
if (res.data.code == 1) {
|
||
let goods = res.data.value;
|
||
for (let i = 0; i < goods.wisdGoodsSpecList.length; i++) {
|
||
if (goods.wisdGoodsSpecList[i].specBulyPrice == null) {
|
||
goods.wisdGoodsSpecList[i].price = goods.wisdGoodsSpecList[i].specPrice
|
||
} else {
|
||
goods.wisdGoodsSpecList[i].price = goods.wisdGoodsSpecList[i].specBulyPrice
|
||
}
|
||
}
|
||
WxParse.wxParse('contents', 'html', goods.goodsInfo, this, 20);
|
||
this.setData({
|
||
goodsList: goods,
|
||
bnrUrl: goods.goodsBanner.split(',')
|
||
})
|
||
//积分
|
||
if (goods.goodsClassify == 2) {
|
||
this.setData({
|
||
integral: 1
|
||
})
|
||
}
|
||
} else {
|
||
wx.showModal({
|
||
title: '提示!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
// 轮播
|
||
onSlideChange(e) {
|
||
this.setData({
|
||
lunboindex: e.detail.current + 1
|
||
})
|
||
},
|
||
//点击显示底部弹窗
|
||
choose: function (e) {
|
||
var choose = e.currentTarget.dataset.choose
|
||
this.setData({
|
||
choose: choose,
|
||
})
|
||
this.showModal();
|
||
},
|
||
|
||
//选择规格
|
||
showModal: function () {
|
||
// 显示遮罩层
|
||
var animation = wx.createAnimation({
|
||
duration: 200,
|
||
timingFunction: "linear",
|
||
delay: 0
|
||
})
|
||
this.animation = animation
|
||
animation.translateY(300).step()
|
||
this.setData({
|
||
animationData: animation.export(),
|
||
showModalStatus: true
|
||
})
|
||
setTimeout(function () {
|
||
animation.translateY(0).step()
|
||
this.setData({
|
||
animationData: animation.export()
|
||
})
|
||
}.bind(this), 200)
|
||
},
|
||
//隐藏对话框
|
||
hideModal(e) {
|
||
console.log(this.data.goodsList.wisdGoodsSpecList[this.data.specsIndex].specStock)
|
||
if (this.data.goodsList.wisdGoodsSpecList[this.data.specsIndex].specStock == 0) {
|
||
wx.showToast({
|
||
title: '库存不足!',
|
||
icon: 'none'
|
||
})
|
||
return
|
||
}
|
||
let hide = e.currentTarget.dataset.hide;
|
||
let goodsList = this.data.goodsList
|
||
let goods = [{
|
||
isDiscount: goodsList.isDiscount, //判断是否为会员折扣
|
||
goodsPhoto: goodsList.goodsPhoto,
|
||
goodsName: goodsList.goodsName,
|
||
goodsId: goodsList.id,
|
||
num: this.data.standardNum,
|
||
specs: goodsList.wisdGoodsSpecList[this.data.specsIndex]
|
||
}]
|
||
|
||
if (hide == 1) {
|
||
// 加入购物车
|
||
this.carAdd();
|
||
|
||
} else if (hide == 2) {
|
||
//普通商品
|
||
wx.navigateTo({
|
||
url: '/pages/cartPay/cartPay?goods=' + JSON.stringify(goods),
|
||
})
|
||
} else if (hide == 3) {
|
||
// 积分商品
|
||
wx.navigateTo({
|
||
url: '/pages/cartPay/cartPay?integral=1&goods=' + JSON.stringify(goods),
|
||
})
|
||
}
|
||
|
||
// 隐藏遮罩层
|
||
var animation = wx.createAnimation({
|
||
duration: 200,
|
||
timingFunction: "linear",
|
||
delay: 0
|
||
})
|
||
this.animation = animation
|
||
animation.translateY(300).step()
|
||
this.setData({
|
||
animationData: animation.export(),
|
||
})
|
||
setTimeout(function () {
|
||
animation.translateY(0).step()
|
||
this.setData({
|
||
animationData: animation.export(),
|
||
showModalStatus: false
|
||
})
|
||
}.bind(this), 200)
|
||
},
|
||
|
||
// 加入购物车
|
||
carAdd(e) {
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/goods/addCart',
|
||
method: 'POST',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
"token": app.globalData.token
|
||
},
|
||
data: {
|
||
userId: app.globalData.userId,
|
||
goodsId: this.data.goodsId,
|
||
goodsNum: this.data.standardNum,
|
||
specId: this.data.goodsList.wisdGoodsSpecList[this.data.specsIndex].id,
|
||
},
|
||
success: res => {
|
||
wx.hideLoading();
|
||
console.log(res)
|
||
if (res.data.code == 1) {
|
||
wx.showToast({
|
||
title: '添加成功,快去购物车中查看~',
|
||
icon: 'none',
|
||
success: s => {
|
||
setTimeout(() => {
|
||
this.goodDtail()
|
||
}, 1000);
|
||
}
|
||
})
|
||
} else {
|
||
wx.showModal({
|
||
title: '提示!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
|
||
// 输入数量
|
||
standardNum(e) {
|
||
console.log('form发生了submit事件,携带数据为:', e.detail.value)
|
||
var standardNum = e.detail.value;
|
||
this.setData({
|
||
standardNum: standardNum,
|
||
});
|
||
},
|
||
//点击数量减少
|
||
clickReduce: function () {
|
||
var num = this.data.standardNum;
|
||
if (num > 1) {
|
||
num--;
|
||
}
|
||
var minusStatus = num <= 1 ? 'disabled' : 'normal';
|
||
this.setData({
|
||
standardNum: num,
|
||
minusStatus: minusStatus
|
||
});
|
||
},
|
||
clickAdd: function () {
|
||
var num = this.data.standardNum;
|
||
num++;
|
||
var minusStatus = num < 1 ? 'disabled' : 'normal';
|
||
this.setData({
|
||
standardNum: num,
|
||
minusStatus: minusStatus
|
||
})
|
||
},
|
||
|
||
//选择规格
|
||
specsClick: function (e) {
|
||
let index = e.target.dataset.index;
|
||
this.setData({
|
||
specsIndex: index
|
||
})
|
||
},
|
||
|
||
// 跳转首页
|
||
toIndex() {
|
||
wx.reLaunch({
|
||
url: '/pages/index/index',
|
||
})
|
||
},
|
||
// 跳转购物车
|
||
toCar() {
|
||
wx.reLaunch({
|
||
url: '/pages/cart/cart',
|
||
})
|
||
},
|
||
//去登录
|
||
login() {
|
||
wx.navigateTo({
|
||
url: '/pages/login/login?goodsId=' + this.data.goodsId,
|
||
})
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload: function () {
|
||
|
||
},
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage: function () {
|
||
app.share();
|
||
return {
|
||
path: '/pages/goodsDetails/goodsDetails?goodsId=' + this.data.goodsId + '&pId=' + app.globalData.userId,
|
||
title: '三品慧采小程序等你来~'
|
||
}
|
||
}
|
||
|
||
}) |