ts_aimz/pages/shop/goodsDetail/goodsDetail.js

198 lines
5.3 KiB
JavaScript
Raw Normal View History

2025-06-10 10:50:44 +08:00
// pages/shop/goodsDetail/goodsDetail.js
import Shop from '../../../net/api/shop'
import {
sImgPrefix,
} from '../../../net/mainUrl'
const app = getApp()
const deviceInfo = wx.getDeviceInfo()
const screenInfo = wx.getWindowInfo();
const statusBarHeight = screenInfo.statusBarHeight; // 状态栏高度
const navBarHeight = deviceInfo.platform == 'IOS' ? 48 : 50; // 导航栏高度iOS 为 44pxAndroid 为 48px
Page({
/**
* 页面的初始数据
*/
data: {
animationClass: '',
statusBarHeight: statusBarHeight,
totalHeight: navBarHeight,
id: '',
msgType: 'info',
msgHint: '',
msgShow: false,
goods: null,
isagree: false
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
wx.setNavigationBarTitle({
title: '我要买',
})
wx.setNavigationBarColor({
frontColor: '#FFFFFF', // 必写项,字体颜色仅支持#ffffff和#000000
backgroundColor: '#000000', // 传递的颜色值,仅支持十六进制颜色
})
const id = options.id
if (id != '') {
this.setData({
id: id
})
this.doGetDetail()
} else {
this.setData({
msgType: 'error',
msgHint: '数据有误,请刷新重试',
msgShow: true
})
setTimeout(() => {
wx.navigateBack()
}, 1200);
}
},
onShow() {
this.setData({
animationClass: 'fade-in'
})
},
onHide() {
this.setData({
animationClass: 'fade-out'
})
},
doBack() {
wx.navigateBack()
},
doPreImg(e) {
const url = e.currentTarget.dataset.url
wx.previewImage({
urls: [url],
})
},
doChangeDeal() {
this.setData({
isagree: !this.data.isagree
})
},
//显示购买协议
doShowDeal() {
wx.navigateTo({
url: '/pages/treaty/rule/rule?id=db805bf2-eef9-47d5-941b-cdc3b83ec316&needToken=true',
})
},
//提交购买
doConfirm() {
if (this.data.isagree) {
this.doSaveOrder()
} else {
this.setData({
msgHint: '请阅读并同意购买协议',
msgType: 'info',
msgShow: true
})
}
},
async doSaveOrder() {
try {
wx.showLoading({
title: '购买中..',
});
const res = await Shop.doSaveOrder(this.data.id);
wx.hideLoading();
if (res && res.data != '') {
await this.doConfirmOrder(res.data);
} else {
this.setData({
msgHint: '网络错误,请稍后重试',
msgType: 'error',
msgShow: true
});
}
} catch (err) {
wx.hideLoading();
this.setData({
msgHint: err.msg ? err.msg : '网络错误,请稍后重试',
msgType: 'error',
msgShow: true
});
}
},
async doConfirmOrder(id) {
try {
wx.showLoading({
title: '购买中...',
});
await Shop.doConfirmOrder(id);
wx.hideLoading();
this.setData({
msgHint: '购买成功',
msgType: 'success',
msgShow: true
});
setTimeout(() => {
2025-06-16 15:04:57 +08:00
this.backPageRefresh()
2025-06-10 10:50:44 +08:00
}, 1500);
} catch (err) {
wx.hideLoading();
this.setData({
msgHint: err.msg ? err.msg : '网络错误,请稍后重试',
msgType: 'error',
msgShow: true
});
}
},
doGetDetail() {
const that = this
wx.showLoading({
title: '加载中...',
})
Shop.doGetGoodsDetail(that.data.id)
.then(res => {
wx.hideLoading()
console.log(res)
if (res.goodsPhoto && res.goodsPhoto != '') {
res.goodsPhoto = sImgPrefix + res.goodsPhoto
that.setData({
goods: res
})
} else {
that.setData({
msgHint: '网络错误,请稍后重试',
msgType: 'error',
msgShow: true
})
setTimeout(() => {
wx.navigateBack()
}, 1200);
}
})
.catch(err => {
wx.hideLoading()
that.setData({
msgHint: err.msg ? err.msg : '网络错误,请稍后重试',
msgType: 'error',
msgShow: true
})
setTimeout(() => {
wx.navigateBack()
}, 1200);
})
2025-06-16 15:04:57 +08:00
},
backPageRefresh: function () {
var pages = getCurrentPages();
var beforePage = pages[pages.length - 2];
beforePage.setData({
needRefresh: true
});
wx.navigateBack();
2025-06-10 10:50:44 +08:00
}
})