183 lines
4.7 KiB
JavaScript
183 lines
4.7 KiB
JavaScript
// packageA/mycomponent/goodsComponent/plugin/groupWork/groupWork.js
|
||
var yz_pay = require("../../../../../mycomponent/yz_pay/yz_pay");
|
||
const app = getApp();
|
||
Component({
|
||
behaviors: [yz_pay],
|
||
/**
|
||
* 组件的属性列表
|
||
*/
|
||
properties: {
|
||
gooddatas: {
|
||
type: Object,
|
||
}
|
||
},
|
||
observers: {},
|
||
lifetimes: {
|
||
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
|
||
attached: function () {
|
||
this.initDisabled();
|
||
}
|
||
},
|
||
/**
|
||
* 组件的初始数据
|
||
*/
|
||
data: {
|
||
goods: {},
|
||
showSpecs: false,
|
||
groupLevel: [],
|
||
groupModel: null,
|
||
groupWork_disabled: false, //当前发起拼团按钮是否禁用
|
||
|
||
Payshow: false,
|
||
btnData: [], //支付方式集合,
|
||
payKeyboardShow: false, //键盘显示
|
||
isPlaying: false //防止重复支付
|
||
},
|
||
|
||
/**
|
||
* 组件的方法列表
|
||
*/
|
||
methods: {
|
||
initDisabled() {
|
||
//是否禁用,活动未开始、已结束
|
||
let status = false;
|
||
if (!this.data.gooddatas.end_time || this.data.gooddatas.end_time == "") {
|
||
//不限时
|
||
status = false;
|
||
} else if (app.getTimeDifference(this.data.gooddatas.end_time) == 0) {
|
||
//已结束
|
||
status = true;
|
||
} else if (app.getTimeDifference(this.data.gooddatas.start_time) > 0) {
|
||
//未开始
|
||
status = true;
|
||
}
|
||
this.setData({
|
||
groupWork_disabled: status,
|
||
showSpecs: false,
|
||
Payshow: false,
|
||
payKeyboardShow: false,
|
||
isPlaying: false
|
||
});
|
||
},
|
||
selectGroup(e) {
|
||
const {
|
||
item
|
||
} = e.currentTarget.dataset;
|
||
if (item.status != 2) {
|
||
let text = item.status == 3 ? "已结束" : "未开始";
|
||
wx.showToast({
|
||
title: text,
|
||
duration: 1000,
|
||
icon: "none",
|
||
});
|
||
return;
|
||
}
|
||
this.setData({
|
||
groupModel: item.id,
|
||
});
|
||
this.selectComponent('#yzSpecs').setData({
|
||
popPrice: item.min_price,
|
||
popDescription: `${item.person}人团`
|
||
});
|
||
},
|
||
rewardPayCancelBtn() {
|
||
this.setData({
|
||
Payshow: false
|
||
});
|
||
},
|
||
showSpecsPop() {
|
||
if (Number(this.data.gooddatas.surplus) === 0) {
|
||
//没次数
|
||
wx.showToast({
|
||
title: '开团次数已用完,请升级等级',
|
||
duration: 1000,
|
||
icon: "none",
|
||
});
|
||
return;
|
||
}
|
||
let goods = {};
|
||
goods['id'] = this.data.gooddatas.goods_id;
|
||
goods['thumb'] = this.data.gooddatas.goods_info.thumb;
|
||
goods['stock'] = this.data.gooddatas.stock;
|
||
goods['price'] = this.data.gooddatas.min_price + ' 起';
|
||
this.setData({
|
||
goods: goods,
|
||
showSpecs: true
|
||
});
|
||
},
|
||
//获取支付类型参数
|
||
getPayData() {
|
||
if (!this.data.groupModel) {
|
||
wx.showToast({
|
||
title: '请选择开团层级!',
|
||
duration: 1000,
|
||
icon: "none",
|
||
});
|
||
return;
|
||
}
|
||
app._postNetWork({
|
||
url: app.getNetAddresss("plugin.group-work.frontend.modules.alliance.controllers.pay.button"),
|
||
success: (resdata) => {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
this.setData({
|
||
btnData: res.data.buttons,
|
||
showSpecs: false,
|
||
Payshow: true
|
||
});
|
||
} else {
|
||
wx.showToast({
|
||
title: res.msg,
|
||
duration: 1000,
|
||
icon: "none",
|
||
});
|
||
}
|
||
},
|
||
});
|
||
},
|
||
async payPost(e) {
|
||
if (this.data.isPlaying) {
|
||
return;
|
||
}
|
||
let _data = e.currentTarget.dataset.info;
|
||
let json = {
|
||
pay_type: _data.value,
|
||
spec_id: this.data.groupModel,
|
||
alliance_id: 0,
|
||
client_type: 2
|
||
};
|
||
|
||
if (_data.need_password) {
|
||
let pass = await this.getPayKeyboardPassword(); //开启支付密码验证
|
||
json.password = pass;
|
||
}
|
||
this.data.isPlaying = true;
|
||
app._getNetWork({
|
||
url: app.getNetAddresss('plugin.group-work.frontend.modules.alliance.controllers.apply.index'),
|
||
data: json,
|
||
success: (res) => {
|
||
this.data.isPlaying = false;
|
||
if (res.data.result === 1) {
|
||
this.handleOtherPay(_data, _data.value, res.data, "groupWork");
|
||
this.setData({
|
||
Payshow: false,
|
||
popupSpecs: false,
|
||
showSpecs: false
|
||
});
|
||
} else {
|
||
wx.showModal({
|
||
title: '提示',
|
||
showCancel: false,
|
||
content: res.data.msg,
|
||
success(res) {}
|
||
});
|
||
console.error(res);
|
||
}
|
||
},
|
||
fail: (res) => {
|
||
console.error(res);
|
||
}
|
||
});
|
||
},
|
||
}
|
||
}); |