// subPackagesE/pages/giftBagSize/giftBagSize.js import { get, post } from '../../../utils/http' Page({ /** * 页面的初始数据 */ data: { id: '', //礼盒ID giftBagList: [], //礼包分配列表 selectGiftList: [], //选中的列表 giftBagListOne: [], //不用分配列表 selectSum: '', //选中的次数 num: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十'], }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.setData({ id: options.id }) // 获取礼包列表 this.getGiftBagList() }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { }, // 获取礼包列表 getGiftBagList() { get('v2/api/package/info', { id: this.data.id }, (res => { let giftBagList = [] //分配 let giftBagListOne = [] //不分配 res.data.items.forEach(item => { if (item.type == 2) { // 添加选择次数 item.selectNum = 0 item.goods_list.forEach(item1 => { // 添加选择状态 item1.status = false // 添加每个产品的数量 item1.num = 0 }) giftBagList.push(item) } else { giftBagListOne.push(item) } }) this.setData({ giftBagList, giftBagListOne, giftBagInfo: res.data }) // 将不用分配的添加到数组里 let selectGiftList = this.data.selectGiftList this.data.giftBagListOne.forEach(item => { item.goods_list.forEach(itemA => { let list = {} list.item_id = item.id list.goods_id = itemA.id list.num = 1 list.goods_name = itemA.goods_name list.cover_url = itemA.cover_url selectGiftList.push(list) this.setData({ selectGiftList }) }) }) })) }, // 选择规格 selectGift(e) { let itemA = e.currentTarget.dataset.itema //单个产品的信息 let item = e.currentTarget.dataset.item //整个商品分类的信息 // 判断是否是多选 if(item.num>1){ return } let indexA = e.currentTarget.dataset.indexa //产品index let index = e.currentTarget.dataset.index //分类index let selectGiftList = this.data.selectGiftList //选中的商品ID列表 let itemSum = item.num //商品分类可选的最大次数 // 超过最大次数返回 if (item.selectNum == itemSum && !itemA.status) { wx.showToast({ title: `你已选择${itemSum}次`, icon: 'none' }) return } // 选中改变商品状态 let giftBagStatus = `giftBagList[${index}].goods_list[${indexA}].status` this.setData({ [giftBagStatus]: !this.data.giftBagList[index].goods_list[indexA].status }) // 计算是否超过选择的最大次数 let selectNum = `giftBagList[${index}].selectNum` let sum = 0 this.data.giftBagList[index].goods_list.forEach(itemB => { if (itemB.status) { sum = ++sum } }) this.setData({ [selectNum]: sum }) //添加选中的ID到列表中 let list = {} let flag = false let selectIndex = '' selectGiftList.forEach((selectItem, Index) => { if (selectItem.goods_id == itemA.id) { flag = true selectIndex = Index } }) if (!flag) { list.item_id = item.id list.goods_id = itemA.id list.num = 1 list.goods_name = itemA.goods_name list.cover_url = itemA.cover_url selectGiftList.push(list) } else { selectGiftList.splice(selectIndex, 1) } this.setData({ selectGiftList }) }, // 加产品 add(e) { let index = e.currentTarget.dataset.index //分类的下标A let indexA = e.currentTarget.dataset.indexa //产品的下标 let itemSum = e.currentTarget.dataset.item.num //每个分类的可选总次数 let itemSelectNum = e.currentTarget.dataset.item.selectNum //每个分类已经选择的次数 // 如果加购产品数量大于总次数就返回 if (itemSelectNum + 1 > itemSum) { return } let giftBagNum = `giftBagList[${index}].goods_list[${indexA}].num` let selectNum = `giftBagList[${index}].selectNum` this.setData({ [giftBagNum]: this.data.giftBagList[index].goods_list[indexA].num+1, [selectNum]:this.data.giftBagList[index].selectNum+1 }) let selectGiftList =[] this.data.giftBagList.forEach(item=>{ item.goods_list.forEach(itemA=>{ if(itemA.num>0){ let list = {} list.item_id = item.id list.goods_id = itemA.id list.num = itemA.num list.goods_name = itemA.goods_name list.cover_url = itemA.cover_url selectGiftList.push(list) } }) }) this.setData({ selectGiftList }) }, // 减产品 reduce(e) { let index = e.currentTarget.dataset.index //分类的下标A let indexA = e.currentTarget.dataset.indexa //产品的下标 let itemSelectNum = e.currentTarget.dataset.item.selectNum //每个分类已经选择的次数 if ( this.data.giftBagList[index].goods_list[indexA].num == 0) { return } let giftBagNum = `giftBagList[${index}].goods_list[${indexA}].num` let selectNum = `giftBagList[${index}].selectNum` this.setData({ [giftBagNum]: this.data.giftBagList[index].goods_list[indexA].num-1, [selectNum]:this.data.giftBagList[index].selectNum-1 }) }, //确认选择 affrimSelect() { // 判断是否分配完毕 let flag = false this.data.giftBagList.forEach(item => { if (item.selectNum != item.num) { flag = true } }) if (flag) { wx.showToast({ title: '您还有商品没有选择完毕', icon: 'none' }) return } wx.navigateTo({ url: `/subPackagesE/pages/giftBagOrder/giftBagOrder?productList=${JSON.stringify(this.data.selectGiftList)}&&giftID=${this.data.id}`, }) } })