@pisell/pisellos 3.0.37 → 3.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -69,8 +69,10 @@ export interface CartItem {
69
69
  name?: string;
70
70
  /** 商品价格 */
71
71
  price?: number | string;
72
- /** 商品总价 */
72
+ /** 单个商品包括商品本身价格+套餐价格+规格等价格得出来的 */
73
73
  total?: number | string;
74
+ /** 基于 total 乘以 商品数量的价格 */
75
+ summaryTotal?: number | string;
74
76
  /** 商品原价总价,排除原始价格为0的场景 */
75
77
  origin_total?: number | string;
76
78
  /** 商品数量 */
@@ -61,6 +61,7 @@ export var formatProductToCartItem = function formatProductToCartItem(params) {
61
61
  options: options,
62
62
  num: num
63
63
  });
64
+ cartItem.summaryTotal = cartItem.total * (num || 1);
64
65
  cartItem.origin_total = getProductOriginTotalPrice({
65
66
  product: product,
66
67
  bundle: bundle,
@@ -161,7 +162,7 @@ export var getProductTotalPrice = function getProductTotalPrice(params) {
161
162
  var product = params.product,
162
163
  bundle = params.bundle,
163
164
  options = params.options;
164
- var num = params.num || 1;
165
+ // const num = params.num || 1;
165
166
  var price = Number(product.price);
166
167
  if (bundle !== null && bundle !== void 0 && bundle.length) {
167
168
  price = bundle.reduce(function (accumulator, currentValue) {
@@ -175,7 +176,7 @@ export var getProductTotalPrice = function getProductTotalPrice(params) {
175
176
  return accumulator + Number(currentValue.price) * Number(currentValue.num);
176
177
  }, price);
177
178
  }
178
- return price * num;
179
+ return price;
179
180
  };
180
181
 
181
182
  /**
@@ -28,7 +28,7 @@ export var calculateSubtotal = function calculateSubtotal(items) {
28
28
  return '0.00';
29
29
  }
30
30
  var subtotal = items.reduce(function (sum, item) {
31
- var cartItemTotalPrice = new Decimal(item.total || 0);
31
+ var cartItemTotalPrice = new Decimal(item.summaryTotal || 0);
32
32
  return sum.plus(cartItemTotalPrice);
33
33
  }, new Decimal(0));
34
34
  return subtotal.toFixed(2);
@@ -50,7 +50,7 @@ export var calculateTaxFee = function calculateTaxFee(shopInfo, items) {
50
50
  is_price_include_tax = _ref.is_price_include_tax,
51
51
  tax_rate = _ref.tax_rate;
52
52
  var totalTaxFee = items.reduce(function (sum, item) {
53
- var cartItemTotalPrice = new Decimal(item.total || 0);
53
+ var cartItemTotalPrice = new Decimal(item.summaryTotal || 0);
54
54
  var taxRate = new Decimal(tax_rate || 0).div(100);
55
55
  var productTaxRate = cartItemTotalPrice.times(taxRate).times((item === null || item === void 0 ? void 0 : item.is_charge_tax) || 0).div(taxRate.times(is_price_include_tax || 0).plus(1));
56
56
  return sum.plus(productTaxRate);
@@ -42,10 +42,11 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
42
42
  * 更新step
43
43
  */
44
44
  updateStep(key: string, step: IStep): void;
45
- loadProducts({ category_ids, product_ids, collection, }: {
45
+ loadProducts({ category_ids, product_ids, collection, schedule_date, }: {
46
46
  category_ids?: number[];
47
47
  product_ids?: number[];
48
48
  collection?: number | string[];
49
+ schedule_date?: string;
49
50
  }): Promise<any>;
50
51
  loadProductByScheduleDate({ date, product_ids, category_ids, }: {
51
52
  date: string;
@@ -209,11 +209,11 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
209
209
  key: "loadProducts",
210
210
  value: function () {
211
211
  var _loadProducts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref) {
212
- var _ref$category_ids, category_ids, _ref$product_ids, product_ids, _ref$collection, collection, userPlugin, customer_id, _userPlugin$get, productsData;
212
+ var _ref$category_ids, category_ids, _ref$product_ids, product_ids, _ref$collection, collection, schedule_date, userPlugin, customer_id, _userPlugin$get, productsData;
213
213
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
214
214
  while (1) switch (_context2.prev = _context2.next) {
215
215
  case 0:
216
- _ref$category_ids = _ref.category_ids, category_ids = _ref$category_ids === void 0 ? [] : _ref$category_ids, _ref$product_ids = _ref.product_ids, product_ids = _ref$product_ids === void 0 ? [] : _ref$product_ids, _ref$collection = _ref.collection, collection = _ref$collection === void 0 ? [] : _ref$collection;
216
+ _ref$category_ids = _ref.category_ids, category_ids = _ref$category_ids === void 0 ? [] : _ref$category_ids, _ref$product_ids = _ref.product_ids, product_ids = _ref$product_ids === void 0 ? [] : _ref$product_ids, _ref$collection = _ref.collection, collection = _ref$collection === void 0 ? [] : _ref$collection, schedule_date = _ref.schedule_date;
217
217
  // // 如果 schedule_ids 为空,则需要尝试从 schedule 模块里获取
218
218
  // if (!schedule_ids?.length) {
219
219
  // const schedule_ids_data = this.store.schedule
@@ -247,9 +247,9 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
247
247
  category_ids: category_ids,
248
248
  ids: product_ids,
249
249
  collection: collection,
250
- front_end_cache_id: this.cacheId
250
+ front_end_cache_id: this.cacheId,
251
251
  // client_schedule_ids: schedule_ids,
252
- // schedule_date,
252
+ schedule_date: schedule_date
253
253
  }, {
254
254
  useCache: true
255
255
  });
@@ -318,8 +318,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
318
318
  return this.loadProducts({
319
319
  // schedule_ids: scheduleIds,
320
320
  product_ids: allProductIds,
321
- category_ids: category_ids
322
- // schedule_date: date,
321
+ category_ids: category_ids,
322
+ schedule_date: date
323
323
  });
324
324
  case 9:
325
325
  return _context3.abrupt("return", _context3.sent);
@@ -2467,8 +2467,13 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2467
2467
  // m.times 需要做个过滤,假设 timeSlice.start_at 是 09:30 timeSlice.end_at 是 11:30
2468
2468
  // time 是 time.start_at = 2025-05-26 10:30, time.end_at = 2025-05-26 12:30
2469
2469
  // 需要判断 time 的开始结束时间 是否包含timeSlice的开始结束时间
2470
+
2471
+ // n.start_at 是 2025-06-30 15:00 end_at 2025-06-30 17:00
2472
+ // item.start 是 2025-06-30 16:00 item.end 是 2025-06-30 19:00
2473
+ // 需要判断 n.start_at 和 n.end_at 是否在 item.start 和 item.end 之间
2474
+ // 如果 n.start_at 和 n.end_at 在 item.start 和 item.end 有交集,则此时间需要计算
2470
2475
  var mTimes = m.times.filter(function (n) {
2471
- return !dayjs(n.start_at).isAfter(dayjs(item.start), 'minute') && !dayjs(n.end_at).isBefore(dayjs(item.end), 'minute');
2476
+ return !dayjs(n.start_at).isAfter(dayjs(item.start), 'minute') && !dayjs(n.end_at).isBefore(dayjs(item.end), 'minute') || dayjs(n.start_at).isBefore(dayjs(item.end), 'minute') && dayjs(n.end_at).isAfter(dayjs(item.start), 'minute');
2472
2477
  });
2473
2478
  // 如果在这个区间的时间一个都没有,可以直接认为这个资源不可用
2474
2479
  if (mTimes.length === 0) {
@@ -69,8 +69,10 @@ export interface CartItem {
69
69
  name?: string;
70
70
  /** 商品价格 */
71
71
  price?: number | string;
72
- /** 商品总价 */
72
+ /** 单个商品包括商品本身价格+套餐价格+规格等价格得出来的 */
73
73
  total?: number | string;
74
+ /** 基于 total 乘以 商品数量的价格 */
75
+ summaryTotal?: number | string;
74
76
  /** 商品原价总价,排除原始价格为0的场景 */
75
77
  origin_total?: number | string;
76
78
  /** 商品数量 */
@@ -74,6 +74,7 @@ var formatProductToCartItem = (params) => {
74
74
  cartItem.price = product == null ? void 0 : product.price;
75
75
  cartItem.num = num;
76
76
  cartItem.total = getProductTotalPrice({ product, bundle, options, num });
77
+ cartItem.summaryTotal = cartItem.total * (num || 1);
77
78
  cartItem.origin_total = getProductOriginTotalPrice({
78
79
  product,
79
80
  bundle,
@@ -163,7 +164,6 @@ var formatProductToCartItemOrigin = (params) => {
163
164
  };
164
165
  var getProductTotalPrice = (params) => {
165
166
  const { product, bundle, options } = params;
166
- const num = params.num || 1;
167
167
  let price = Number(product.price);
168
168
  if (bundle == null ? void 0 : bundle.length) {
169
169
  price = bundle.reduce((accumulator, currentValue) => {
@@ -175,7 +175,7 @@ var getProductTotalPrice = (params) => {
175
175
  return accumulator + Number(currentValue.price) * Number(currentValue.num);
176
176
  }, price);
177
177
  }
178
- return price * num;
178
+ return price;
179
179
  };
180
180
  var getProductOriginTotalPrice = (params) => {
181
181
  const { product, bundle, options } = params;
@@ -55,7 +55,7 @@ var calculateSubtotal = (items) => {
55
55
  return "0.00";
56
56
  }
57
57
  const subtotal = items.reduce((sum, item) => {
58
- const cartItemTotalPrice = new import_decimal.default(item.total || 0);
58
+ const cartItemTotalPrice = new import_decimal.default(item.summaryTotal || 0);
59
59
  return sum.plus(cartItemTotalPrice);
60
60
  }, new import_decimal.default(0));
61
61
  return subtotal.toFixed(2);
@@ -66,7 +66,7 @@ var calculateTaxFee = (shopInfo, items) => {
66
66
  }
67
67
  const { is_price_include_tax, tax_rate } = shopInfo || {};
68
68
  const totalTaxFee = items.reduce((sum, item) => {
69
- const cartItemTotalPrice = new import_decimal.default(item.total || 0);
69
+ const cartItemTotalPrice = new import_decimal.default(item.summaryTotal || 0);
70
70
  const taxRate = new import_decimal.default(tax_rate || 0).div(100);
71
71
  const productTaxRate = cartItemTotalPrice.times(taxRate).times((item == null ? void 0 : item.is_charge_tax) || 0).div(taxRate.times(is_price_include_tax || 0).plus(1));
72
72
  return sum.plus(productTaxRate);
@@ -42,10 +42,11 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
42
42
  * 更新step
43
43
  */
44
44
  updateStep(key: string, step: IStep): void;
45
- loadProducts({ category_ids, product_ids, collection, }: {
45
+ loadProducts({ category_ids, product_ids, collection, schedule_date, }: {
46
46
  category_ids?: number[];
47
47
  product_ids?: number[];
48
48
  collection?: number | string[];
49
+ schedule_date?: string;
49
50
  }): Promise<any>;
50
51
  loadProductByScheduleDate({ date, product_ids, category_ids, }: {
51
52
  date: string;
@@ -163,9 +163,9 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
163
163
  async loadProducts({
164
164
  category_ids = [],
165
165
  product_ids = [],
166
- collection = []
166
+ collection = [],
167
167
  // schedule_ids = [],
168
- // schedule_date,
168
+ schedule_date
169
169
  }) {
170
170
  var _a;
171
171
  let userPlugin = this.core.getPlugin("user");
@@ -196,9 +196,9 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
196
196
  category_ids,
197
197
  ids: product_ids,
198
198
  collection,
199
- front_end_cache_id: this.cacheId
199
+ front_end_cache_id: this.cacheId,
200
200
  // client_schedule_ids: schedule_ids,
201
- // schedule_date,
201
+ schedule_date
202
202
  },
203
203
  { useCache: true }
204
204
  );
@@ -227,8 +227,8 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
227
227
  return await this.loadProducts({
228
228
  // schedule_ids: scheduleIds,
229
229
  product_ids: allProductIds,
230
- category_ids
231
- // schedule_date: date,
230
+ category_ids,
231
+ schedule_date: date
232
232
  });
233
233
  }
234
234
  async updateQuotationPriceAndCart(date) {
@@ -1702,7 +1702,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
1702
1702
  let currentResourcesCount = 0;
1703
1703
  const currentResourcesTimeSlotCanUsedArr = [];
1704
1704
  const mTimes = m.times.filter((n) => {
1705
- return !(0, import_dayjs.default)(n.start_at).isAfter((0, import_dayjs.default)(item.start), "minute") && !(0, import_dayjs.default)(n.end_at).isBefore((0, import_dayjs.default)(item.end), "minute");
1705
+ return !(0, import_dayjs.default)(n.start_at).isAfter((0, import_dayjs.default)(item.start), "minute") && !(0, import_dayjs.default)(n.end_at).isBefore((0, import_dayjs.default)(item.end), "minute") || (0, import_dayjs.default)(n.start_at).isBefore((0, import_dayjs.default)(item.end), "minute") && (0, import_dayjs.default)(n.end_at).isAfter((0, import_dayjs.default)(item.start), "minute");
1706
1706
  });
1707
1707
  if (mTimes.length === 0) {
1708
1708
  return;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "3.0.37",
4
+ "version": "3.0.39",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",