@pisell/pisellos 0.0.207 → 0.0.209

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 (58) hide show
  1. package/dist/effects/index.d.ts +1 -1
  2. package/dist/modules/Cart/index.d.ts +1 -0
  3. package/dist/modules/Cart/index.js +42 -14
  4. package/dist/modules/Cart/utils/changePrice.d.ts +1 -1
  5. package/dist/modules/Cart/utils/changePrice.js +8 -3
  6. package/dist/modules/Order/index.js +2 -2
  7. package/dist/modules/Rules/index.js +5 -5
  8. package/dist/modules/Rules/types.d.ts +1 -1
  9. package/dist/modules/Schedule/type.d.ts +7 -7
  10. package/dist/modules/Schedule/types.d.ts +9 -9
  11. package/dist/solution/BookingByStep/index.d.ts +1 -0
  12. package/dist/solution/BookingByStep/index.js +10 -5
  13. package/dist/solution/BookingByStep/utils/resources.d.ts +1 -1
  14. package/dist/solution/ShopDiscount/types.d.ts +1 -1
  15. package/dist/types/index.d.ts +1 -1
  16. package/lib/core/index.js +28 -27
  17. package/lib/effects/index.d.ts +1 -1
  18. package/lib/effects/index.js +7 -3
  19. package/lib/modules/Account/index.js +10 -9
  20. package/lib/modules/AccountList/index.js +11 -14
  21. package/lib/modules/BaseModule.js +3 -6
  22. package/lib/modules/Cart/index.d.ts +1 -0
  23. package/lib/modules/Cart/index.js +19 -14
  24. package/lib/modules/Cart/utils/cartProduct.js +6 -3
  25. package/lib/modules/Cart/utils/changePrice.d.ts +1 -1
  26. package/lib/modules/Cart/utils/changePrice.js +5 -1
  27. package/lib/modules/Date/index.js +4 -8
  28. package/lib/modules/Date/types.js +0 -1
  29. package/lib/modules/Discount/index.js +6 -11
  30. package/lib/modules/Guests/index.js +15 -10
  31. package/lib/modules/Order/index.js +4 -6
  32. package/lib/modules/Payment/cash.js +1 -1
  33. package/lib/modules/Payment/eftpos.js +1 -1
  34. package/lib/modules/Payment/index.js +86 -98
  35. package/lib/modules/Payment/wallet.js +1 -1
  36. package/lib/modules/Product/index.js +5 -6
  37. package/lib/modules/ProductList/index.js +4 -5
  38. package/lib/modules/Resource/index.js +12 -8
  39. package/lib/modules/Rules/index.js +17 -14
  40. package/lib/modules/Rules/types.d.ts +1 -1
  41. package/lib/modules/Schedule/index.js +5 -8
  42. package/lib/modules/Schedule/type.d.ts +7 -7
  43. package/lib/modules/Schedule/types.d.ts +9 -9
  44. package/lib/modules/Schedule/utils.js +4 -2
  45. package/lib/modules/Step/index.js +4 -7
  46. package/lib/modules/Summary/index.js +4 -9
  47. package/lib/plugins/request.js +33 -34
  48. package/lib/plugins/window.js +113 -101
  49. package/lib/solution/BookingByStep/index.d.ts +1 -0
  50. package/lib/solution/BookingByStep/index.js +79 -53
  51. package/lib/solution/BookingByStep/utils/resources.d.ts +1 -1
  52. package/lib/solution/BookingByStep/utils/resources.js +8 -4
  53. package/lib/solution/BookingByStep/utils/timeslots.js +12 -6
  54. package/lib/solution/BuyTickets/index.js +15 -15
  55. package/lib/solution/ShopDiscount/index.js +11 -15
  56. package/lib/solution/ShopDiscount/types.d.ts +1 -1
  57. package/lib/types/index.d.ts +1 -1
  58. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- declare type EffectCallback = (payload: any) => void | Promise<void | {
1
+ type EffectCallback = (payload: any) => void | Promise<void | {
2
2
  status: boolean;
3
3
  message?: string;
4
4
  }>;
@@ -28,6 +28,7 @@ export declare class CartModule extends BaseModule implements Module, CartModule
28
28
  * 更新购物车信息
29
29
  */
30
30
  updateItem(params: IUpdateItemParams): Promise<void>;
31
+ updateItemInitInfo(params: IUpdateItemParams): Promise<void>;
31
32
  /**
32
33
  * 格式化数据到购物车
33
34
  */
@@ -211,11 +211,39 @@ export var CartModule = /*#__PURE__*/function (_BaseModule) {
211
211
  return _updateItem.apply(this, arguments);
212
212
  }
213
213
  return updateItem;
214
+ }() // 更新购物车中商品的初始信息
215
+ // 为什么会有这个操作,主要服务于报价单和商品券
216
+ // 商品券那边会使用 init 的 price 做计算,而报价单那边就需要修改 init 的 price 来辅助商品计算
217
+ )
218
+ }, {
219
+ key: "updateItemInitInfo",
220
+ value: function () {
221
+ var _updateItemInitInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(params) {
222
+ var _id, product, cartItem;
223
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
224
+ while (1) switch (_context4.prev = _context4.next) {
225
+ case 0:
226
+ _id = params._id, product = params.product;
227
+ cartItem = this.store.list.find(function (i) {
228
+ return i._id === _id;
229
+ });
230
+ if (cartItem) {
231
+ cartItem._productInit = cloneDeep(product);
232
+ }
233
+ case 3:
234
+ case "end":
235
+ return _context4.stop();
236
+ }
237
+ }, _callee4, this);
238
+ }));
239
+ function updateItemInitInfo(_x5) {
240
+ return _updateItemInitInfo.apply(this, arguments);
241
+ }
242
+ return updateItemInitInfo;
214
243
  }()
215
244
  /**
216
245
  * 格式化数据到购物车
217
246
  */
218
- )
219
247
  }, {
220
248
  key: "formatCartItem",
221
249
  value: function formatCartItem(params) {
@@ -305,18 +333,18 @@ export var CartModule = /*#__PURE__*/function (_BaseModule) {
305
333
  }, {
306
334
  key: "batchSetItems",
307
335
  value: (function () {
308
- var _batchSetItems = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(items) {
309
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
310
- while (1) switch (_context4.prev = _context4.next) {
336
+ var _batchSetItems = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(items) {
337
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
338
+ while (1) switch (_context5.prev = _context5.next) {
311
339
  case 0:
312
340
  this.store.list = _toConsumableArray(items || []);
313
341
  case 1:
314
342
  case "end":
315
- return _context4.stop();
343
+ return _context5.stop();
316
344
  }
317
- }, _callee4, this);
345
+ }, _callee5, this);
318
346
  }));
319
- function batchSetItems(_x5) {
347
+ function batchSetItems(_x6) {
320
348
  return _batchSetItems.apply(this, arguments);
321
349
  }
322
350
  return batchSetItems;
@@ -359,24 +387,24 @@ export var CartModule = /*#__PURE__*/function (_BaseModule) {
359
387
  }, {
360
388
  key: "removeItem",
361
389
  value: (function () {
362
- var _removeItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(id) {
390
+ var _removeItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(id) {
363
391
  var items;
364
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
365
- while (1) switch (_context5.prev = _context5.next) {
392
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
393
+ while (1) switch (_context6.prev = _context6.next) {
366
394
  case 0:
367
395
  items = this.store.list.filter(function (i) {
368
396
  return i._id !== id;
369
397
  });
370
398
  this.store.list = items;
371
- _context5.next = 4;
399
+ _context6.next = 4;
372
400
  return this.core.effects.emit("".concat(this.name, ":onRemoveItem"), items);
373
401
  case 4:
374
402
  case "end":
375
- return _context5.stop();
403
+ return _context6.stop();
376
404
  }
377
- }, _callee5, this);
405
+ }, _callee6, this);
378
406
  }));
379
- function removeItem(_x6) {
407
+ function removeItem(_x7) {
380
408
  return _removeItem.apply(this, arguments);
381
409
  }
382
410
  return removeItem;
@@ -1,3 +1,3 @@
1
1
  import { Product } from "../../Product";
2
2
  import { CartItem, IUpdateItemParams } from "../types";
3
- export declare function updateAllCartItemPrice(cartItems: CartItem[], priceData: any, getProduct: (id: number) => Promise<Product | undefined>, updateCart: (item: IUpdateItemParams) => void): Promise<void>;
3
+ export declare function updateAllCartItemPrice(cartItems: CartItem[], priceData: any, getProduct: (id: number) => Promise<Product | undefined>, updateCart: (item: IUpdateItemParams) => void, updateItemInitInfo: (item: IUpdateItemParams) => void): Promise<void>;
@@ -11,11 +11,11 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
11
11
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
12
12
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
13
13
  import Decimal from "decimal.js";
14
- export function updateAllCartItemPrice(_x, _x2, _x3, _x4) {
14
+ export function updateAllCartItemPrice(_x, _x2, _x3, _x4, _x5) {
15
15
  return _updateAllCartItemPrice.apply(this, arguments);
16
16
  }
17
17
  function _updateAllCartItemPrice() {
18
- _updateAllCartItemPrice = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(cartItems, priceData, getProduct, updateCart) {
18
+ _updateAllCartItemPrice = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(cartItems, priceData, getProduct, updateCart, updateItemInitInfo) {
19
19
  var _iterator, _step, _loop;
20
20
  return _regeneratorRuntime().wrap(function _callee$(_context2) {
21
21
  while (1) switch (_context2.prev = _context2.next) {
@@ -79,13 +79,18 @@ function _updateAllCartItemPrice() {
79
79
  return n;
80
80
  });
81
81
  }
82
+ // 先把商品原始信息更新了
83
+ updateItemInitInfo({
84
+ _id: item._id,
85
+ product: productInfo
86
+ });
82
87
  updateCart({
83
88
  _id: item._id,
84
89
  product: productInfo,
85
90
  bundle: bundle,
86
91
  options: item._optionsOrigin
87
92
  });
88
- case 13:
93
+ case 14:
89
94
  case "end":
90
95
  return _context.stop();
91
96
  }
@@ -62,9 +62,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
62
62
  key: "createOrder",
63
63
  value: function createOrder(params) {
64
64
  var order = {
65
- type: params.type || 'appointment_booking',
65
+ type: (params === null || params === void 0 ? void 0 : params.type) || 'appointment_booking',
66
66
  // 要从外面拿,virtual
67
- platform: params.platform === 'pc' ? 'PC' : 'H5',
67
+ platform: (params === null || params === void 0 ? void 0 : params.platform) === 'pc' ? 'PC' : 'H5',
68
68
  sales_channel: 'my_pisel',
69
69
  order_sales_channel: 'online_store',
70
70
  bookings: [],
@@ -427,7 +427,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
427
427
  }));
428
428
  }
429
429
  for (var _i = 0; _i < splitCount; _i++) {
430
- var _originProduct$_produ, _product$discount_lis11;
430
+ var _product$discount_lis11, _originProduct$_produ;
431
431
  // 如果用过折扣卡,也就不存在拆分的情况了,这里直接使用上面计算出来的折扣卡
432
432
  var _selectedDiscount = selectedDiscountCard || applicableDiscounts[_i];
433
433
  // 标记优惠券为已使用
@@ -438,14 +438,14 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
438
438
 
439
439
  // 优先从 origin_total拿,可能会拿不到(比如用户端预约在没有配置 original_price 的情况下)
440
440
  var productOriginTotal = product.origin_total || product.total || 0;
441
+ // 如果当前 product 有 discount_list,则先从 origin_total 拿
442
+ if ((_product$discount_lis11 = product.discount_list) !== null && _product$discount_lis11 !== void 0 && _product$discount_lis11.length && product.origin_total) {
443
+ productOriginTotal = product.origin_total;
444
+ }
441
445
  // 如果originProduct?._productInit?.original_price为 0,product.origin_total可能为空,此时取 product.total
442
446
  if (Number((originProduct === null || originProduct === void 0 || (_originProduct$_produ = originProduct._productInit) === null || _originProduct$_produ === void 0 ? void 0 : _originProduct$_produ.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
443
447
  productOriginTotal = product.total;
444
448
  }
445
- // 如果当前 product 有 discount_list,则必须从 origin_total 拿
446
- if ((_product$discount_lis11 = product.discount_list) !== null && _product$discount_lis11 !== void 0 && _product$discount_lis11.length && product.origin_total) {
447
- productOriginTotal = product.origin_total;
448
- }
449
449
 
450
450
  // 计算使用折扣卡/商品券以后,单个商品的总 total
451
451
  var targetProductTotal = _selectedDiscount.tag === 'good_pass' ? new Decimal(productOriginTotal).minus(new Decimal(product.price || 0)).toNumber() : new Decimal(100).minus(_selectedDiscount.par_value || 0).div(100).mul(new Decimal(productOriginTotal)).toNumber();
@@ -24,7 +24,7 @@ export interface RulesModuleAPI {
24
24
  productList: any[];
25
25
  }) => DiscountResult;
26
26
  }
27
- declare type ProductDetail = {
27
+ type ProductDetail = {
28
28
  isClient?: boolean;
29
29
  isManualDiscount?: boolean;
30
30
  booking_id: any;
@@ -1,4 +1,4 @@
1
- export declare type ScheduleItem = {
1
+ export type ScheduleItem = {
2
2
  /** 颜色 */
3
3
  color: string;
4
4
  /** 创建时间 */
@@ -65,7 +65,7 @@ export declare type ScheduleItem = {
65
65
  schedule_id: number;
66
66
  }[];
67
67
  };
68
- export declare type ScheduleFormOtherValue = {
68
+ export type ScheduleFormOtherValue = {
69
69
  /** 截止模式
70
70
  * 1: 永不截止
71
71
  * 2: 按日期截止
@@ -79,11 +79,11 @@ export declare type ScheduleFormOtherValue = {
79
79
  includeStatus: boolean;
80
80
  type: 'standard' | 'time-slots' | 'designation';
81
81
  };
82
- export declare type ExcIncDate = {
82
+ export type ExcIncDate = {
83
83
  start: string;
84
84
  end: string;
85
85
  };
86
- export declare type ScheduleFormData = {
86
+ export type ScheduleFormData = {
87
87
  /** 颜色 */
88
88
  color: string;
89
89
  /** 日程名称 */
@@ -131,20 +131,20 @@ export declare type ScheduleFormData = {
131
131
  start_time: any;
132
132
  end_time: any;
133
133
  };
134
- export declare type CalendarDataItem = {
134
+ export type CalendarDataItem = {
135
135
  date: string;
136
136
  color: string[];
137
137
  isExcluded: boolean;
138
138
  schedule_ids?: number[];
139
139
  [key: string]: any;
140
140
  };
141
- export declare type RequestData<Data> = {
141
+ export type RequestData<Data> = {
142
142
  data: Data;
143
143
  status: boolean;
144
144
  message: string;
145
145
  code: number;
146
146
  };
147
- export declare type ResponseListData<Data> = {
147
+ export type ResponseListData<Data> = {
148
148
  status: boolean;
149
149
  message: string;
150
150
  code: number;
@@ -4,7 +4,7 @@ export interface ScheduleState {
4
4
  availabilityDateList: ScheduleAvailabilityDateItem[];
5
5
  otherProductsIds: number[];
6
6
  }
7
- export declare type ScheduleAvailabilityDateItem = {
7
+ export type ScheduleAvailabilityDateItem = {
8
8
  date: string;
9
9
  schedule_id: number[];
10
10
  product_ids: number[];
@@ -24,7 +24,7 @@ export interface LoadScheduleAvailableDateParams {
24
24
  }
25
25
  export interface ScheduleModuleAPI {
26
26
  }
27
- export declare type ScheduleItem = {
27
+ export type ScheduleItem = {
28
28
  /** 颜色 */
29
29
  color: string;
30
30
  /** 创建时间 */
@@ -91,7 +91,7 @@ export declare type ScheduleItem = {
91
91
  schedule_id: number;
92
92
  }[];
93
93
  };
94
- export declare type ScheduleFormOtherValue = {
94
+ export type ScheduleFormOtherValue = {
95
95
  /** 截止模式
96
96
  * 1: 永不截止
97
97
  * 2: 按日期截止
@@ -105,11 +105,11 @@ export declare type ScheduleFormOtherValue = {
105
105
  includeStatus: boolean;
106
106
  type: 'standard' | 'time-slots' | 'designation';
107
107
  };
108
- export declare type ExcIncDate = {
108
+ export type ExcIncDate = {
109
109
  start: string;
110
110
  end: string;
111
111
  };
112
- export declare type ScheduleFormData = {
112
+ export type ScheduleFormData = {
113
113
  /** 颜色 */
114
114
  color: string;
115
115
  /** 日程名称 */
@@ -157,20 +157,20 @@ export declare type ScheduleFormData = {
157
157
  start_time: any;
158
158
  end_time: any;
159
159
  };
160
- export declare type CalendarDataItem = {
160
+ export type CalendarDataItem = {
161
161
  date: string;
162
162
  color: string[];
163
163
  isExcluded: boolean;
164
164
  schedule_ids?: number[];
165
165
  [key: string]: any;
166
166
  };
167
- export declare type RequestData<Data> = {
167
+ export type RequestData<Data> = {
168
168
  data: Data;
169
169
  status: boolean;
170
170
  message: string;
171
171
  code: number;
172
172
  };
173
- export declare type ResponseListData<Data> = {
173
+ export type ResponseListData<Data> = {
174
174
  status: boolean;
175
175
  message: string;
176
176
  code: number;
@@ -181,7 +181,7 @@ export declare type ResponseListData<Data> = {
181
181
  skip: number;
182
182
  };
183
183
  };
184
- export declare type ScheduleAllMap = Record<string, {
184
+ export type ScheduleAllMap = Record<string, {
185
185
  minTime: dayjs.Dayjs | null;
186
186
  maxTime: dayjs.Dayjs | null;
187
187
  minTimeStr: string | null;
@@ -21,6 +21,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
21
21
  private otherParams;
22
22
  private cacheId;
23
23
  private otherData;
24
+ private platform;
24
25
  initialize(core: PisellCore, options: any): Promise<void>;
25
26
  initStep(stepList: (keyof BookingByStepState)[]): void;
26
27
  getCurrentStep(): {
@@ -61,15 +61,18 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
61
61
  _defineProperty(_assertThisInitialized(_this), "otherParams", {});
62
62
  _defineProperty(_assertThisInitialized(_this), "cacheId", void 0);
63
63
  _defineProperty(_assertThisInitialized(_this), "otherData", {});
64
+ // 提供给 UI 层的临时数据存储,会进缓存
65
+ _defineProperty(_assertThisInitialized(_this), "platform", void 0);
64
66
  return _this;
65
67
  }
66
68
  _createClass(BookingByStepImpl, [{
67
69
  key: "initialize",
68
- value: // 提供给 UI 层的临时数据存储,会进缓存
70
+ value: // 平台类型,用于判断是 PC / H5
69
71
  function () {
70
72
  var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(core, options) {
71
73
  var _this$otherParams,
72
74
  _this$otherParams2,
75
+ _this$otherParams3,
73
76
  _this2 = this;
74
77
  var targetCacheData, sessionData, _data$this$otherParam, data, moduleArr;
75
78
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -99,7 +102,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
99
102
  // 并且在上面 registerModule 的时候,读取 sessionStroage 里的数据,塞进默认值
100
103
  targetCacheData = {};
101
104
  this.cacheId = (_this$otherParams = this.otherParams) === null || _this$otherParams === void 0 ? void 0 : _this$otherParams.cacheId;
102
- if ((_this$otherParams2 = this.otherParams) !== null && _this$otherParams2 !== void 0 && _this$otherParams2.cacheId) {
105
+ this.platform = (_this$otherParams2 = this.otherParams) === null || _this$otherParams2 === void 0 ? void 0 : _this$otherParams2.platform;
106
+ if ((_this$otherParams3 = this.otherParams) !== null && _this$otherParams3 !== void 0 && _this$otherParams3.cacheId) {
103
107
  sessionData = this.window.sessionStorage.getItem(this.name);
104
108
  if (sessionData) {
105
109
  data = JSON.parse(sessionData); // 匹配 cacheid,如果匹配不到,直接把 sessionData 清掉即可
@@ -128,7 +132,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
128
132
  });
129
133
  this.store.schedule.loadAllSchedule();
130
134
  this.core.effects.emit(BookingByStepHooks.onInited, {});
131
- case 18:
135
+ case 19:
132
136
  case "end":
133
137
  return _context.stop();
134
138
  }
@@ -374,6 +378,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
374
378
  return _this3.store.products.getProduct(id);
375
379
  }, function (params) {
376
380
  return _this3.store.cart.updateItem(params);
381
+ }, function (params) {
382
+ return _this3.store.cart.updateItemInitInfo(params);
377
383
  });
378
384
  case 10:
379
385
  this.core.effects.emit("".concat(this.store.cart.name, ":onUpdateQuotationPrice"), {});
@@ -954,7 +960,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
954
960
  key: "submitOrder",
955
961
  value: function () {
956
962
  var _submitOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee19() {
957
- var _this$otherParams3;
958
963
  var cartItems, newCartItems, type;
959
964
  return _regeneratorRuntime().wrap(function _callee19$(_context19) {
960
965
  while (1) switch (_context19.prev = _context19.next) {
@@ -991,7 +996,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
991
996
  query: {
992
997
  cartItems: newCartItems,
993
998
  type: type,
994
- platform: (_this$otherParams3 = this.otherParams) === null || _this$otherParams3 === void 0 ? void 0 : _this$otherParams3.platform
999
+ platform: this.platform
995
1000
  }
996
1001
  }));
997
1002
  case 6:
@@ -6,7 +6,7 @@ import { CartItem, ProductData } from '../../../modules';
6
6
  * 3. 格式化资源相关 格式化资源列表 --> 格式化资源 --> 获取时间切片列表 --> 判断单个时间切片是否可用 formatResources
7
7
  *
8
8
  */
9
- declare type DateType = Dayjs;
9
+ type DateType = Dayjs;
10
10
  export interface TimeSliceItem {
11
11
  start_time: string;
12
12
  end_time: string;
@@ -10,7 +10,7 @@ export declare enum ShopDiscountHooks {
10
10
  onRulesListChange = "shopDiscount:onRulesListChange",
11
11
  onLoadPrepareCalcResult = "shopDiscount:onLoadPrepareCalcResult"
12
12
  }
13
- export declare type Customer = {
13
+ export type Customer = {
14
14
  id: string | number;
15
15
  name: string;
16
16
  email: string;
@@ -27,7 +27,7 @@ export interface ModuleOptions {
27
27
  initialState?: Record<string, any>;
28
28
  otherParams?: Record<string, any>;
29
29
  }
30
- export declare type EventHandler = (data?: any) => void;
30
+ export type EventHandler = (data?: any) => void;
31
31
  export interface PisellCore {
32
32
  registerPlugin: (plugin: Plugin, options?: PluginOptions) => void;
33
33
  getPlugin: <T extends Plugin>(name: string) => T | null;
package/lib/core/index.js CHANGED
@@ -26,13 +26,13 @@ module.exports = __toCommonJS(core_exports);
26
26
  var import_createStore = require("../store/createStore");
27
27
  var import_effects = require("../effects");
28
28
  var PisellOSCore = class {
29
- plugins = /* @__PURE__ */ new Map();
30
- modules = /* @__PURE__ */ new Map();
31
- stores = /* @__PURE__ */ new Map();
32
- effects = new import_effects.EffectsManager();
33
- debug = false;
34
- context = {};
35
29
  constructor(options) {
30
+ this.plugins = /* @__PURE__ */ new Map();
31
+ this.modules = /* @__PURE__ */ new Map();
32
+ this.stores = /* @__PURE__ */ new Map();
33
+ this.effects = new import_effects.EffectsManager();
34
+ this.debug = false;
35
+ this.context = {};
36
36
  this.debug = (options == null ? void 0 : options.debug) || false;
37
37
  this.context = (options == null ? void 0 : options.context) || {};
38
38
  this.initialize(options);
@@ -48,7 +48,7 @@ var PisellOSCore = class {
48
48
  this.registerModule(item.module, item.options);
49
49
  });
50
50
  }
51
- this.log("PisellOS \u6838\u5FC3\u521D\u59CB\u5316\u5B8C\u6210");
51
+ this.log("PisellOS 核心初始化完成");
52
52
  }
53
53
  // 日志方法
54
54
  log(message, level = "info") {
@@ -71,12 +71,12 @@ var PisellOSCore = class {
71
71
  // 插件相关方法
72
72
  registerPlugin(plugin, options) {
73
73
  if (this.plugins.has(plugin.name)) {
74
- this.log(`\u63D2\u4EF6 ${plugin.name} \u5DF2\u7ECF\u6CE8\u518C\u8FC7\uFF0C\u5C06\u88AB\u8986\u76D6`, "warn");
74
+ this.log(`插件 ${plugin.name} 已经注册过,将被覆盖`, "warn");
75
75
  }
76
76
  if (options == null ? void 0 : options.dependencies) {
77
77
  for (const dep of options.dependencies) {
78
78
  if (!this.plugins.has(dep)) {
79
- throw new Error(`\u6CE8\u518C\u63D2\u4EF6 ${plugin.name} \u5931\u8D25\uFF1A\u7F3A\u5C11\u4F9D\u8D56\u63D2\u4EF6 ${dep}`);
79
+ throw new Error(`注册插件 ${plugin.name} 失败:缺少依赖插件 ${dep}`);
80
80
  }
81
81
  }
82
82
  }
@@ -84,14 +84,14 @@ var PisellOSCore = class {
84
84
  const result = plugin.initialize();
85
85
  if (result instanceof Promise) {
86
86
  result.catch((err) => {
87
- this.log(`\u63D2\u4EF6 ${plugin.name} \u521D\u59CB\u5316\u5931\u8D25: ${err.message}`, "error");
87
+ this.log(`插件 ${plugin.name} 初始化失败: ${err.message}`, "error");
88
88
  throw err;
89
89
  });
90
90
  }
91
91
  this.plugins.set(plugin.name, plugin);
92
- this.log(`\u63D2\u4EF6 ${plugin.name} v${plugin.version} \u6CE8\u518C\u6210\u529F`);
92
+ this.log(`插件 ${plugin.name} v${plugin.version} 注册成功`);
93
93
  } catch (error) {
94
- this.log(`\u63D2\u4EF6 ${plugin.name} \u521D\u59CB\u5316\u8FC7\u7A0B\u4E2D\u51FA\u9519: ${error}`, "error");
94
+ this.log(`插件 ${plugin.name} 初始化过程中出错: ${error}`, "error");
95
95
  throw error;
96
96
  }
97
97
  }
@@ -104,12 +104,12 @@ var PisellOSCore = class {
104
104
  // 模块相关方法
105
105
  registerModule(module2, options) {
106
106
  if (this.modules.has(module2.name)) {
107
- this.log(`\u6A21\u5757 ${module2.name} \u5DF2\u7ECF\u6CE8\u518C\u8FC7\uFF0C\u5C06\u88AB\u8986\u76D6`, "warn");
107
+ this.log(`模块 ${module2.name} 已经注册过,将被覆盖`, "warn");
108
108
  }
109
109
  if (options == null ? void 0 : options.dependencies) {
110
110
  for (const dep of options.dependencies) {
111
111
  if (!this.modules.has(dep)) {
112
- throw new Error(`\u6CE8\u518C\u6A21\u5757 ${module2.name} \u5931\u8D25\uFF1A\u7F3A\u5C11\u4F9D\u8D56\u6A21\u5757 ${dep}`);
112
+ throw new Error(`注册模块 ${module2.name} 失败:缺少依赖模块 ${dep}`);
113
113
  }
114
114
  }
115
115
  }
@@ -117,7 +117,7 @@ var PisellOSCore = class {
117
117
  for (const plugin of options.plugins) {
118
118
  if (!this.plugins.has(plugin)) {
119
119
  throw new Error(
120
- `\u6CE8\u518C\u6A21\u5757 ${module2.name} \u5931\u8D25\uFF1A\u7F3A\u5C11\u4F9D\u8D56\u63D2\u4EF6 ${plugin}`
120
+ `注册模块 ${module2.name} 失败:缺少依赖插件 ${plugin}`
121
121
  );
122
122
  }
123
123
  }
@@ -126,9 +126,10 @@ var PisellOSCore = class {
126
126
  (options == null ? void 0 : options.initialState) || {},
127
127
  module2.name,
128
128
  (path, value) => {
129
- console.log("core \u68C0\u6D4B\u5230\u6A21\u5757\u503C\u66F4\u65B0", module2.name, path, value);
129
+ console.log("core 检测到模块值更新", module2.name, path, value);
130
130
  this.effects.emit(`${module2.name}:changed`, { path, value });
131
- if (module2.storeChange) module2.storeChange(path, value);
131
+ if (module2.storeChange)
132
+ module2.storeChange(path, value);
132
133
  }
133
134
  );
134
135
  this.stores.set(module2.name, proxy);
@@ -136,14 +137,14 @@ var PisellOSCore = class {
136
137
  const result = module2.initialize(this, { store: proxy, ...options });
137
138
  if (result instanceof Promise) {
138
139
  result.catch((err) => {
139
- this.log(`\u6A21\u5757 ${module2.name} \u521D\u59CB\u5316\u5931\u8D25: ${err.message}`, "error");
140
+ this.log(`模块 ${module2.name} 初始化失败: ${err.message}`, "error");
140
141
  throw err;
141
142
  });
142
143
  }
143
144
  this.modules.set(module2.name, module2);
144
- this.log(`\u6A21\u5757 ${module2.name} v${module2.version} \u6CE8\u518C\u6210\u529F`);
145
+ this.log(`模块 ${module2.name} v${module2.version} 注册成功`);
145
146
  } catch (error) {
146
- this.log(`\u6A21\u5757 ${module2.name} \u521D\u59CB\u5316\u8FC7\u7A0B\u4E2D\u51FA\u9519: ${error}`, "error");
147
+ this.log(`模块 ${module2.name} 初始化过程中出错: ${error}`, "error");
147
148
  throw error;
148
149
  }
149
150
  }
@@ -167,9 +168,9 @@ var PisellOSCore = class {
167
168
  if (module2.destroy) {
168
169
  try {
169
170
  await Promise.resolve(module2.destroy());
170
- this.log(`\u6A21\u5757 ${name} \u5DF2\u9500\u6BC1`);
171
+ this.log(`模块 ${name} 已销毁`);
171
172
  } catch (error) {
172
- this.log(`\u9500\u6BC1\u6A21\u5757 ${name} \u65F6\u51FA\u9519: ${error}`, "error");
173
+ this.log(`销毁模块 ${name} 时出错: ${error}`, "error");
173
174
  }
174
175
  }
175
176
  }
@@ -178,14 +179,14 @@ var PisellOSCore = class {
178
179
  if (plugin.destroy) {
179
180
  try {
180
181
  await Promise.resolve(plugin.destroy());
181
- this.log(`\u63D2\u4EF6 ${name} \u5DF2\u9500\u6BC1`);
182
+ this.log(`插件 ${name} 已销毁`);
182
183
  } catch (error) {
183
- this.log(`\u9500\u6BC1\u63D2\u4EF6 ${name} \u65F6\u51FA\u9519: ${error}`, "error");
184
+ this.log(`销毁插件 ${name} 时出错: ${error}`, "error");
184
185
  }
185
186
  }
186
187
  }
187
188
  this.plugins.clear();
188
- this.log("PisellOS \u6838\u5FC3\u5DF2\u9500\u6BC1");
189
+ this.log("PisellOS 核心已销毁");
189
190
  }
190
191
  /**
191
192
  * 验证上下文参数
@@ -195,7 +196,7 @@ var PisellOSCore = class {
195
196
  const value = this.context[rule.name];
196
197
  if (rule.required && (value === void 0 || value === null)) {
197
198
  this.log(
198
- `\u6A21\u5757 ${config.name} \u7F3A\u5C11\u5FC5\u9700\u7684\u4E0A\u4E0B\u6587\u53C2\u6570: ${rule.name}`,
199
+ `模块 ${config.name} 缺少必需的上下文参数: ${rule.name}`,
199
200
  "error"
200
201
  );
201
202
  return false;
@@ -203,7 +204,7 @@ var PisellOSCore = class {
203
204
  if (rule.validate && value !== void 0 && value !== null) {
204
205
  if (!rule.validate(value)) {
205
206
  this.log(
206
- `\u6A21\u5757 ${config.name} \u4E0A\u4E0B\u6587\u53C2\u6570\u9A8C\u8BC1\u5931\u8D25: ${rule.name} - ${rule.message || "\u9A8C\u8BC1\u5931\u8D25"}`,
207
+ `模块 ${config.name} 上下文参数验证失败: ${rule.name} - ${rule.message || "验证失败"}`,
207
208
  "error"
208
209
  );
209
210
  return false;
@@ -1,4 +1,4 @@
1
- declare type EffectCallback = (payload: any) => void | Promise<void | {
1
+ type EffectCallback = (payload: any) => void | Promise<void | {
2
2
  status: boolean;
3
3
  message?: string;
4
4
  }>;
@@ -23,10 +23,13 @@ __export(effects_exports, {
23
23
  });
24
24
  module.exports = __toCommonJS(effects_exports);
25
25
  var EffectsManager = class {
26
- listeners = /* @__PURE__ */ new Map();
26
+ constructor() {
27
+ this.listeners = /* @__PURE__ */ new Map();
28
+ }
27
29
  on(event, callback) {
28
30
  var _a;
29
- if (!this.listeners.has(event)) this.listeners.set(event, /* @__PURE__ */ new Set());
31
+ if (!this.listeners.has(event))
32
+ this.listeners.set(event, /* @__PURE__ */ new Set());
30
33
  (_a = this.listeners.get(event)) == null ? void 0 : _a.add(callback);
31
34
  }
32
35
  off(event, callback) {
@@ -50,7 +53,8 @@ var EffectsManager = class {
50
53
  }
51
54
  async emit(event, payload) {
52
55
  const callbacks = this.listeners.get(event);
53
- if (!callbacks) return { status: true, data: [] };
56
+ if (!callbacks)
57
+ return { status: true, data: [] };
54
58
  return new Promise(async (resolve) => {
55
59
  const res = [];
56
60
  for (const cb of callbacks) {