@pisell/pisellos 2.2.8 → 2.2.10

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.
Files changed (61) hide show
  1. package/dist/modules/Cart/utils/cartProduct.js +41 -26
  2. package/dist/modules/Customer/index.js +1 -1
  3. package/dist/modules/Discount/index.d.ts +3 -0
  4. package/dist/modules/Discount/index.js +70 -37
  5. package/dist/modules/Discount/types.d.ts +16 -0
  6. package/dist/modules/Order/index.js +4 -1
  7. package/dist/modules/Order/utils.d.ts +1 -0
  8. package/dist/modules/Order/utils.js +9 -0
  9. package/dist/modules/Payment/cash.js +1 -1
  10. package/dist/modules/Payment/eftpos.js +1 -1
  11. package/dist/modules/Payment/index.js +101 -31
  12. package/dist/modules/Payment/types.d.ts +22 -2
  13. package/dist/modules/Payment/walletpass.js +8 -3
  14. package/dist/modules/Product/index.d.ts +1 -1
  15. package/dist/modules/ProductList/index.js +8 -9
  16. package/dist/modules/Rules/index.d.ts +16 -2
  17. package/dist/modules/Rules/index.js +1102 -200
  18. package/dist/modules/Rules/types.d.ts +8 -1
  19. package/dist/solution/BookingByStep/index.js +30 -8
  20. package/dist/solution/BookingByStep/utils/products.d.ts +6 -0
  21. package/dist/solution/BookingByStep/utils/products.js +10 -0
  22. package/dist/solution/BookingTicket/index.d.ts +1 -1
  23. package/dist/solution/Checkout/index.d.ts +2 -0
  24. package/dist/solution/Checkout/index.js +277 -88
  25. package/dist/solution/Checkout/types.d.ts +2 -0
  26. package/dist/solution/ShopDiscount/index.d.ts +5 -0
  27. package/dist/solution/ShopDiscount/index.js +96 -24
  28. package/dist/solution/ShopDiscount/types.d.ts +9 -1
  29. package/dist/solution/ShopDiscount/utils.d.ts +55 -0
  30. package/dist/solution/ShopDiscount/utils.js +432 -3
  31. package/lib/modules/Cart/utils/cartProduct.js +35 -22
  32. package/lib/modules/Customer/index.js +1 -1
  33. package/lib/modules/Discount/index.d.ts +3 -0
  34. package/lib/modules/Discount/index.js +20 -5
  35. package/lib/modules/Discount/types.d.ts +16 -0
  36. package/lib/modules/Order/index.js +2 -0
  37. package/lib/modules/Order/utils.d.ts +1 -0
  38. package/lib/modules/Order/utils.js +11 -0
  39. package/lib/modules/Payment/cash.js +1 -1
  40. package/lib/modules/Payment/eftpos.js +1 -1
  41. package/lib/modules/Payment/index.js +71 -11
  42. package/lib/modules/Payment/types.d.ts +22 -2
  43. package/lib/modules/Payment/walletpass.js +15 -4
  44. package/lib/modules/Product/index.d.ts +1 -1
  45. package/lib/modules/ProductList/index.js +0 -7
  46. package/lib/modules/Rules/index.d.ts +16 -2
  47. package/lib/modules/Rules/index.js +857 -184
  48. package/lib/modules/Rules/types.d.ts +8 -1
  49. package/lib/solution/BookingByStep/index.js +19 -2
  50. package/lib/solution/BookingByStep/utils/products.d.ts +6 -0
  51. package/lib/solution/BookingByStep/utils/products.js +8 -2
  52. package/lib/solution/BookingTicket/index.d.ts +1 -1
  53. package/lib/solution/Checkout/index.d.ts +2 -0
  54. package/lib/solution/Checkout/index.js +185 -25
  55. package/lib/solution/Checkout/types.d.ts +2 -0
  56. package/lib/solution/ShopDiscount/index.d.ts +5 -0
  57. package/lib/solution/ShopDiscount/index.js +67 -13
  58. package/lib/solution/ShopDiscount/types.d.ts +9 -1
  59. package/lib/solution/ShopDiscount/utils.d.ts +55 -0
  60. package/lib/solution/ShopDiscount/utils.js +266 -3
  61. package/package.json +2 -2
@@ -22,6 +22,9 @@ export interface RulesModuleAPI {
22
22
  calcDiscount: (params: {
23
23
  discountList: any[];
24
24
  productList: any[];
25
+ holders: {
26
+ form_record_id: number;
27
+ }[];
25
28
  }) => DiscountResult;
26
29
  }
27
30
  type ProductDetail = {
@@ -40,6 +43,8 @@ type ProductDetail = {
40
43
  num?: number;
41
44
  quantity: number;
42
45
  vouchersApplicable?: boolean;
46
+ holder_id?: number;
47
+ startDate?: any;
43
48
  };
44
49
  export interface RulesParamsHooks {
45
50
  getProduct: (product: Record<string, any>) => ProductDetail;
@@ -50,8 +55,10 @@ export interface RulesParamsHooks {
50
55
  origin_total?: number;
51
56
  price?: string | number;
52
57
  variant?: any[];
53
- original_price?: number;
58
+ original_price?: number | string;
54
59
  quantity?: number;
60
+ bundle?: any[];
61
+ main_product_selling_price?: string | number;
55
62
  }) => Record<string, any>;
56
63
  }
57
64
  export {};
@@ -31,7 +31,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
31
31
  import { BaseModule } from "../../modules/BaseModule";
32
32
  import { createModule } from "./types";
33
33
  import { formatProductToCartItem, createCartItemOrigin, getUniqueId, handleVariantProduct, formatDateToCartItem, formatAccountToCartItem } from "../../modules/Cart/utils";
34
- import { getAvailableProductResources } from "./utils/products";
34
+ import { getAvailableProductResources, isSessionProduct } from "./utils/products";
35
35
  import { getResourcesByProduct, getTimeSlicesByResource, getTimeSlicesByResources, getIsUsableByTimeItem, getOthersSelectedResources, getOthersCartSelectedResources, filterScheduleByDateRange, checkSessionProductLeadTime, sortCombinedResources, filterResourcesByFormItem, checkTwoResourcesIntersection, isConflict } from "./utils/resources";
36
36
  import dayjs from 'dayjs';
37
37
  import isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
@@ -238,19 +238,29 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
238
238
  key: "loadProducts",
239
239
  value: (function () {
240
240
  var _loadProducts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref) {
241
- var _ref$category_ids, category_ids, _ref$product_ids, product_ids, _ref$collection, collection, schedule_date;
241
+ var _ref$category_ids, category_ids, _ref$product_ids, product_ids, _ref$collection, collection, schedule_date, res;
242
242
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
243
243
  while (1) switch (_context2.prev = _context2.next) {
244
244
  case 0:
245
245
  _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;
246
- return _context2.abrupt("return", this.store.products.loadProducts({
246
+ _context2.next = 3;
247
+ return this.store.products.loadProducts({
247
248
  category_ids: category_ids,
248
249
  product_ids: product_ids,
249
250
  collection: collection,
250
251
  schedule_date: schedule_date,
251
252
  cacheId: this.cacheId
252
- }));
253
- case 2:
253
+ });
254
+ case 3:
255
+ res = _context2.sent;
256
+ // 预拉取当天的资源数据
257
+ this.getAvailableDate({
258
+ startDate: schedule_date || dayjs().format('YYYY-MM-DD'),
259
+ endDate: schedule_date || dayjs().format('YYYY-MM-DD'),
260
+ products: _toConsumableArray(res)
261
+ });
262
+ return _context2.abrupt("return", res);
263
+ case 6:
254
264
  case "end":
255
265
  return _context2.stop();
256
266
  }
@@ -282,7 +292,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
282
292
  value: (function () {
283
293
  var _loadProductByScheduleDate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref2) {
284
294
  var _schedule$product_ids;
285
- var date, _ref2$product_ids, product_ids, _ref2$category_ids, category_ids, scheduleList, newProductIds, schedule, otherProductsIds, allProductIds;
295
+ var date, _ref2$product_ids, product_ids, _ref2$category_ids, category_ids, scheduleList, newProductIds, schedule, otherProductsIds, allProductIds, res;
286
296
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
287
297
  while (1) switch (_context3.prev = _context3.next) {
288
298
  case 0:
@@ -329,8 +339,9 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
329
339
  schedule_date: date
330
340
  });
331
341
  case 10:
332
- return _context3.abrupt("return", _context3.sent);
333
- case 11:
342
+ res = _context3.sent;
343
+ return _context3.abrupt("return", res);
344
+ case 12:
334
345
  case "end":
335
346
  return _context3.stop();
336
347
  }
@@ -1150,6 +1161,16 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
1150
1161
  var productData = _objectSpread(_objectSpread({}, origin), {}, {
1151
1162
  product_variant_id: product_variant_id
1152
1163
  });
1164
+ debugger;
1165
+ // 保护,如果进来的是 session 商品,则必须要有 date 和时间片,否则不允许添加
1166
+ if (isSessionProduct(productData)) {
1167
+ if (!date || !date.startTime || !date.endTime) {
1168
+ return {
1169
+ success: false,
1170
+ errorCode: 'date_or_time_required'
1171
+ };
1172
+ }
1173
+ }
1153
1174
 
1154
1175
  // 库存检测
1155
1176
  var currentCartItems = this.store.cart.getItems();
@@ -2292,6 +2313,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2292
2313
  }
2293
2314
  });
2294
2315
  });
2316
+ this.core.effects.emit("".concat(this.store.cart.name, ":onUpdateBookingDate"), {});
2295
2317
  }
2296
2318
  }, {
2297
2319
  key: "getScheduleDataByIds",
@@ -9,3 +9,9 @@ export declare const getAvailableProductResources: (products: ProductData[]) =>
9
9
  rules: any[];
10
10
  resourcesMap: Record<number, ProductResourceItem>;
11
11
  };
12
+ /**
13
+ * 判断商品是否是 session 商品
14
+ * @param product 商品数据
15
+ * @returns 是否是 session 商品
16
+ */
17
+ export declare const isSessionProduct: (product: ProductData) => boolean;
@@ -47,4 +47,14 @@ export var getAvailableProductResources = function getAvailableProductResources(
47
47
  rules: rules,
48
48
  resourcesMap: resourcesMap
49
49
  };
50
+ };
51
+
52
+ /**
53
+ * 判断商品是否是 session 商品
54
+ * @param product 商品数据
55
+ * @returns 是否是 session 商品
56
+ */
57
+ export var isSessionProduct = function isSessionProduct(product) {
58
+ var _product$scheduleIds, _product$scheduleIds2;
59
+ return ((_product$scheduleIds = product === null || product === void 0 || (_product$scheduleIds2 = product['schedule.ids']) === null || _product$scheduleIds2 === void 0 ? void 0 : _product$scheduleIds2.length) !== null && _product$scheduleIds !== void 0 ? _product$scheduleIds : 0) > 0;
50
60
  };
@@ -123,7 +123,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
123
123
  * 获取当前的客户搜索条件
124
124
  * @returns 当前搜索条件
125
125
  */
126
- getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
126
+ getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
127
127
  /**
128
128
  * 获取客户列表状态(包含滚动加载相关状态)
129
129
  * @returns 客户状态
@@ -48,11 +48,13 @@ export declare class CheckoutImpl extends BaseModule implements Module, Checkout
48
48
  * 初始化结账流程
49
49
  */
50
50
  initializeCheckoutAsync(params: CheckoutInitParams): Promise<void>;
51
+ getHolderIdFromBooking(obj: any): number | undefined;
51
52
  getProductListByOrder(): {
52
53
  product_id: number;
53
54
  product_variant_id: string;
54
55
  quantity: number;
55
56
  selling_price: number;
57
+ holder_id?: number;
56
58
  }[];
57
59
  initWalletData(params?: {
58
60
  order_wait_pay_amount: number;