清空
This commit is contained in:
@@ -1,103 +0,0 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import CartApi from '@/sheep/api/trade/cart';
|
||||
|
||||
const cart = defineStore({
|
||||
id: 'cart',
|
||||
state: () => ({
|
||||
list: [], // 购物车列表
|
||||
selectedIds: [], // 已选列表
|
||||
isAllSelected: false, // 是否全选
|
||||
totalPriceSelected: 0, // 选中项总金额
|
||||
}),
|
||||
actions: {
|
||||
// 获取购物车列表
|
||||
async getList() {
|
||||
const { data, code } = await CartApi.getCartList();
|
||||
if (code === 0) {
|
||||
this.list = data.validList;
|
||||
|
||||
// 计算各种关联属性
|
||||
this.selectedIds = [];
|
||||
this.isAllSelected = true;
|
||||
this.totalPriceSelected = 0;
|
||||
this.list.forEach((item) => {
|
||||
if (item.selected) {
|
||||
this.selectedIds.push(item.id);
|
||||
this.totalPriceSelected += item.count * item.sku.price;
|
||||
} else {
|
||||
this.isAllSelected = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 添加购物车
|
||||
async add(goodsInfo) {
|
||||
// 添加购物项
|
||||
const { code } = await CartApi.addCart({
|
||||
skuId: goodsInfo.id,
|
||||
count: goodsInfo.goods_num,
|
||||
});
|
||||
// 刷新购物车列表
|
||||
if (code === 0) {
|
||||
await this.getList();
|
||||
}
|
||||
},
|
||||
|
||||
// 更新购物车
|
||||
async update(goodsInfo) {
|
||||
const { code } = await CartApi.updateCartCount({
|
||||
id: goodsInfo.goods_id,
|
||||
count: goodsInfo.goods_num,
|
||||
});
|
||||
if (code === 0) {
|
||||
await this.getList();
|
||||
}
|
||||
},
|
||||
|
||||
// 移除购物车
|
||||
async delete(ids) {
|
||||
const { code } = await CartApi.deleteCart(ids.join(','));
|
||||
if (code === 0) {
|
||||
await this.getList();
|
||||
}
|
||||
},
|
||||
|
||||
// 单选购物车商品
|
||||
async selectSingle(goodsId) {
|
||||
const { code } = await CartApi.updateCartSelected({
|
||||
ids: [goodsId],
|
||||
selected: !this.selectedIds.includes(goodsId), // 取反
|
||||
});
|
||||
if (code === 0) {
|
||||
await this.getList();
|
||||
}
|
||||
},
|
||||
|
||||
// 全选购物车商品
|
||||
async selectAll(flag) {
|
||||
const { code } = await CartApi.updateCartSelected({
|
||||
ids: this.list.map((item) => item.id),
|
||||
selected: flag
|
||||
});
|
||||
if (code === 0) {
|
||||
await this.getList();
|
||||
}
|
||||
},
|
||||
|
||||
// 清空购物车
|
||||
async emptyList() {
|
||||
await this.delete(this.list.map((item) => item.id));
|
||||
},
|
||||
},
|
||||
persist: {
|
||||
enabled: true,
|
||||
strategies: [
|
||||
{
|
||||
key: 'cart-store',
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
export default cart;
|
||||
Reference in New Issue
Block a user