You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

150 lines
5.0 KiB

const app = getApp<IAppOption>();
Page({
data: {
id: "",
detail: {},
specVecItem: {} as any,
num: 1,
allPrice: "",
toastShow: false,
toastType: "giftEnter",
toastParams: {
doc: "",
},
protocol: false,
},
onLoad(options) {
this.setData({
id: options.id,
toastParams: {
doc: `<p style="text-indent: 24pt; line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">为让用户更好的享受再鼎愈见昕生的服务,愈见昕生平台向用户提供了能量兑换服务,并提供了丰富的礼品,平台注册用户可使用有效的能量兑换礼品。</span></p><p style="text-indent: 24pt; line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">愈见昕生的礼品库将提供:</span></p><p style="text-indent: 24pt; line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 微软雅黑;">1) </span><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">查看用户在能量商城选择兑换的商品信息;</span></p><p style="text-indent: 24pt; line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 微软雅黑;">2) </span><span style="color: rgb(89, 89, 89); font-size: 14p ... (very long line, trimmed to 1000 chars)
// doc:` <p style="line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;">使</span></p><p style="line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;"></span></p><p style="line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 微软雅黑;">1 </span><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;"></span></p><p style="line-height: 1.5;"><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 微软雅黑;">2 </span><span style="color: rgb(89, 89, 89); font-size: 14px; font-family: 宋体;"></span></p>< ... (very long line, trimmed to 1000 chars)
},
});
app.waitLogin().then(() => {
this.setView();
this.getDetail();
this.getProtocol();
});
},
setView() {
wx.ajax({
method: "POST",
url: "?r=igg4/gift-spu/set-visit-num",
data: { spuId: this.data.id },
showMsg: false,
});
},
getDetail() {
wx.ajax({
method: "GET",
url: "?r=igg4/gift-spu/get-detail",
data: {
spuId: this.data.id,
},
}).then((res) => {
this.setData({
detail: {
...res,
detailList: JSON.parse(res.detail),
},
specVecItem: res.specVec[0],
allPrice: res.specVec[0].score,
num: res.specVec[0].stock >= 1 ? 1 : 0,
});
});
},
getProtocol() {
wx.ajax({
method: "GET",
url: "?r=igg4/agreement/get-user-agreement",
data: {},
}).then((res) => {
this.setData({
protocol: res,
});
});
},
setProtocol() {
wx.ajax({
method: "POST",
url: "?r=igg4/agreement/set-user-agreement",
data: {},
});
},
handleSpec(e: any) {
const { index } = e.currentTarget.dataset;
const specVecItem: any = this.data.detail.specVec[index];
console.log(specVecItem.stock>=1)
this.setData({
specVecItem: specVecItem,
allPrice: specVecItem.score,
num: specVecItem.stock >= 1 ? 1 : 0,
});
},
onChangeNumber(e: any) {
this.setData({
num: e.detail,
allPrice: this.data.specVecItem.score * e.detail,
});
},
handleDoc() {
this.setData({
toastShow: true,
toastType: "giftEnter",
});
},
handleToastOk(e) {
if (!e.detail.protocol) {
wx.showToast({
title: "请先勾选《用户须知》",
icon: "none",
});
return;
}
this.setProtocol();
this.setData({
protocol: e.detail.protocol,
});
this.handleToastCancel();
},
handleToastCancel() {
this.setData({
toastShow: false,
toastType: "",
});
},
handleProtocol() {
if (!this.data.protocol) {
this.setProtocol();
}
this.setData({
protocol: !this.data.protocol,
});
},
handleSubmit() {
if (!this.data.protocol) {
wx.showToast({
icon: "none",
title: "请先同意《用户须知》",
});
return;
}
wx.ajax({
method: "POST",
url: "?r=igg4/gift-order/place-order",
data: {
giftId: this.data.specVecItem.giftId,
count: this.data.num,
},
loading: true,
}).then((res) => {
wx.navigateTo({
url: `/gift/pages/conformOrder/index?id=${res}`,
});
});
},
});