yuminge-app/yun-min-program-plugin-master/packageB/member/distribution_queue/DistributionActivityDetail/DistributionActivityDetail.js

762 lines
21 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// packageB/member/distribution_queue/activity_details/activity_details.js
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
language: '',
checked: -1,
activeName: "first",
posterShow: false,
posterImg: "",
goods_list: [],
datas: {},
id: "",
cservice: '', //客服
share_title: "",
share_icon: "",
share_desc: "",
// 选择商品
selected_goods: {},
isGoods: true,
specsManage: [], //选择池 用于排序
SUBMIT_ACTION_CART: "-1", //添加到购物车
SUBMIT_ACTION_BUY: "-2", //立即购买
submitActionTag: "-2",
optionsId: '', //选择后的 规格ID
goodsCount: 1,
optionsMaxCount: 1,
popupSpecs: false,
popupSpecs2: false,
popStock: 0, //库存
popPrice: 0, //价格
goodsDescription: "", //体现语言
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
if (options.scene) {
let scene = decodeURIComponent(options.scene);
if (scene) {
var info_arr = [];
info_arr = scene.split(',');
for (let i = 0; i < info_arr.length; i++) {
let chil_arr = [];
chil_arr = info_arr[i].split('=');
console.log(chil_arr);
if (chil_arr[0] == 'id') {
this.setData({
checked: -1,
id: chil_arr[1]
});
} else if (chil_arr[0] == 'mid') {
app._setMid(chil_arr[1]);
}
}
}
} else {
if (options.id) {
this.setData({
checked: -1,
id: options.id
});
}
if (options.mid) {
app._setMid(options.mid);
}
}
this.getData();
},
saveImg() {
// var times = _this.data.timeend - _this.data.timestart;
wx.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success() {
console.log('授权成功');
}
});
}
}
});
var imgSrc = this.data.posterImg.image_url;
wx.downloadFile({
url: imgSrc,
success: function(res) {
console.log(res);
//图片保存到本地
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: function(data) {
wx.showToast({
title: '保存成功',
icon: 'none',
duration: 2000
});
},
fail: function(err) {
console.log(err);
if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
console.log("当初用户拒绝,再次发起授权");
wx.openSetting({
success(settingdata) {
if (settingdata.authSetting['scope.writePhotosAlbum']) {
wx.showToast({
icon: 'none',
title: '获取权限成功,再次长按保存图片',
duration: 1500
});
} else {
wx.showToast({
icon: 'none',
title: '获取权限失败,保存图片需要用户授权',
duration: 1500
});
}
}
});
}
},
complete(res) {
console.log(res);
}
});
}
});
},
//提交确认
submitAction() {
let specsManage = this.data.specsManage;
let submitActionTag = this.data.submitActionTag;
// let SUBMIT_ACTION_CART = this.data.SUBMIT_ACTION_CART;
let SUBMIT_ACTION_BUY = this.data.SUBMIT_ACTION_BUY;
if (specsManage.length < this.data.goods_list[this.data.checked].has_many_specs.length) {
this.setData({
popupSpecs: false,
});
wx.showToast({
icon: 'none',
title: this.data.goodsDescription,
duration: 1500
});
return;
}
if (submitActionTag == SUBMIT_ACTION_BUY) { //立即购买处理
this.setData({
popupSpecs: false,
});
this.buyNowRequest(this.data.selected_goods.id, this.data.optionsId, this.data.goodsCount);
}
},
//新处理立即购买
buyNowNew() {
this.popupSpecs2CloseBtn();
this.buyNowRequest(this.data.selected_goods.id, this.data.optionsId, this.data.goodsCount);
},
//减少
reduceGoods() {
let lastgoodsCount = this.data.goodsCount;
if (this.data.goodsCount == 1 || this.data.goodsCount == 0) {
return;
}
this.setData({
goodsCount: lastgoodsCount - 1
});
},
//增加
addGoods() {
let lastgoodsCount = this.data.goodsCount;
let specsManage = this.data.specsManage;
let optionsMaxCount = this.data.optionsMaxCount;
console.log("增加");
if (specsManage.length == this.data.goods_list[this.data.checked].has_many_specs.length && this.data.goodsCount ==
optionsMaxCount) {
console.log("数量超出范围");
wx.showToast({
icon: 'none',
title: '数量超出范围',
duration: 1500
});
console.log("max=" + this.data.goodsCount);
return;
}
this.setData({
goodsCount: lastgoodsCount + 1
});
},
// 输入数量
inputGoodsNum: function(e) {
var num = parseInt(e.detail.value);
var lastgoodsCount = this.data.goodsCount;
if (e.detail.keyCode == 8) {
if (app._isTextEmpty(e.detail.value)) {
this.setData({
goodsCount: ''
});
return;
}
}
if (num) {
this.setData({
goodsCount: num
});
} else {
this.setData({
goodsCount: lastgoodsCount
});
}
},
//立即购买网络操作
buyNowRequest(_goodsId, _optionsId, _total) {
//库存不足
if (this.data.optionsMaxCount == 0) {
wx.showToast({
icon: 'none',
title: '商品库存不足',
duration: 1500
});
return;
}
if (_total <= 0) {
wx.showToast({
icon: 'none',
title: '请选择商品数量',
duration: 1500
});
return;
}
let that = this;
let goods = [];
goods.push(_goodsId);
let urlStr = app.getNetAddresss("from.div-from.isDisplay");
urlStr += "&goods_ids=" + JSON.stringify(goods);
app._getNetWork({
showToastIn: false,
url: urlStr,
success: function(resdata) {
var res = resdata.data;
if (res.result == 1) {
var _data = res.data;
console.log('xxxx', _data);
if (res.data.status && !res.data.member_status) {
wx.showModal({
title: '提示',
content: '购买此商品,请补充您的个人信息',
success(res) {
if (res.confirm) {
//保税真实信息添加
wx.navigateTo({
url: "/packageB/member/address/myinfo/myinfo?tag=delta"
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
} else {
wx.navigateTo({
url: '/packageD/buy/myOrder_v2/myOrder_v2?tag=' + that.data.submitActionTag + '&goodsId=' + _goodsId +
'&optionsId=' + _optionsId + '&total=' + _total + '&activity_id=' + that.data.id
});
}
} else {
wx.showToast({
icon: 'none',
title: res.msg,
duration: 1500
});
}
},
fail: function(res) {
}
});
},
goMember() {
wx.reLaunch({
url: '/packageG/member_v2/member_v2'
});
},
goHome() {
wx.reLaunch({
url: '/packageG/index/index'
});
},
posterShowCloseBtn() {
this.setData({
posterShow: false
});
},
getData() {
let that = this;
let urlStr = app.getNetAddresss("plugin.commission-activity.api.activity.detail");
app._postNetWork({
url: urlStr,
showToastIn: false,
data: {
id: this.data.id
},
success: function(resdata) {
var res = resdata.data;
if (res.result == 1) {
let datas = res.data;
that.setData({
datas: datas,
goods_list: datas.goods,
share_title: datas.share_title,
share_icon: datas.share_icon,
share_desc: datas.share_desc
});
} else {
wx.showModal({
title: '提示',
content: res.msg,
showCancel: false,
success(res) {
if (res.confirm) {
wx.navigateBack({
delta: 1,
fail() {
wx.reLaunch({
url: '/packageG/index/index'
});
}
});
}
}
});
}
},
fail: function(res) {
console.log(res.msg);
}
});
},
// 初始化商品信息
initGoods() {
this.data.specsManage = []; //选择池 用于排序
this.data.optionsId = ""; //选择后的 规格ID
this.data.optionsMaxCount = 1;
this.setData({
popStock: 0,
popPrice: 0,
goodsDescription: '',
goodsCount: 1
});
},
//立即购买
buyNow() {
let that = this;
if (this.data.checked == -1) {
wx.showToast({
icon: 'none',
title: '请选择要购买的商品',
duration: 1500
});
return false;
}
// 初始化商品信息
this.initGoods();
this.setData({
selected_goods: this.data.goods_list[this.data.checked]
});
this.data.optionsMaxCount = this.data.selected_goods.stock;
// let urlStr = app.getNetAddresss("member.member.isValidatePageGoods");
// app._getNetWork({
// url: urlStr,
// success: function(resdata) {
// var res = resdata.data;
// if (res.result == 1) {
if (!that.data.isGoods) {
wx.showToast({
icon: 'none',
title: '商品已下架或不存在',
duration: 1500
});
return;
}
//判断是否有规格
if (that.data.goods_list[that.data.checked].has_option == 1) {
//有规格 但是还未选择
that.setData({
popupSpecs: true
});
if (!that.data.optionsId) {
// 默认选择第一个
for (let i = 0; i < that.data.goods_list[that.data.checked].has_many_specs.length; i++) {
that.setData({
['goods_list[' + that.data.checked + '].has_many_specs[' + i + '].description']: that.data.goods_list[
that.data.checked].has_many_specs[i].has_many_specs_item[0]
});
that.selectSpecs(
that.data.goods_list[that.data.checked].has_many_specs[i].has_many_specs_item[0], 'first', i
);
}
}
} else if (that.data.goods_list[that.data.checked].has_option == 0) {
that.showPopView2();
}
// } else {
// wx.showToast({
// icon: 'none',
// title: res.msg,
// duration: 1500
// })
// }
// },
// fail: function(res) {
// console.log(res);
// }
// });
},
//无规格选择 增加数量
showPopView2() {
this.setData({
popupSpecs2: true
});
},
popupSpecsCloseBtn() {
this.setData({
popupSpecs: false
});
},
popupSpecs2CloseBtn() {
this.setData({
popupSpecs2: false
});
},
//界面选择规格触发事件
selectSpecs(e, str, i) {
let data = {};
let specsIdex = 0;
if (str == 'first') {
specsIdex = i;
data = e;
} else {
specsIdex = e.currentTarget.dataset.specsidex;
data = e.currentTarget.dataset.specitem;
}
if (data.c) {
return false;
}
this.setData({
["goods_list[" + this.data.checked + "].has_many_specs[" + specsIdex + "].description"]: data.id
});
// let specid = data.specid; //对其他数据筛选 不筛选同级
//处理选择池
this.manageSpecs(data);
//处理规格组合选择状态
this.setGoodsSpecs(data);
//设置选择规格后的 价格、照片、库存
this.setGoodsSpecsChangeInfo();
//判断当前购买总量与库存的关系
this.getMaxCount();
},
//判断当前购买总量与库存的关系
getMaxCount() {
let specsManage = this.data.specsManage;
let optionsMaxCount = this.data.optionsMaxCount;
if (specsManage.length == this.data.goods_list[this.data.checked].has_many_specs.length) {
if (optionsMaxCount == 0) //库存不足
{
this.setData({
goodsCount: 0
});
}
if (this.data.goodsCount > optionsMaxCount) {
this.setData({
goodsCount: optionsMaxCount
});
}
}
},
//处理选择池
manageSpecs(data) {
let specsObject = new Object();
let specsManage = this.data.specsManage;
specsObject.id = data.id;
specsObject.specid = data.specid;
specsObject.title = data.title;
if (specsManage.length > 0) {
for (let i = 0; i < specsManage.length; i++) {
if (specsManage[i].specid == specsObject.specid) {
specsManage.splice(i, 1);
}
}
specsManage.push(specsObject);
} else {
specsManage.push(specsObject);
}
//排序
if (specsManage.length == this.data.goods_list[this.data.checked].has_many_specs.length) {
var newSpecsManage = [];
for (let i = 0; i < this.data.goods_list[this.data.checked].has_many_specs.length; i++) {
for (let j = 0; j < specsManage.length; j++) {
if (this.data.goods_list[this.data.checked].has_many_specs[i].id == specsManage[j].specid) {
newSpecsManage.push(specsManage[j]);
break;
}
}
}
specsManage = newSpecsManage;
}
this.setData({
specsManage: specsManage
});
this.setGoodsDescription();
},
//处理goodsDescription 数据
setGoodsDescription() {
let description = "";
let specsManage = this.data.specsManage;
//相等代表全选了 体现语句
if (specsManage.length == this.data.goods_list[this.data.checked].has_many_specs.length) {
description = "已选择 ";
for (let i = 0; i < specsManage.length; i++) {
description += specsManage[i].title + " ";
}
this.setData({
goodsDescription: description
});
} else {
description = "请选择 ";
for (let i = 0; i < this.data.goods_list[this.data.checked].has_many_specs.length; i++) {
for (let j = 0; j < specsManage.length; j++) {
if (this.data.goods_list[this.data.checked].has_many_specs[i].id != specsManage[j].specid) {
description += this.data.goods_list[this.data.checked].has_many_specs[i].title + " ";
break;
}
}
}
this.setData({
goodsDescription: description
});
}
},
//处理规格组合选择状态 过滤数据
setGoodsSpecs(specs) {
// let goodsInfo = this.data.goods_list[this.data.checked];
for (let i = 0; i < this.data.goods_list[this.data.checked].has_many_specs.length; i++) {
if (specs.specid != this.data.goods_list[this.data.checked].has_many_specs[i].id) {
let specitem = this.setGoodsSpecsStatus(this.data.goods_list[this.data.checked].has_many_specs[i].specitem, specs
.id);
this.setData({
["goods_list[" + this.data.checked + "].has_many_specs[" + i + "].specitem"]: specitem
});
}
}
},
//处理规格组合选择状态 处理状态 specitem 组合数组(未选中的) id当前选中的ID 根据ID 组合算是否有当前组合
setGoodsSpecsStatus(specitem, id) {
let options = []; //数据池
for (let i = 0; i < this.data.goods_list[this.data.checked].has_many_options.length; i++) {
let _specs = this.data.goods_list[this.data.checked].has_many_options[i].specs.split("_");
//console.log(_specs);
//判断是否包含
for (let j = 0; j < _specs.length; j++) {
if (_specs[j] == id) {
options.push(this.data.goods_list[this.data.checked].has_many_options[i]);
return;
}
}
}
//关键处理方式 后期要优化 效率低
for (let m = 0; m < options.length; m++) {
let _specs = options[m].specs.split("_");
for (let y = 0; y < _specs.length; y++) {
if (_specs[y] != id && options[m].stock == 0) {
for (let n = 0; n < specitem.length; n++) {
if (_specs[y] == specitem[n].id) {
specitem[n].c = true;
}
}
} else if (_specs[y] != id && options[m].stock > 0) {
for (let n = 0; n < specitem.length; n++) {
if (_specs[y] == specitem[n].id) {
specitem[n].c = false;
}
}
}
}
}
return specitem;
},
//设置选择规格后的 价格、照片、库存
setGoodsSpecsChangeInfo() {
let specsManage = this.data.specsManage;
//根据ID 排序 specsManage.sort();
specsManage.sort(function(a, b) {
return a.id - b.id;
});
if (specsManage.length == this.data.goods_list[this.data.checked].has_many_specs.length) {
let goodsSpecs = "";
for (let j = 0; j < specsManage.length; j++) {
goodsSpecs += specsManage[j].id + "_";
}
goodsSpecs = goodsSpecs.substring(0, goodsSpecs.length - 1); //处理"_"
for (let i = 0; i < this.data.goods_list[this.data.checked].has_many_options.length; i++) {
if (goodsSpecs == this.setGoodsSpecsBySort(this.data.goods_list[this.data.checked].has_many_options[i].specs)) {
this.setData({
popPrice: this.data.goods_list[this.data.checked].has_many_options[i].product_price, //设置价格
popThumb: app._isTextEmpty(this.data.goods_list[this.data.checked].has_many_options[i].thumb) ? this.data.goods_list[
this.data.checked].thumb : this.data.goods_list[this.data.checked].has_many_options[i].thumb, //设置图片
popStock: this.data.goods_list[this.data.checked].has_many_options[i].stock, //设置库存
optionsId: this.data.goods_list[this.data.checked].has_many_options[i].id //设置规格ID用于生成订单
});
this.data.optionsMaxCount = this.data.goods_list[this.data.checked].has_many_options[i].stock; //库存最大数 用于切换更改买家购买数量
if (this.data.optionsMaxCount > 0) {
this.setData({
goodsCount: 1
});
}
break;
}
}
}
this.setData({
specsManage: specsManage
});
},
//处理商品goodsSpecs 并排序 新方法
setGoodsSpecsBySort(specs) {
let _specs = specs.split("_"); //先变成数组
//_specs.sort();//排序
_specs.sort(function(a, b) {
return a - b;
});
// 在组装回去
let goodsSpecs = "";
for (let j = 0; j < _specs.length; j++) {
goodsSpecs += _specs[j] + "_";
}
goodsSpecs = goodsSpecs.substring(0, goodsSpecs.length - 1); //处理"_"
return goodsSpecs;
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
let language = wx.getStorageSync('langIndex');
this.setData({ 'language': language.en});
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
var value = wx.getStorageSync('yz_uid');
var mid = '';
if (value) {
mid = value;
}
return {
path: '/packageB/member/distribution_queue/DistributionActivityDetail/DistributionActivityDetail?id=' + this.data
.id + '&mid=' + mid
};
},
onChange(e) {
let index = e.detail;
this.setData({
checked: Number(index)
});
},
//海报生成
postShow() {
if (this.data.posterImg) {
this.setData({
posterShow: true
});
} else {
let that = this;
let urlStr = app.getNetAddresss("plugin.commission-activity.api.activity-poster.index");
urlStr += '&id=' + this.data.id;
app._getNetWork({
url: urlStr,
success: function(resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
posterImg: res.data,
posterShow: true
});
} else {
that.setData({
posterShow: false
});
wx.showToast({
icon: 'none',
title: res.msg,
duration: 1500
});
}
},
fail: function(res) {
console.log(res);
}
});
}
},
gotoGoods(e) {
let id = e.currentTarget.dataset.id;
wx.navigateTo({
url: '/packageA/detail_v2/detail_v2?id=' + id + '&activity_id=' + this.data.id
});
},
});