first commit
This commit is contained in:
444
衣莎项目/源码/YiShaXiYi/pages/laundry/laundry.js
Normal file
444
衣莎项目/源码/YiShaXiYi/pages/laundry/laundry.js
Normal file
@@ -0,0 +1,444 @@
|
||||
// pages/laundry/laundry.js
|
||||
const app = getApp();
|
||||
const regeneratorRuntime = app.loadAsync()
|
||||
const model = app.loadModel("index")
|
||||
const util = app.loadUtils("util")
|
||||
const http = app.loadHttp()
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
system: app.globalData.system, //设备相关信息
|
||||
pageTitle: "洗衣", //头部标题
|
||||
isAccount: false, // 公众号
|
||||
isBack: true,//显示返回
|
||||
visible: false,//购物弹窗
|
||||
isTips: true,//顶部小提示
|
||||
laundryBig: [
|
||||
{
|
||||
id: null,
|
||||
name: ""
|
||||
}
|
||||
],//洗衣大分类
|
||||
bigSelect: null,//大分类的选中
|
||||
laundrySom: [],//洗衣小分类
|
||||
cart: [],//购物车数据
|
||||
allPrice: 0,//全部价格
|
||||
page: 1,//分页
|
||||
isPage: false,
|
||||
group_type: 0,//团体id
|
||||
type: 1,//如果是1则是普洗2是工服
|
||||
},
|
||||
// 获取大分类列表
|
||||
async getLaundryBig() {
|
||||
let data = {
|
||||
group_type: this.data.group_type,
|
||||
type: this.data.type
|
||||
}
|
||||
let res = await http.http.request2({ url: `${http.api.shopCategory}`, method: "GET", data: data })
|
||||
this.setData({
|
||||
laundryBig: res.data.data,
|
||||
bigSelect: this.data.bigSelect != null ? this.data.bigSelect : res.data.data[0].id
|
||||
})
|
||||
this.getLaundrySom()
|
||||
},
|
||||
// 获取小分类列表
|
||||
async getLaundrySom() {
|
||||
if (this.data.isPage) {
|
||||
wx.showToast({
|
||||
title: '已经到底了哦!',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
return
|
||||
}
|
||||
wx.showLoading({
|
||||
title: '加载中',
|
||||
})
|
||||
let res = await http.http.request1({ url: `${http.api.shopProduct}/${this.data.bigSelect}`, method: "GET", data: { page: this.data.page, limit: 10 } })
|
||||
let som = res.data.data.list
|
||||
let laundrySom = this.data.laundrySom
|
||||
if (som.length <= 0) {
|
||||
wx.hideLoading()
|
||||
wx.showToast({
|
||||
title: '暂无数据',
|
||||
icon: 'none',
|
||||
duration: 2000
|
||||
})
|
||||
return
|
||||
}
|
||||
if (som.length < 10) {
|
||||
this.setData({
|
||||
isPage: true
|
||||
})
|
||||
}
|
||||
som.map((v, i) => {
|
||||
som[i].num = 0
|
||||
})
|
||||
this.setData({
|
||||
laundrySom: [...laundrySom, ...som],
|
||||
})
|
||||
this.getCart()
|
||||
wx.hideLoading()
|
||||
},
|
||||
// scroll-view 触底
|
||||
bindscrolltolower() {
|
||||
this.setData({
|
||||
page: ++this.data.page
|
||||
})
|
||||
this.getLaundrySom()
|
||||
},
|
||||
//弹出层开启关闭
|
||||
onClose() {
|
||||
this.setData({
|
||||
visible: !this.data.visible
|
||||
})
|
||||
},
|
||||
// 打开弹出层
|
||||
onOpen() {
|
||||
this.setData({
|
||||
visible: true
|
||||
})
|
||||
},
|
||||
// 大分类选中
|
||||
bigType(e) {
|
||||
this.setData({
|
||||
bigSelect: e.currentTarget.dataset.id,
|
||||
page: 1,
|
||||
isPage: false,
|
||||
laundrySom: []
|
||||
})
|
||||
this.getLaundrySom()
|
||||
},
|
||||
// 把最新的购物车数据set到本地缓存
|
||||
async setCart() {
|
||||
model.storage.setStorage("cart", this.data.cart)
|
||||
},
|
||||
// 获取缓存中的购物车数据
|
||||
async getCart() {
|
||||
let cartStorage = await model.storage.getSetting("cart") || []
|
||||
let laundrySom = this.data.laundrySom
|
||||
laundrySom.map((v, i) => {
|
||||
let m = cartStorage.filter(n => {
|
||||
return v.id == n.id
|
||||
})
|
||||
if (m.length > 0) {
|
||||
laundrySom[i] = m[0]
|
||||
}
|
||||
})
|
||||
this.setData({
|
||||
laundrySom: laundrySom,
|
||||
cart: cartStorage
|
||||
})
|
||||
this.calComPri()
|
||||
},
|
||||
// 加商品方法
|
||||
plusShop(e) {
|
||||
let item = e.currentTarget.dataset.item //当前要添加的商品
|
||||
let cart = this.data.cart //购物车
|
||||
let Som = this.data.laundrySom // 商品列表
|
||||
let num = ++item.num
|
||||
if (cart.length == 0) {
|
||||
item.num = num
|
||||
this.setData({
|
||||
cart: [item]
|
||||
})
|
||||
} else {
|
||||
// 如果cart循环完还没有重复项,则把item push进去
|
||||
for (let i = 0; i < cart.length; i++) {
|
||||
|
||||
// 点击的时候判断购物车是否有窗帘套餐
|
||||
if (cart[i].id == 17018 || cart[i].id == 17019 || cart[i].id == 17020) {
|
||||
if (item.id == 17018 || item.id == 17019 || item.id == 17020) {
|
||||
console.log("允许继续添加跟多的窗帘商品")
|
||||
} else {
|
||||
model.msg.dataMsg({
|
||||
content: "预售套餐不与其他衣物同时下单哦",
|
||||
type: "warning"
|
||||
});
|
||||
Som.map((v, i) => {
|
||||
Som[i].num = 0
|
||||
})
|
||||
this.setData({
|
||||
cart: [],
|
||||
laundrySom: Som
|
||||
})
|
||||
this.setCart()
|
||||
this.calComPri()
|
||||
return
|
||||
}
|
||||
// 如果购物车都是普通套餐
|
||||
} else {
|
||||
// 之后你在普通套餐的购物车中添加了窗帘淘宝
|
||||
if (item.id == 17018 || item.id == 17019 || item.id == 17020) {
|
||||
model.msg.dataMsg({
|
||||
content: "预售套餐不与其他衣物同时下单哦",
|
||||
type: "warning"
|
||||
});
|
||||
Som.map((v, i) => {
|
||||
Som[i].num = 0
|
||||
})
|
||||
this.setData({
|
||||
cart: [],
|
||||
laundrySom: Som
|
||||
})
|
||||
this.setCart()
|
||||
this.calComPri()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (cart[i].id == item.id) {
|
||||
cart[i].num = num
|
||||
break;
|
||||
}
|
||||
if (cart.length - 1 == i) {
|
||||
cart.push(item)
|
||||
}
|
||||
}
|
||||
this.setData({
|
||||
cart: cart
|
||||
})
|
||||
}
|
||||
Som.map((v, i) => {
|
||||
if (v.id == item.id) {
|
||||
Som[i].num = num
|
||||
}
|
||||
})
|
||||
this.setData({
|
||||
laundrySom: Som
|
||||
})
|
||||
// 每当修改购物车时把最近数据放到本地缓存
|
||||
this.setCart()
|
||||
this.calComPri()
|
||||
},
|
||||
// 减商品的方法
|
||||
reduceShop(e) {
|
||||
let that = this
|
||||
let item = e.currentTarget.dataset.item //当前要添加的商品
|
||||
let cart = that.data.cart //购物车
|
||||
let Som = that.data.laundrySom // 商品列表
|
||||
let num = --item.num
|
||||
cart.map((v, i) => {
|
||||
if (v.id == item.id) {
|
||||
cart[i].num = num
|
||||
if (cart[i].num <= 0) {
|
||||
cart.splice(i, 1)
|
||||
}
|
||||
}
|
||||
})
|
||||
Som.map((v, i) => {
|
||||
if (v.id == item.id) {
|
||||
Som[i].num = num
|
||||
}
|
||||
})
|
||||
// 判断如果num减少到0时提示是否删除
|
||||
if (num == 0) {
|
||||
wx.showModal({
|
||||
title: '删除商品',
|
||||
content: '点击确定删除',
|
||||
confirmText: "确认",
|
||||
cancelText: "取消",
|
||||
success(res) {
|
||||
if (res.confirm) {
|
||||
that.setData({
|
||||
laundrySom: Som,
|
||||
cart: cart
|
||||
})
|
||||
// 每当修改购物车时把最近数据放到本地缓存
|
||||
that.setCart()
|
||||
that.calComPri()
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
that.setData({
|
||||
laundrySom: Som,
|
||||
cart: cart
|
||||
})
|
||||
// 每当修改购物车时把最近数据放到本地缓存
|
||||
that.setCart()
|
||||
this.calComPri()
|
||||
}
|
||||
},
|
||||
// 清空购物车
|
||||
emptyCart() {
|
||||
let laundrySom = this.data.laundrySom
|
||||
let that = this
|
||||
if (this.data.cart.length <= 0) {
|
||||
model.msg.dataMsg({
|
||||
content: "暂无商品",
|
||||
type: "warning"
|
||||
})
|
||||
return
|
||||
}
|
||||
wx.showModal({
|
||||
title: '清空购物车',
|
||||
content: '点击确定清空',
|
||||
confirmText: "确认",
|
||||
cancelText: "取消",
|
||||
success(res) {
|
||||
if (res.confirm) {
|
||||
laundrySom.map((v, i) => {
|
||||
laundrySom[i].num = 0
|
||||
})
|
||||
that.setData({
|
||||
cart: [],
|
||||
laundrySom: laundrySom
|
||||
})
|
||||
that.setCart()
|
||||
that.onClose()
|
||||
that.calComPri()
|
||||
// 删除成功提示用户
|
||||
model.msg.dataMsg({
|
||||
content: "删除成功",
|
||||
type: "success"
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 点击确定
|
||||
async _sure() {
|
||||
let isCurtains = 0; // 0 没有窗帘, 1 有窗帘
|
||||
let laundrySom = this.data.laundrySom
|
||||
let userInfo = app.globalData.userInfo
|
||||
let cart = this.data.cart
|
||||
let that = this
|
||||
if (cart.length > 0) {
|
||||
// 只要购物车中第一条商品是窗帘其中一个
|
||||
if(cart[0].id == 17018 || cart[0].id == 17019 || cart[0].id == 17020 ) {
|
||||
isCurtains = 1
|
||||
} else {
|
||||
isCurtains = 0
|
||||
}
|
||||
|
||||
let isLogin = await util.isLoginJump()
|
||||
if (isLogin == 1) return;
|
||||
} else if (cart.length <= 0) {
|
||||
return
|
||||
}
|
||||
// if (userInfo.cupboard_num != -1) {
|
||||
// wx.navigateTo({
|
||||
// url: "/user/wardrobe/wardrobe"
|
||||
// })
|
||||
// } else {
|
||||
wx.navigateTo({
|
||||
url: "/user/appointment/appointment?shopCart=" + JSON.stringify(cart) + '&type=' + this.data.type + '&group_type=' + this.data.group_type + '&isCurtains=' + isCurtains
|
||||
})
|
||||
// }
|
||||
// laundrySom.map((v, i) => {
|
||||
// laundrySom[i].num = 0
|
||||
// })
|
||||
// that.setData({
|
||||
// cart: [],
|
||||
// laundrySom: laundrySom
|
||||
// })
|
||||
// that.setCart()
|
||||
},
|
||||
// 计算商品价格
|
||||
calComPri() {
|
||||
let cart = this.data.cart
|
||||
let all = 0
|
||||
cart.map((v, i) => {
|
||||
all += v.num * v.price
|
||||
})
|
||||
this.setData({
|
||||
allPrice: all.toFixed(2)
|
||||
})
|
||||
},
|
||||
// 关闭顶部小提示
|
||||
closeTips() {
|
||||
this.setData({
|
||||
isTips: false
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
if (options.id == "36") {
|
||||
console.log("36")
|
||||
// true 从公众号进入
|
||||
this.setData({
|
||||
isAccount: true
|
||||
})
|
||||
}
|
||||
// 进入页面清除缓存中的购物车数据
|
||||
model.storage.setStorage("cart", [])
|
||||
// 如果有group_type说明是团体用户
|
||||
if (!!options.group_type) {
|
||||
this.setData({
|
||||
group_type: options.group_type,
|
||||
type: options.type
|
||||
})
|
||||
}
|
||||
if (!!options.id) {
|
||||
this.setData({
|
||||
bigSelect: options.id
|
||||
})
|
||||
} else {
|
||||
this.setData({
|
||||
bigSelect: this.data.laundryBig[0].id
|
||||
})
|
||||
}
|
||||
this.getLaundryBig()
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
this.calComPri()
|
||||
// TODO 不需要重复请求
|
||||
if (this.data.isAccount) {
|
||||
this.getLaundryBig()
|
||||
}
|
||||
// this.getLaundryBig()
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function () {
|
||||
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user