Commit bd496afe authored by 刘攀's avatar 刘攀

Merge remote-tracking branch 'origin/bugfix/20190805-fix-bug'

parents 888ee7ca 906b319c
......@@ -412,7 +412,7 @@ export default {
// 默认选中指定选择的规格,或第一个有库存的规格
let { selectIndex } = this
if (selectIndex < 0) {
selectIndex = Object.keys(SKUResult).findIndex(k => SKUResult[k].stock > 0)
selectIndex = this._goodsDetail.entities.findIndex(cur => cur.stock > 0)
}
if (selectIndex > -1) {
let entitie = this._goodsDetail.entities[selectIndex]
......
......@@ -32,7 +32,6 @@ export default {
props: {
groupInfo: {
type: Object,
required: true,
},
customStyle: {
type: String,
......
import fetch from '@/utils/basic/fetch'
import storage from '@/utils/basic/storage'
import $store from '@/store'
import prompt from '@/utils/basic/prompt'
const API = {
clear: params => {
......@@ -36,25 +37,21 @@ class Cart {
// 获取购物车数据,如果本地存在,同步并返回更新
data(params = {}) {
return new Promise((resolve, reject) => {
let typeCate = params.type_cate
let cartData = {}
let storeId = storage.get('store_id')
// 获取餐饮外卖购物车
if (typeCate === 3) {
cartData = storage.get('takeout_cart_data') || {}
} else {
cartData = storage.get('cart_data') || {}
}
let storageCart = cartData[storeId] || []
const typeCate = params.type_cate
const storageName = typeCate === 3 ? 'takeout_cart_data' : 'cart_data'
const cartData = storage.get(storageName) || {}
const storeId = storage.get('store_id')
this.update(params).then(res => {
// 如果购物车为空时
// 如果购物车为空时
if (res.data.goods.length === 0) {
let cartData = {
// 数据存入本地
cartData[storeId] = []
storage.set(storageName, cartData)
return resolve({
data: [],
amount: (0).toFixed(2),
amount: '0.00',
sum: 0,
}
return resolve(cartData)
})
}
this.deal(res, typeCate).then(() => {
// 处理购物车数据
......@@ -85,27 +82,19 @@ class Cart {
})
}
// 如果购物车不为空则,将数据存入本地,并返回给视图端
let cartData = {}
let storeId = storage.get('store_id')
// 获取餐饮外卖购物车
if (typeCate === 3) {
cartData = storage.get('takeout_cart_data') || {}
cartData[storeId] = newCartData
storage.set('takeout_cart_data', cartData)
} else {
cartData = storage.get('cart_data') || {}
cartData[storeId] = newCartData
storage.set('cart_data', cartData)
}
cartData[storeId] = newCartData
storage.set(storageName, cartData)
let amount = 0
let sum = 0
newCartData.forEach(item => {
item.amount = (item.price * item.num).toFixed(2)
amount += Number(item.amount)
sum += Number(item.num)
})
resolve({
data: newCartData,
amount: amount.toFixed(2),
sum: res.data.count,
sum,
})
})
})
......@@ -352,7 +341,27 @@ class Cart {
entity: entityArr,
})
).then(res => {
resolve(res)
const { goods } = res.data
if (Object.prototype.toString.call(goods) === '[object Object]') {
// 移除已下架或失效商品
const invalid = []
Object.keys(goods).forEach(k => {
if (!goods[k].status) {
invalid.push(k)
delete goods[k]
}
})
if (invalid.length > 0) {
if (Object.keys(goods).length === 0) res.data.goods = []
prompt.toast('购物车已重置')
API.destroy({ ...params, entity: invalid })
resolve(res)
} else {
resolve(res)
}
} else {
resolve(res)
}
})
})
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment