@pisell/pisellos 2.2.178 → 2.2.180

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 (182) hide show
  1. package/dist/modules/Customer/index.d.ts +0 -6
  2. package/dist/modules/Customer/index.js +83 -129
  3. package/dist/modules/Customer/types.d.ts +0 -2
  4. package/dist/modules/Discount/index.d.ts +4 -2
  5. package/dist/modules/Discount/index.js +93 -8
  6. package/dist/modules/Discount/types.d.ts +7 -1
  7. package/dist/modules/Order/index.d.ts +17 -87
  8. package/dist/modules/Order/index.js +501 -1357
  9. package/dist/modules/Order/types.d.ts +19 -198
  10. package/dist/modules/Order/types.js +0 -31
  11. package/dist/modules/Order/utils.d.ts +1 -50
  12. package/dist/modules/Order/utils.js +32 -261
  13. package/dist/modules/Quotation/index.d.ts +1 -0
  14. package/dist/modules/Quotation/index.js +21 -23
  15. package/dist/modules/Rules/index.d.ts +0 -4
  16. package/dist/modules/Rules/index.js +10 -26
  17. package/dist/modules/SalesSummary/index.js +2 -4
  18. package/dist/modules/SalesSummary/utils.js +7 -21
  19. package/dist/modules/Schedule/index.js +2 -6
  20. package/dist/modules/index.d.ts +0 -1
  21. package/dist/modules/index.js +1 -2
  22. package/dist/server/index.js +29 -87
  23. package/dist/server/modules/order/index.d.ts +0 -23
  24. package/dist/server/modules/order/index.js +46 -123
  25. package/dist/server/modules/order/types.d.ts +2 -0
  26. package/dist/server/modules/order/utils/filterOrders.js +6 -20
  27. package/dist/server/modules/products/index.d.ts +1 -1
  28. package/dist/server/modules/products/index.js +113 -130
  29. package/dist/server/modules/schedule/index.js +6 -13
  30. package/dist/solution/BaseSales/index.d.ts +7 -89
  31. package/dist/solution/BaseSales/index.js +375 -1494
  32. package/dist/solution/BaseSales/types.d.ts +1 -67
  33. package/dist/solution/BaseSales/types.js +1 -3
  34. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +1 -0
  35. package/dist/solution/BaseSales/utils/parseSalesResponse.js +1 -1
  36. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +16 -68
  37. package/dist/solution/BaseSales/utils.js +8 -46
  38. package/dist/solution/BookingByStep/index.d.ts +1 -1
  39. package/dist/solution/BookingTicket/index.d.ts +1 -133
  40. package/dist/solution/BookingTicket/index.js +175 -780
  41. package/dist/solution/BookingTicket/types.d.ts +0 -2
  42. package/dist/solution/BookingTicket/types.js +0 -3
  43. package/dist/solution/BookingTicket/utils/cartView.js +2 -4
  44. package/dist/solution/ScanOrder/index.d.ts +3 -9
  45. package/dist/solution/ScanOrder/index.js +128 -231
  46. package/dist/solution/ScanOrder/utils.js +8 -46
  47. package/dist/solution/ShopDiscount/index.d.ts +1 -0
  48. package/dist/solution/ShopDiscount/index.js +23 -18
  49. package/dist/solution/VenueBooking/index.d.ts +9 -5
  50. package/dist/solution/VenueBooking/index.js +55 -103
  51. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  52. package/dist/solution/VenueBooking/utils/slotMerge.js +0 -10
  53. package/lib/model/strategy/adapter/promotion/index.js +0 -49
  54. package/lib/modules/Customer/index.d.ts +0 -6
  55. package/lib/modules/Customer/index.js +11 -26
  56. package/lib/modules/Customer/types.d.ts +0 -2
  57. package/lib/modules/Discount/index.d.ts +4 -2
  58. package/lib/modules/Discount/index.js +63 -8
  59. package/lib/modules/Discount/types.d.ts +7 -1
  60. package/lib/modules/Order/index.d.ts +17 -87
  61. package/lib/modules/Order/index.js +150 -677
  62. package/lib/modules/Order/types.d.ts +19 -198
  63. package/lib/modules/Order/types.js +0 -1
  64. package/lib/modules/Order/utils.d.ts +1 -50
  65. package/lib/modules/Order/utils.js +22 -229
  66. package/lib/modules/Quotation/index.d.ts +1 -0
  67. package/lib/modules/Quotation/index.js +15 -18
  68. package/lib/modules/Rules/index.d.ts +0 -4
  69. package/lib/modules/Rules/index.js +14 -22
  70. package/lib/modules/SalesSummary/index.js +2 -4
  71. package/lib/modules/SalesSummary/utils.js +7 -21
  72. package/lib/modules/Schedule/index.js +1 -3
  73. package/lib/modules/index.d.ts +0 -1
  74. package/lib/modules/index.js +1 -3
  75. package/lib/server/index.js +4 -41
  76. package/lib/server/modules/order/index.d.ts +0 -23
  77. package/lib/server/modules/order/index.js +14 -46
  78. package/lib/server/modules/order/types.d.ts +2 -0
  79. package/lib/server/modules/order/utils/filterOrders.js +4 -12
  80. package/lib/server/modules/products/index.d.ts +1 -1
  81. package/lib/server/modules/products/index.js +20 -30
  82. package/lib/server/modules/schedule/index.js +1 -2
  83. package/lib/solution/BaseSales/index.d.ts +7 -89
  84. package/lib/solution/BaseSales/index.js +22 -736
  85. package/lib/solution/BaseSales/types.d.ts +1 -67
  86. package/lib/solution/BaseSales/types.js +1 -3
  87. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +1 -0
  88. package/lib/solution/BaseSales/utils/parseSalesResponse.js +1 -0
  89. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +12 -71
  90. package/lib/solution/BaseSales/utils.js +6 -46
  91. package/lib/solution/BookingByStep/index.d.ts +1 -1
  92. package/lib/solution/BookingTicket/index.d.ts +1 -133
  93. package/lib/solution/BookingTicket/index.js +8 -352
  94. package/lib/solution/BookingTicket/types.d.ts +0 -2
  95. package/lib/solution/BookingTicket/types.js +0 -6
  96. package/lib/solution/BookingTicket/utils/cartView.js +2 -4
  97. package/lib/solution/ScanOrder/index.d.ts +3 -9
  98. package/lib/solution/ScanOrder/index.js +66 -147
  99. package/lib/solution/ScanOrder/utils.js +6 -46
  100. package/lib/solution/ShopDiscount/index.d.ts +1 -0
  101. package/lib/solution/ShopDiscount/index.js +4 -2
  102. package/lib/solution/VenueBooking/index.d.ts +9 -5
  103. package/lib/solution/VenueBooking/index.js +14 -50
  104. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  105. package/lib/solution/VenueBooking/utils/slotMerge.js +0 -10
  106. package/package.json +2 -2
  107. package/dist/modules/BookingContext/index.d.ts +0 -37
  108. package/dist/modules/BookingContext/index.js +0 -436
  109. package/dist/modules/BookingContext/types.d.ts +0 -102
  110. package/dist/modules/BookingContext/types.js +0 -51
  111. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  112. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -193
  113. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  114. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -137
  115. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  116. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -215
  117. package/dist/modules/BookingContext/utils/flexible.d.ts +0 -28
  118. package/dist/modules/BookingContext/utils/flexible.js +0 -56
  119. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  120. package/dist/modules/BookingContext/utils/formatResourceList.js +0 -38
  121. package/dist/modules/BookingContext/utils/index.d.ts +0 -11
  122. package/dist/modules/BookingContext/utils/index.js +0 -11
  123. package/dist/modules/BookingContext/utils/noResource.d.ts +0 -13
  124. package/dist/modules/BookingContext/utils/noResource.js +0 -77
  125. package/dist/modules/BookingContext/utils/productExtend.d.ts +0 -72
  126. package/dist/modules/BookingContext/utils/productExtend.js +0 -339
  127. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  128. package/dist/modules/BookingContext/utils/resourceErrors.js +0 -74
  129. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  130. package/dist/modules/BookingContext/utils/resourceSelection.js +0 -24
  131. package/dist/modules/BookingContext/utils/resources.d.ts +0 -80
  132. package/dist/modules/BookingContext/utils/resources.js +0 -486
  133. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  134. package/dist/modules/BookingContext/utils/serviceTimes.js +0 -151
  135. package/dist/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  136. package/dist/modules/BookingContext/utils/timeSlices.js +0 -100
  137. package/dist/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  138. package/dist/modules/Order/utils/manualProductDiscount.js +0 -212
  139. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +0 -275
  140. package/dist/solution/BaseSales/utils/cartPromotion.js +0 -1258
  141. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  142. package/dist/solution/BaseSales/utils/quotationPrice.js +0 -237
  143. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  144. package/dist/solution/BookingTicket/utils/addProductDecision.js +0 -346
  145. package/lib/modules/BookingContext/index.d.ts +0 -37
  146. package/lib/modules/BookingContext/index.js +0 -297
  147. package/lib/modules/BookingContext/types.d.ts +0 -102
  148. package/lib/modules/BookingContext/types.js +0 -34
  149. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  150. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -207
  151. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  152. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -141
  153. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  154. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -198
  155. package/lib/modules/BookingContext/utils/flexible.d.ts +0 -28
  156. package/lib/modules/BookingContext/utils/flexible.js +0 -80
  157. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  158. package/lib/modules/BookingContext/utils/formatResourceList.js +0 -50
  159. package/lib/modules/BookingContext/utils/index.d.ts +0 -11
  160. package/lib/modules/BookingContext/utils/index.js +0 -43
  161. package/lib/modules/BookingContext/utils/noResource.d.ts +0 -13
  162. package/lib/modules/BookingContext/utils/noResource.js +0 -90
  163. package/lib/modules/BookingContext/utils/productExtend.d.ts +0 -72
  164. package/lib/modules/BookingContext/utils/productExtend.js +0 -283
  165. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  166. package/lib/modules/BookingContext/utils/resourceErrors.js +0 -80
  167. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  168. package/lib/modules/BookingContext/utils/resourceSelection.js +0 -46
  169. package/lib/modules/BookingContext/utils/resources.d.ts +0 -80
  170. package/lib/modules/BookingContext/utils/resources.js +0 -377
  171. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  172. package/lib/modules/BookingContext/utils/serviceTimes.js +0 -162
  173. package/lib/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  174. package/lib/modules/BookingContext/utils/timeSlices.js +0 -124
  175. package/lib/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  176. package/lib/modules/Order/utils/manualProductDiscount.js +0 -207
  177. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +0 -275
  178. package/lib/solution/BaseSales/utils/cartPromotion.js +0 -836
  179. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  180. package/lib/solution/BaseSales/utils/quotationPrice.js +0 -277
  181. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  182. package/lib/solution/BookingTicket/utils/addProductDecision.js +0 -318
@@ -1,28 +0,0 @@
1
- /**
2
- * 灵活时长(flexible duration)协议工具。
3
- *
4
- * info2 用 `flexible_<minutes>` 字符串前缀标记"灵活时长",对外用同名 API 暴露 create / getValue / isFlexible / add。
5
- * OS 这边一比一搬运,无外部依赖。
6
- */
7
- export declare const flexibleObj: {
8
- create(num: number): string;
9
- getValue(str: string | number): number;
10
- isFlexible(str: string | number | undefined | null): boolean;
11
- add(current: number | string, duration: number): string | number;
12
- };
13
- /**
14
- * 取 duration 数值(兼容 number / { type, value } / 灵活时长字符串)。
15
- * 与 info2 `getDuration` 行为等价。
16
- */
17
- /**
18
- * 商品定义是否为「灵活时长」类型(仅看 product.duration 对象,不把 flexible_423 字符串当类型)。
19
- * 与 info2 `getDuration({ type: 'flexible' }) === 'flexible'` 判定对齐。
20
- */
21
- export declare function isProductFlexibleDuration(duration: number | string | {
22
- type: string;
23
- value: number;
24
- } | undefined | null): boolean;
25
- export declare function getDurationValue(duration: number | string | {
26
- type: string;
27
- value: number;
28
- } | undefined | null): number | 'flexible' | undefined;
@@ -1,56 +0,0 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- /**
3
- * 灵活时长(flexible duration)协议工具。
4
- *
5
- * info2 用 `flexible_<minutes>` 字符串前缀标记"灵活时长",对外用同名 API 暴露 create / getValue / isFlexible / add。
6
- * OS 这边一比一搬运,无外部依赖。
7
- */
8
-
9
- var PREFIX = 'flexible_';
10
- export var flexibleObj = {
11
- create: function create(num) {
12
- return "".concat(PREFIX).concat(num);
13
- },
14
- getValue: function getValue(str) {
15
- if (typeof str === 'string' && flexibleObj.isFlexible(str)) {
16
- return Number(str.replace(PREFIX, ''));
17
- }
18
- return Number(str);
19
- },
20
- isFlexible: function isFlexible(str) {
21
- if (typeof str !== 'string') return false;
22
- return str.indexOf(PREFIX) > -1;
23
- },
24
- add: function add(current, duration) {
25
- if (flexibleObj.isFlexible(current)) {
26
- return flexibleObj.create(flexibleObj.getValue(current) + duration);
27
- }
28
- return Number(current) + duration;
29
- }
30
- };
31
-
32
- /**
33
- * 取 duration 数值(兼容 number / { type, value } / 灵活时长字符串)。
34
- * 与 info2 `getDuration` 行为等价。
35
- */
36
- /**
37
- * 商品定义是否为「灵活时长」类型(仅看 product.duration 对象,不把 flexible_423 字符串当类型)。
38
- * 与 info2 `getDuration({ type: 'flexible' }) === 'flexible'` 判定对齐。
39
- */
40
- export function isProductFlexibleDuration(duration) {
41
- return Boolean(duration && _typeof(duration) === 'object' && duration.type === 'flexible');
42
- }
43
- export function getDurationValue(duration) {
44
- if (duration === undefined || duration === null) return undefined;
45
- if (typeof duration === 'number') return duration;
46
- if (typeof duration === 'string') {
47
- if (flexibleObj.isFlexible(duration)) return 'flexible';
48
- return Number(duration);
49
- }
50
- if (_typeof(duration) === 'object') {
51
- if (duration.type === 'minutes') return duration.value;
52
- if (duration.type === 'flexible') return 'flexible';
53
- if (duration.type === 'days') return duration.value;
54
- }
55
- return undefined;
56
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * 将 `/schedule/resource/list` 原始数组格式化为 `list + listMap`。
3
- * 逻辑与 info2 [`getFormatResourceListAndMap`] 对齐:追加无资源占位行、按 id 建 map。
4
- */
5
- export declare function formatResourceListAndMap(data: any[] | null | undefined, _bookingIds?: number[]): {
6
- list: any[];
7
- listMap: Record<string, any>;
8
- };
@@ -1,38 +0,0 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- import { getNoResource2 } from "./noResource";
8
-
9
- /**
10
- * 将 `/schedule/resource/list` 原始数组格式化为 `list + listMap`。
11
- * 逻辑与 info2 [`getFormatResourceListAndMap`] 对齐:追加无资源占位行、按 id 建 map。
12
- */
13
- export function formatResourceListAndMap(data) {
14
- var _bookingIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
15
- var resourceList = (Array.isArray(data) ? data : []).concat([getNoResource2({})]);
16
- var map = resourceList.reduce(function (prev, item) {
17
- if ((item === null || item === void 0 ? void 0 : item.id) !== undefined && (item === null || item === void 0 ? void 0 : item.id) !== null) {
18
- prev[String(item.id)] = item;
19
- }
20
- return prev;
21
- }, {});
22
- var getCapacity = function getCapacity(item) {
23
- return item.capacity;
24
- };
25
- var list = resourceList.map(function (item) {
26
- var newItem = _objectSpread(_objectSpread({}, item), {}, {
27
- capacity: getCapacity(item)
28
- });
29
- if (newItem.id !== undefined && newItem.id !== null) {
30
- map[String(newItem.id)] = newItem;
31
- }
32
- return newItem;
33
- });
34
- return {
35
- list: list,
36
- listMap: map
37
- };
38
- }
@@ -1,11 +0,0 @@
1
- export * from './flexible';
2
- export * from './serviceTimes';
3
- export * from './timeSlices';
4
- export * from './noResource';
5
- export * from './resources';
6
- export * from './resourceSelection';
7
- export * from './resourceErrors';
8
- export * from './productExtend';
9
- export * from './cacheItemToBookingInput';
10
- export * from './buildCacheItemFromOrderLine';
11
- export * from './buildNormalProductCacheItemFromOrderLine';
@@ -1,11 +0,0 @@
1
- export * from "./flexible";
2
- export * from "./serviceTimes";
3
- export * from "./timeSlices";
4
- export * from "./noResource";
5
- export * from "./resources";
6
- export * from "./resourceSelection";
7
- export * from "./resourceErrors";
8
- export * from "./productExtend";
9
- export * from "./cacheItemToBookingInput";
10
- export * from "./buildCacheItemFromOrderLine";
11
- export * from "./buildNormalProductCacheItemFromOrderLine";
@@ -1,13 +0,0 @@
1
- /**
2
- * 「无资源」占位资源行的数据骨架。
3
- *
4
- * 与 info2 [`booking/mock.ts#getNoResource2`] 一比一对齐,区别仅在于:
5
- * - `main_field / room_name / labelText` 三个 i18n 文案字段在 OS 这边**置空**,
6
- * 调用方(UI)在 `id === 0` 时自行渲染本地化的「无资源 / No resource」。
7
- *
8
- * 用途:`getResourceByIds` 在拼装 `optional_resource` 列表时,会在末尾 concat 一行此占位,
9
- * 让用户能选择「不指定资源」。
10
- */
11
- export declare function getNoResource2(other?: {
12
- form_id?: number | string;
13
- } & Record<string, any>): any;
@@ -1,77 +0,0 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- /**
8
- * 「无资源」占位资源行的数据骨架。
9
- *
10
- * 与 info2 [`booking/mock.ts#getNoResource2`] 一比一对齐,区别仅在于:
11
- * - `main_field / room_name / labelText` 三个 i18n 文案字段在 OS 这边**置空**,
12
- * 调用方(UI)在 `id === 0` 时自行渲染本地化的「无资源 / No resource」。
13
- *
14
- * 用途:`getResourceByIds` 在拼装 `optional_resource` 列表时,会在末尾 concat 一行此占位,
15
- * 让用户能选择「不指定资源」。
16
- */
17
- export function getNoResource2(other) {
18
- return _objectSpread({
19
- form_tag: null,
20
- policy: 148,
21
- partyroom_package: {
22
- type: 'product_all'
23
- },
24
- sort: '2',
25
- status: 'active',
26
- description: '',
27
- media: '',
28
- main_field: '',
29
- subtitle: '',
30
- room_name: '',
31
- labelText: '',
32
- form_record_id: 0,
33
- item_type: 'resources',
34
- form_id: 0,
35
- id: 0,
36
- form_resource_sort: 0,
37
- form_title: '',
38
- capacity: 999999,
39
- form: {
40
- id: 0,
41
- shop_id: 0,
42
- title: '',
43
- navigation_display: 1,
44
- button: '',
45
- describe: '',
46
- status: 'published',
47
- resource_sort: 0,
48
- code: 'resources',
49
- type: 'manual',
50
- version: 1,
51
- setting: null,
52
- created_at: '2000-01-01 00:00:00',
53
- updated_at: '2000-01-01 00:00:00'
54
- },
55
- times: [{
56
- keys: 'noResource2-placeholder',
57
- schedule_id: 0,
58
- item_type: 'resources',
59
- item_id: 0,
60
- start_date: '2000-01-01',
61
- end_date: '2300-01-01',
62
- start_time: '00:00',
63
- end_time: '23:59',
64
- is_all: 1,
65
- max_participants_type: 'custom-limit',
66
- max_participants_limit: 0,
67
- relation_type: 'form',
68
- start_at: '2000-01-01 00:00',
69
- end_at: '2300-01-05 23:59',
70
- is_blocked: 0,
71
- blocked_times: [],
72
- order_event_count: 0,
73
- unique: 'noResource2-unique',
74
- event_list: []
75
- }]
76
- }, other || {});
77
- }
@@ -1,72 +0,0 @@
1
- import { getSumCapacity } from './resources';
2
- import { TimeSlicesResult, TimeSlice, DurationSlice } from './timeSlices';
3
- /**
4
- * 上下文(与 info2 state.bookingConfig / state.service / state.date 一一对应)。
5
- *
6
- * 设计原则:所有助手函数都通过 context 显式拿数据,**不读 mini-redux**,
7
- * 让 OS 这层完全可在 Node 单测下运行(dayjs 在 Node 也是纯函数)。
8
- */
9
- export interface BookingCalcContext {
10
- /** 来自 `/core/board/management/config` 的整套配置;常用路径见 sliceTimeSlices / appointmentTimingPreference。 */
11
- bookingConfig?: any;
12
- /** 资源 origin map(id → resource origin)。 */
13
- resourcesOriginMap?: Record<string, any>;
14
- /** 资源全集列表(display_scope=all 时用)。 */
15
- resourcesOrigin?: any[];
16
- /** 当前选择的日期(dayjs 或 string)。 */
17
- date?: any;
18
- /** 上一个服务行(getServiceStartTimeAndEndTime 拼接续接 start_time 用)。可缺省。 */
19
- previousService?: any;
20
- /** 日历选中的资源 id(替代 info2 sessionStorage.serviceParams.resource_id)。 */
21
- resourceIdFromCalendar?: number;
22
- /** 资源自动分派开关(替代 info2 localStorage 'resource-auto-allocation');默认全开。 */
23
- isAutoAllocationOn?: (formId: any) => boolean;
24
- /** 当前预设开始时间(替代 info2 sessionStorage.serviceParams.start_date 取 HH:mm)。 */
25
- presetStartTime?: string;
26
- /** 店铺打烊时间(替代 info2 localStorage shopOpeningHours),默认 23:59。 */
27
- shopOpeningHours?: string;
28
- }
29
- /** 从 BookingContext.date 提取 HH:mm(仅当日期带有效时分时)。 */
30
- export declare function derivePresetStartTimeFromDate(date: any): string | undefined;
31
- /**
32
- * 时间切片对象(含灵活时长选项)。与 info2 `getTimeObj` 等价。
33
- */
34
- export declare function getTimeObj(params: {
35
- cacheItem: any;
36
- useStartTime?: string;
37
- useDuration?: number | string;
38
- ctx: BookingCalcContext;
39
- }): TimeSlicesResult & {
40
- timeSlices: TimeSlice[];
41
- durationSlicesBasedOnTime: DurationSlice[];
42
- };
43
- /**
44
- * 计算商品行 _extend(包含 start_time / endDate / duration / start_date / end_date / sub_type 等)。
45
- * 与 info2 `utilsByBooking.ts#getServiceStartTimeAndEndTime` 等价;显著差异:
46
- * - 不读 `state.service.value` / `mini-redux`,由 ctx.previousService 显式注入。
47
- * - 不读 `sessionStorage.serviceParams`,由 ctx.presetStartTime / ctx.resourceIdFromCalendar 注入。
48
- * - cacheItem.isCustomItem → 直接返回 `{ duration: null }`。
49
- */
50
- export declare function getServiceStartTimeAndEndTime(params: {
51
- cacheItem: any;
52
- timeObj: TimeSlicesResult;
53
- ctx: BookingCalcContext;
54
- }): any;
55
- /**
56
- * 综合:把 cacheItem 拼装出完整的 _extend / _data(资源 / 容量 / timeObj),并标记 autoClose。
57
- * 与 info2 `service/addService/utils.tsx#getProductExtend` 等价;剥 React `console.time` / JSX。
58
- *
59
- * 入参 ctx 必须至少给:bookingConfig / resourcesOriginMap / resourcesOrigin / date。
60
- */
61
- export declare function getProductExtend(params: {
62
- cacheItem: any;
63
- ctx: BookingCalcContext;
64
- isDisabledTime?: boolean;
65
- }): any;
66
- /**
67
- * 是否可自动关闭弹窗(不需要用户进 EditService 抽屉)。
68
- * 与 info2 `service/addService/utils.tsx#getIsAutoClose` 等价;
69
- * `getAutoAllocationStorage` 抽象为入参 `isAutoAllocationOn(formId)`。
70
- */
71
- export declare function getIsAutoClose(cacheItem: any, isAutoAllocationOn: (formId: any) => boolean): boolean;
72
- export { getSumCapacity };