修复冲突

Signed-off-by: Bluemark <kongdy@bluemark.cn>
This commit is contained in:
Bluemark
2023-12-13 01:56:36 +00:00
committed by Gitee
24 changed files with 1231 additions and 1147 deletions
+2 -2
View File
@@ -23,8 +23,8 @@ const app = defineStore({
copytime: '', // 版权信息 II
},
platform: {
payment: [], // 支持的支付方式
recharge_payment: [], // 支持的充值支付方式
payment: [], // 支持的支付方式 TODO 芋艿:可删除
recharge_payment: [], // 支持的充值支付方式 TODO 芋艿:可删除
share: {
methods: [], // 支持的分享方式
forwardInfo: {}, // 默认转发信息
+93 -110
View File
@@ -1,120 +1,103 @@
import {
defineStore
} from 'pinia';
import cartApi from '@/sheep/api/cart';
import { defineStore } from 'pinia';
import CartApi from '@/sheep/api/trade/cart';
const cart = defineStore({
id: 'cart',
state: () => ({
list: [], // 购物车列表
selectedIds: [], // 已选列表
isAllSelected: false, //是否全选
cartSelectedTotalPrice: '0.00', // 选中项总金额
}),
getters: {
totalPriceSelected: (state) => {
let price = 0;
if (!state.selectedIds.length) return price.toFixed(2);
state.list.forEach((item) => {
price += state.selectedIds.includes(item.id) ?
Number(item.sku.price / 100) * item.count :
0;
});
return price.toFixed(2);
},
},
actions: {
// 获取购物车列表
async getList() {
const {
data,
code
} = await cartApi.list();
if (code === 0) {
this.list = data.validList;
}
},
// 添加购物车
async add(goodsInfo) {
console.log()
const {
code
} = await cartApi.append({
// goods_id: goodsInfo.goods_id,
// goods_num: goodsInfo.goods_num,
// goods_sku_price_id: goodsInfo.id,
count: goodsInfo.goods_num,
skuId: goodsInfo.id,
});
if (code === 0) {
this.getList();
}
},
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;
// 更新购物车
async update(goodsInfo) {
const {
error
} = await cartApi.update({
id: goodsInfo.goods_id,
count: goodsInfo.goods_num,
goods_sku_price_id: goodsInfo.goods_sku_price_id,
});
if (error === 0) {
// this.getList();
}
},
// 计算各种关联属性
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 delete(ids) {
if (typeof ids === 'array') {
ids = ids.join(',');
}
const {
code
} = await cartApi.delete(ids);
if (code === 0) {
this.selectAll(false);
this.getList();
}
},
// 添加购物车
async add(goodsInfo) {
// 添加购物项
const { code } = await CartApi.addCart({
skuId: goodsInfo.id,
count: goodsInfo.goods_num,
});
// 刷新购物车列表
if (code === 0) {
await this.getList();
}
},
// 选择购物车商品
selectSingle(goodsId) {
if (!this.selectedIds.includes(goodsId)) {
this.selectedIds.push(goodsId);
} else {
this.selectedIds.splice(this.selectedIds.indexOf(goodsId), 1);
}
this.isAllSelected = this.selectedIds.length === this.list.length;
},
// 更新购物车
async update(goodsInfo) {
const { code } = await CartApi.updateCartCount({
id: goodsInfo.goods_id,
count: goodsInfo.goods_num,
});
if (code === 0) {
await this.getList();
}
},
// 全选
selectAll(flag) {
this.isAllSelected = flag;
if (!flag) {
this.selectedIds = [];
} else {
this.list.forEach((item) => {
this.selectedIds.push(item.id);
});
}
},
// 移除购物车
async delete(ids) {
const { code } = await CartApi.deleteCart(ids.join(','));
if (code === 0) {
await this.getList();
}
},
// 清空购物车
emptyList() {
this.list = [];
this.selectedIds = [];
this.isAllSelected = false;
this.cartSelectedTotalPrice = '0.00';
},
},
persist: {
enabled: true,
strategies: [{
key: 'cart-store',
}, ],
},
// 单选购物车商品
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;