123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- "use strict";
- const common_vendor = require("../../common/vendor.js");
- const sheep_api_trade_cart = require("../api/trade/cart.js");
- const cart = common_vendor.defineStore({
- id: "cart",
- state: () => ({
- shopNameMap: [],
- shopSkuMap: [],
- list: [],
- // 购物车列表
- selectedIds: [],
- // 已选列表
- isAllSelected: false,
- // 是否全选
- totalPriceSelected: 0
- // 选中项总金额
- }),
- actions: {
- // 获取购物车列表
- async getList() {
- const {
- data,
- code
- } = await sheep_api_trade_cart.CartApi.getCartList();
- if (code === 0) {
- this.list = data.validList;
- this.shopSkuMap = data.shopSkuMap;
- this.shopNameMap = data.shopNameMap;
- 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 sheep_api_trade_cart.CartApi.addCart({
- skuId: goodsInfo.id,
- count: goodsInfo.goods_num
- });
- if (code === 0) {
- await this.getList();
- }
- },
- // 更新购物车
- async update(goodsInfo) {
- const {
- code
- } = await sheep_api_trade_cart.CartApi.updateCartCount({
- id: goodsInfo.goods_id,
- count: goodsInfo.goods_num
- });
- if (code === 0) {
- await this.getList();
- }
- },
- // 移除购物车
- async delete(ids) {
- let id;
- if (typeof ids === "number") {
- id = ids;
- } else {
- id = ids.join(",");
- }
- const {
- code
- } = await sheep_api_trade_cart.CartApi.deleteCart(id);
- if (code === 0) {
- await this.getList();
- }
- },
- // 单选购物车商品
- async selectSingle(goodsId) {
- const {
- code
- } = await sheep_api_trade_cart.CartApi.updateCartSelected({
- ids: [goodsId],
- selected: !this.selectedIds.includes(goodsId)
- // 取反
- });
- if (code === 0) {
- await this.getList();
- }
- },
- // 全选购物车商品
- async selectAll(flag) {
- const {
- code
- } = await sheep_api_trade_cart.CartApi.updateCartSelected({
- ids: this.list.map((item) => item.id),
- selected: flag
- });
- if (code === 0) {
- await this.getList();
- }
- },
- // 清空购物车。注意,仅用于用户退出时,重置数据
- emptyList() {
- this.list = [];
- this.selectedIds = [];
- this.isAllSelected = true;
- this.totalPriceSelected = 0;
- }
- },
- persist: {
- enabled: true,
- strategies: [{
- key: "cart-store"
- }]
- }
- });
- const __vite_glob_0_1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
- __proto__: null,
- default: cart
- }, Symbol.toStringTag, { value: "Module" }));
- exports.__vite_glob_0_1 = __vite_glob_0_1;
- exports.cart = cart;
|