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: '三品慧采小程序等你来~'
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
})
|