@pisell/pisellos 2.2.283 → 2.2.285

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 (283) hide show
  1. package/dist/core/index.js +6 -10
  2. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  3. package/dist/model/strategy/strategy-example.js +5 -19
  4. package/dist/modules/Cart/index.js +0 -3
  5. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  6. package/dist/modules/Date/index.js +1 -5
  7. package/dist/modules/Discount/index.js +2 -4
  8. package/dist/modules/OpenData/index.js +0 -2
  9. package/dist/modules/Order/index.d.ts +1 -1
  10. package/dist/modules/Order/index.js +64 -86
  11. package/dist/modules/Order/types.d.ts +3 -1
  12. package/dist/modules/Order/types.js +1 -0
  13. package/dist/modules/Payment/index.js +97 -162
  14. package/dist/modules/ProductList/index.js +91 -65
  15. package/dist/modules/Rules/index.js +1 -4
  16. package/dist/modules/Schedule/index.js +0 -1
  17. package/dist/modules/Schedule/utils.js +0 -1
  18. package/dist/modules/Step/index.js +0 -1
  19. package/dist/plugins/request.js +1 -4
  20. package/dist/plugins/window.js +2 -6
  21. package/dist/server/index.js +97 -129
  22. package/dist/server/modules/menu/index.js +32 -41
  23. package/dist/server/modules/order/index.js +2 -4
  24. package/dist/server/modules/products/index.js +24 -42
  25. package/dist/server/modules/quotation/index.js +29 -38
  26. package/dist/server/modules/resource/index.js +3 -4
  27. package/dist/server/modules/schedule/index.js +27 -35
  28. package/dist/server/utils/product.js +0 -1
  29. package/dist/solution/BaseSales/index.js +115 -76
  30. package/dist/solution/BookingByStep/index.d.ts +1 -1
  31. package/dist/solution/BookingByStep/index.js +7 -59
  32. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  33. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  34. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  35. package/dist/solution/BookingTicket/index.d.ts +6 -16
  36. package/dist/solution/BookingTicket/index.js +13 -6
  37. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  38. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  39. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  40. package/dist/solution/BuyTickets/index.js +9 -12
  41. package/dist/solution/Checkout/index.js +177 -252
  42. package/dist/solution/Checkout/utils/index.js +4 -16
  43. package/dist/solution/RegisterAndLogin/index.js +30 -76
  44. package/dist/solution/ScanOrder/index.js +50 -60
  45. package/dist/solution/ShopDiscount/index.js +2 -7
  46. package/dist/solution/VenueBooking/index.js +45 -55
  47. package/dist/utils/task.js +15 -18
  48. package/dist/utils/watch.js +0 -1
  49. package/lib/apis/picoding.js +2 -0
  50. package/lib/core/index.js +131 -132
  51. package/lib/effects/index.js +46 -57
  52. package/lib/index.js +82 -49
  53. package/lib/model/index.js +14 -21
  54. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  55. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  56. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  57. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  58. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  59. package/lib/model/strategy/adapter/index.js +100 -64
  60. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  61. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  62. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  63. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  64. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  65. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  66. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  67. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  68. package/lib/model/strategy/adapter/promotion/index.js +46 -0
  69. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  70. package/lib/model/strategy/adapter/type.js +4 -16
  71. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  72. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  73. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  74. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  75. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  76. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  77. package/lib/model/strategy/engine.js +270 -168
  78. package/lib/model/strategy/index.js +49 -34
  79. package/lib/model/strategy/strategy-example.js +243 -239
  80. package/lib/model/strategy/type.js +100 -40
  81. package/lib/modules/Account/index.js +39 -53
  82. package/lib/modules/Account/types.js +20 -33
  83. package/lib/modules/AccountList/index.js +116 -154
  84. package/lib/modules/AccountList/types.js +30 -31
  85. package/lib/modules/AccountList/utils.js +18 -30
  86. package/lib/modules/BaseModule.js +23 -42
  87. package/lib/modules/BookingContext/index.js +158 -136
  88. package/lib/modules/BookingContext/types.js +46 -32
  89. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  90. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  91. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  92. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  93. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  94. package/lib/modules/BookingContext/utils/index.js +124 -41
  95. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  96. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  97. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  98. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  99. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  100. package/lib/modules/BookingContext/utils/resources.js +209 -167
  101. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  102. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  103. package/lib/modules/Cart/index.js +170 -124
  104. package/lib/modules/Cart/types.js +46 -51
  105. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  106. package/lib/modules/Cart/utils/cartDate.js +56 -61
  107. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  108. package/lib/modules/Cart/utils/cartNote.js +27 -32
  109. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  110. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  111. package/lib/modules/Cart/utils/cartResource.js +70 -78
  112. package/lib/modules/Cart/utils/changePrice.js +22 -50
  113. package/lib/modules/Cart/utils/index.js +106 -48
  114. package/lib/modules/Customer/constants.js +13 -34
  115. package/lib/modules/Customer/index.js +235 -172
  116. package/lib/modules/Customer/types.js +38 -35
  117. package/lib/modules/Date/index.js +116 -115
  118. package/lib/modules/Date/types.js +16 -28
  119. package/lib/modules/Date/utils.js +174 -123
  120. package/lib/modules/Discount/index.js +122 -127
  121. package/lib/modules/Discount/types.js +9 -31
  122. package/lib/modules/Guests/index.js +30 -56
  123. package/lib/modules/Guests/types.js +23 -33
  124. package/lib/modules/Holder/index.js +209 -189
  125. package/lib/modules/Holder/types.js +4 -16
  126. package/lib/modules/Holder/utils.js +20 -49
  127. package/lib/modules/OpenData/index.js +70 -76
  128. package/lib/modules/OpenData/types.js +4 -16
  129. package/lib/modules/OpenData/utils.js +44 -78
  130. package/lib/modules/Order/index.d.ts +1 -1
  131. package/lib/modules/Order/index.js +1728 -2123
  132. package/lib/modules/Order/payment-utils.js +77 -120
  133. package/lib/modules/Order/types.d.ts +3 -1
  134. package/lib/modules/Order/types.js +88 -35
  135. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  136. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  137. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  138. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  139. package/lib/modules/Order/utils.js +814 -647
  140. package/lib/modules/Payment/cash.js +20 -33
  141. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  142. package/lib/modules/Payment/eftpos.js +16 -30
  143. package/lib/modules/Payment/index.js +532 -399
  144. package/lib/modules/Payment/mx51.js +1 -0
  145. package/lib/modules/Payment/types.js +230 -108
  146. package/lib/modules/Payment/utils.js +52 -51
  147. package/lib/modules/Payment/walletpass.js +485 -660
  148. package/lib/modules/Product/index.js +51 -46
  149. package/lib/modules/Product/types.js +4 -16
  150. package/lib/modules/Product/utils.js +32 -33
  151. package/lib/modules/ProductList/index.js +119 -123
  152. package/lib/modules/ProductList/types.js +9 -31
  153. package/lib/modules/Quotation/index.js +66 -100
  154. package/lib/modules/Quotation/types.js +4 -16
  155. package/lib/modules/Resource/index.js +27 -59
  156. package/lib/modules/Resource/types.js +22 -32
  157. package/lib/modules/Resource/utils.js +30 -38
  158. package/lib/modules/ResourcePlanner/index.js +60 -61
  159. package/lib/modules/ResourcePlanner/planner.js +346 -384
  160. package/lib/modules/ResourcePlanner/types.js +4 -16
  161. package/lib/modules/Rules/index.js +1218 -959
  162. package/lib/modules/Rules/types.js +17 -40
  163. package/lib/modules/SalesSummary/index.js +85 -90
  164. package/lib/modules/SalesSummary/types.js +4 -16
  165. package/lib/modules/SalesSummary/utils.js +355 -430
  166. package/lib/modules/ScanOrderLogger/index.js +59 -79
  167. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  168. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  169. package/lib/modules/ScanOrderLogger/types.js +4 -16
  170. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  171. package/lib/modules/Schedule/index.js +100 -114
  172. package/lib/modules/Schedule/type.js +4 -16
  173. package/lib/modules/Schedule/types.js +4 -16
  174. package/lib/modules/Schedule/utils.js +433 -291
  175. package/lib/modules/Step/index.js +40 -52
  176. package/lib/modules/Step/tyeps.js +4 -16
  177. package/lib/modules/Summary/index.js +66 -71
  178. package/lib/modules/Summary/types.js +4 -16
  179. package/lib/modules/Summary/utils.js +773 -418
  180. package/lib/modules/SurchargeList/index.js +46 -60
  181. package/lib/modules/SurchargeList/types.js +4 -16
  182. package/lib/modules/index.js +245 -63
  183. package/lib/plugins/app.js +4 -16
  184. package/lib/plugins/index.js +36 -25
  185. package/lib/plugins/request.js +137 -126
  186. package/lib/plugins/shopStore.js +4 -16
  187. package/lib/plugins/user.js +4 -16
  188. package/lib/plugins/window.js +171 -179
  189. package/lib/server/index.js +3027 -2655
  190. package/lib/server/modules/floor-plan/index.js +102 -123
  191. package/lib/server/modules/floor-plan/types.js +15 -30
  192. package/lib/server/modules/index.js +106 -68
  193. package/lib/server/modules/menu/index.js +146 -122
  194. package/lib/server/modules/menu/types.js +18 -31
  195. package/lib/server/modules/order/index.js +758 -956
  196. package/lib/server/modules/order/types.js +122 -33
  197. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  198. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  199. package/lib/server/modules/payment/index.js +59 -83
  200. package/lib/server/modules/payment/types.js +4 -16
  201. package/lib/server/modules/products/index.js +575 -459
  202. package/lib/server/modules/products/types.js +44 -34
  203. package/lib/server/modules/quotation/index.js +137 -172
  204. package/lib/server/modules/quotation/types.js +21 -31
  205. package/lib/server/modules/resource/index.js +213 -184
  206. package/lib/server/modules/resource/types.js +42 -33
  207. package/lib/server/modules/schedule/index.js +135 -123
  208. package/lib/server/modules/schedule/types.js +14 -21
  209. package/lib/server/modules/schedule/utils.js +334 -163
  210. package/lib/server/types.js +4 -16
  211. package/lib/server/utils/index.js +25 -23
  212. package/lib/server/utils/product.js +196 -139
  213. package/lib/server/utils/schedule.js +34 -41
  214. package/lib/server/utils/small-ticket.js +479 -456
  215. package/lib/server/utils/time.js +40 -49
  216. package/lib/solution/BaseSales/index.js +1220 -1412
  217. package/lib/solution/BaseSales/types.js +42 -38
  218. package/lib/solution/BaseSales/utils/cartPromotion.js +650 -502
  219. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  220. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  221. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  222. package/lib/solution/BaseSales/utils.js +158 -143
  223. package/lib/solution/BookingByStep/index.d.ts +1 -1
  224. package/lib/solution/BookingByStep/index.js +1527 -1340
  225. package/lib/solution/BookingByStep/types.js +40 -99
  226. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  227. package/lib/solution/BookingByStep/utils/products.js +42 -52
  228. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  229. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  230. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  231. package/lib/solution/BookingTicket/index.d.ts +6 -16
  232. package/lib/solution/BookingTicket/index.js +608 -517
  233. package/lib/solution/BookingTicket/types.js +99 -77
  234. package/lib/solution/BookingTicket/utils/addProductDecision.js +225 -187
  235. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  236. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  237. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  238. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  239. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  240. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  241. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  242. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  243. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  244. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  245. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  246. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  247. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  248. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  249. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  250. package/lib/solution/BuyTickets/index.js +67 -70
  251. package/lib/solution/BuyTickets/types.js +22 -38
  252. package/lib/solution/Checkout/index.js +1451 -1158
  253. package/lib/solution/Checkout/types.js +91 -61
  254. package/lib/solution/Checkout/utils/index.js +228 -156
  255. package/lib/solution/PlaceOrder/index.js +55 -0
  256. package/lib/solution/RegisterAndLogin/config.js +493 -460
  257. package/lib/solution/RegisterAndLogin/index.js +633 -630
  258. package/lib/solution/RegisterAndLogin/types.js +189 -76
  259. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  260. package/lib/solution/Sales/index.js +328 -324
  261. package/lib/solution/Sales/types.js +27 -33
  262. package/lib/solution/ScanOrder/index.js +832 -864
  263. package/lib/solution/ScanOrder/types.js +33 -34
  264. package/lib/solution/ScanOrder/utils.js +409 -374
  265. package/lib/solution/ShopDiscount/index.js +226 -232
  266. package/lib/solution/ShopDiscount/types.js +15 -37
  267. package/lib/solution/ShopDiscount/utils.js +300 -172
  268. package/lib/solution/UnifiedBookingSales/index.js +437 -487
  269. package/lib/solution/UnifiedBookingSales/types.js +12 -31
  270. package/lib/solution/VenueBooking/index.js +811 -879
  271. package/lib/solution/VenueBooking/types.js +19 -39
  272. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  273. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  274. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  275. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  276. package/lib/solution/VenueBooking/utils.js +130 -67
  277. package/lib/solution/index.js +124 -41
  278. package/lib/store/createStore.js +32 -29
  279. package/lib/types/index.js +4 -16
  280. package/lib/utils/payment-number.js +26 -46
  281. package/lib/utils/task.js +36 -36
  282. package/lib/utils/watch.js +81 -47
  283. package/package.json +2 -1
@@ -87,23 +87,22 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
87
87
  this.core = core;
88
88
  this.store = options.store || {};
89
89
  this.otherParams = options.otherParams || {};
90
- console.log('[BookingByStep] 初始化完成');
91
90
  // 获取依赖的插件
92
91
  this.request = core.getPlugin('request');
93
92
  this.window = core.getPlugin('window');
94
93
  this.shopStore = core.getPlugin('shopStore');
95
94
  if (this.request) {
96
- _context.next = 9;
95
+ _context.next = 8;
97
96
  break;
98
97
  }
99
98
  throw new Error('bookingByStep解决方案需要 request 插件支持');
100
- case 9:
99
+ case 8:
101
100
  if (this.shopStore) {
102
- _context.next = 11;
101
+ _context.next = 10;
103
102
  break;
104
103
  }
105
104
  throw new Error('SummaryModule 需要 shopStore 插件支持');
106
- case 11:
105
+ case 10:
107
106
  // 如果有传 cacheid,默认需要收集上面这些模块里用户操作选中的数据
108
107
  // 并且在上面 registerModule 的时候,读取 sessionStroage 里的数据,塞进默认值
109
108
  targetCacheData = {};
@@ -138,7 +137,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
138
137
  });
139
138
  this.store.schedule.loadAllSchedule();
140
139
  this.core.effects.emit("".concat(this.name, ":onInited"), {});
141
- case 19:
140
+ case 18:
142
141
  case "end":
143
142
  return _context.stop();
144
143
  }
@@ -3187,8 +3186,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3187
3186
  key: "findCommonAvailableTimeSlots",
3188
3187
  value: function findCommonAvailableTimeSlots(resources) {
3189
3188
  if (resources.length === 0) return [];
3190
- console.log("\u8BA1\u7B97 ".concat(resources.length, " \u4E2A\u8D44\u6E90\u7684\u516C\u5171\u65F6\u95F4\u6BB5"));
3191
-
3192
3189
  // 收集所有资源的时间段,转换为统一的时间格式
3193
3190
  var allTimeSlots = resources.map(function (resource) {
3194
3191
  return resource.times.map(function (time) {
@@ -3198,19 +3195,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3198
3195
  };
3199
3196
  });
3200
3197
  });
3201
- console.log('所有资源的时间段:', allTimeSlots.map(function (slots) {
3202
- return slots.map(function (slot) {
3203
- return "".concat(slot.start.format('HH:mm'), "-").concat(slot.end.format('HH:mm'));
3204
- });
3205
- }));
3206
-
3207
3198
  // 找到公共时间段的交集
3208
3199
  var commonSlots = allTimeSlots[0]; // 从第一个资源的时间段开始
3209
- console.log('初始公共时间段:', commonSlots.map(function (slot) {
3210
- return "".concat(slot.start.format('HH:mm'), "-").concat(slot.end.format('HH:mm'));
3211
- }));
3212
-
3213
- // 与其他资源的时间段求交集
3214
3200
  var _loop3 = function _loop3() {
3215
3201
  var currentResourceSlots = allTimeSlots[i];
3216
3202
  var intersections = [];
@@ -3231,14 +3217,11 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3231
3217
  });
3232
3218
  });
3233
3219
  if (intersections.length === 0) {
3234
- console.log("\u8D44\u6E90".concat(i, "\u4E0E\u5F53\u524D\u516C\u5171\u65F6\u95F4\u6BB5\u65E0\u4EA4\u96C6\uFF0C\u8DF3\u8FC7\u8BE5\u8D44\u6E90"));
3235
3220
  return 1; // continue
3236
3221
  }
3237
3222
  commonSlots = intersections;
3238
- console.log("\u4E0E\u8D44\u6E90".concat(i, "\u6C42\u4EA4\u96C6\u540E\u7684\u516C\u5171\u65F6\u95F4\u6BB5:"), commonSlots.map(function (slot) {
3239
- return "".concat(slot.start.format('HH:mm'), "-").concat(slot.end.format('HH:mm'));
3240
- }));
3241
3223
  };
3224
+ // 与其他资源的时间段求交集
3242
3225
  for (var i = 1; i < allTimeSlots.length; i++) {
3243
3226
  if (_loop3()) continue;
3244
3227
  }
@@ -3250,7 +3233,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3250
3233
  endTime: slot.end.format('HH:mm')
3251
3234
  };
3252
3235
  });
3253
- console.log('最终公共时间段:', result);
3254
3236
  return result;
3255
3237
  }
3256
3238
  }, {
@@ -3360,7 +3342,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3360
3342
  // 获取该资源类型对应的 form_id
3361
3343
  var targetFormId = resourceCodeToFormIdMap[resourceCode];
3362
3344
  if (!targetFormId) {
3363
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u627E\u4E0D\u5230\u5BF9\u5E94\u7684 form_id"));
3364
3345
  return {
3365
3346
  v: {
3366
3347
  success: false,
@@ -3387,7 +3368,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3387
3368
  });
3388
3369
  });
3389
3370
  if (resourcesOfThisType.length === 0) {
3390
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u6CA1\u6709\u627E\u5230\u53EF\u7528\u8D44\u6E90"));
3391
3371
  return {
3392
3372
  v: {
3393
3373
  success: false,
@@ -3454,24 +3434,13 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3454
3434
  // 检查是否有容量问题
3455
3435
  if (requiredAmount > totalAvailable) {
3456
3436
  hasCapacityIssue = true;
3457
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " ").concat(isMultipleBooking ? '容量' : '资源数量', "\u4E0D\u8DB3: \u9700\u8981 ").concat(requiredAmount, ", \u603B\u5171 ").concat(totalAvailable));
3458
3437
  }
3459
3438
 
3460
3439
  // 为通过检测的商品分配一个公共可用时间段
3461
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u7684\u8D44\u6E90\u65F6\u95F4\u4FE1\u606F:"), resourcesOfThisType.map(function (r) {
3462
- return {
3463
- id: r.id,
3464
- times: r.times.map(function (t) {
3465
- return "".concat(t.start_at, " - ").concat(t.end_at);
3466
- })
3467
- };
3468
- }));
3469
3440
 
3470
3441
  // 找到所有资源都可用的时间段
3471
3442
  var commonTimeSlots = _this16.findCommonAvailableTimeSlots(resourcesOfThisType);
3472
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u7684\u516C\u5171\u65F6\u95F4\u6BB5:"), commonTimeSlots);
3473
3443
  if (commonTimeSlots.length === 0) {
3474
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u6CA1\u6709\u516C\u5171\u53EF\u7528\u65F6\u95F4\u6BB5"));
3475
3444
  return {
3476
3445
  v: {
3477
3446
  success: false,
@@ -3482,7 +3451,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3482
3451
 
3483
3452
  // 使用第一个公共可用时间段,但只处理未处理过的商品
3484
3453
  var firstCommonSlot = commonTimeSlots[0];
3485
- console.log("\u4F7F\u7528\u516C\u5171\u65F6\u95F4\u6BB5: ".concat(firstCommonSlot.startTime, " - ").concat(firstCommonSlot.endTime));
3486
3454
  items.forEach(function (cartItem) {
3487
3455
  // 只处理未处理过的商品,避免重复添加
3488
3456
  if (!processedCartItemIds.has(cartItem._id)) {
@@ -3793,7 +3761,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3793
3761
  // 获取该资源类型对应的 form_id
3794
3762
  var targetFormId = resourceCodeToFormIdMap[resourceCode];
3795
3763
  if (!targetFormId) {
3796
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u627E\u4E0D\u5230\u5BF9\u5E94\u7684 form_id"));
3797
3764
  return {
3798
3765
  v: {
3799
3766
  success: false,
@@ -3820,7 +3787,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3820
3787
  });
3821
3788
  });
3822
3789
  if (resourcesOfThisType.length === 0) {
3823
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u6CA1\u6709\u627E\u5230\u53EF\u7528\u8D44\u6E90"));
3824
3790
  return {
3825
3791
  v: {
3826
3792
  success: false,
@@ -3887,24 +3853,13 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3887
3853
  // 检查是否有容量问题
3888
3854
  if (requiredAmount > totalAvailable) {
3889
3855
  hasCapacityIssue = true;
3890
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " ").concat(isMultipleBooking ? '容量' : '资源数量', "\u4E0D\u8DB3: \u9700\u8981 ").concat(requiredAmount, ", \u603B\u5171 ").concat(totalAvailable));
3891
3856
  }
3892
3857
 
3893
3858
  // 为通过检测的商品分配一个公共可用时间段
3894
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u7684\u8D44\u6E90\u65F6\u95F4\u4FE1\u606F:"), resourcesOfThisType.map(function (r) {
3895
- return {
3896
- id: r.id,
3897
- times: r.times.map(function (t) {
3898
- return "".concat(t.start_at, " - ").concat(t.end_at);
3899
- })
3900
- };
3901
- }));
3902
3859
 
3903
3860
  // 找到所有资源都可用的时间段
3904
3861
  var commonTimeSlots = _this17.findCommonAvailableTimeSlots(resourcesOfThisType);
3905
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u7684\u516C\u5171\u65F6\u95F4\u6BB5:"), commonTimeSlots);
3906
3862
  if (commonTimeSlots.length === 0) {
3907
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(resourceCode, " \u6CA1\u6709\u516C\u5171\u53EF\u7528\u65F6\u95F4\u6BB5"));
3908
3863
  return {
3909
3864
  v: {
3910
3865
  success: false,
@@ -3915,7 +3870,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
3915
3870
 
3916
3871
  // 使用第一个公共可用时间段,但只处理未处理过的商品
3917
3872
  var firstCommonSlot = commonTimeSlots[0];
3918
- console.log("\u4F7F\u7528\u516C\u5171\u65F6\u95F4\u6BB5: ".concat(firstCommonSlot.startTime, " - ").concat(firstCommonSlot.endTime));
3919
3873
  items.forEach(function (cartItem) {
3920
3874
  // 只处理未处理过的商品,避免重复添加
3921
3875
  if (!processedCartItemIds.has(cartItem._id)) {
@@ -4225,12 +4179,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
4225
4179
  while (1) switch (_context29.prev = _context29.next) {
4226
4180
  case 0:
4227
4181
  startDate = _ref16.startDate, endDate = _ref16.endDate, scheduleIds = _ref16.scheduleIds, resources = _ref16.resources;
4228
- console.log('appoimentBooking-session-date-getTimeslotsScheduleByDateRange', {
4229
- startDate: startDate,
4230
- endDate: endDate,
4231
- scheduleIds: scheduleIds,
4232
- resources: resources
4233
- });
4234
4182
  // 生成日期范围内的所有日期
4235
4183
  dates = [];
4236
4184
  currentDate = dayjs(startDate);
@@ -4250,7 +4198,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
4250
4198
  });
4251
4199
  }
4252
4200
  return _context29.abrupt("return", results);
4253
- case 9:
4201
+ case 8:
4254
4202
  case "end":
4255
4203
  return _context29.stop();
4256
4204
  }
@@ -293,7 +293,7 @@ export function checkTimeSlotCapacity(timeSlotStart, timeSlotEnd, cartItems, all
293
293
 
294
294
  // 检查每种资源类型是否有足够的容量
295
295
  var _loop = function _loop() {
296
- var _resourceTypeConfig, _resourceTypeConfig2;
296
+ var _resourceTypeConfig;
297
297
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
298
298
  formId = _Object$entries$_i[0],
299
299
  requiredCapacity = _Object$entries$_i[1];
@@ -324,12 +324,6 @@ export function checkTimeSlotCapacity(timeSlotStart, timeSlotEnd, cartItems, all
324
324
  _iterator2.f();
325
325
  }
326
326
  var isMultipleBooking = ((_resourceTypeConfig = resourceTypeConfig) === null || _resourceTypeConfig === void 0 ? void 0 : _resourceTypeConfig.type) === 'multiple';
327
- console.log("capacity.ts - \u8D44\u6E90\u7C7B\u578B ".concat(formId, " \u914D\u7F6E:"), {
328
- resourceTypeConfig: resourceTypeConfig,
329
- type: (_resourceTypeConfig2 = resourceTypeConfig) === null || _resourceTypeConfig2 === void 0 ? void 0 : _resourceTypeConfig2.type,
330
- isMultipleBooking: isMultipleBooking,
331
- requiredCapacity: requiredCapacity
332
- });
333
327
  if (isMultipleBooking) {
334
328
  // 多个预约:计算总可用容量
335
329
  var totalAvailableCapacity = 0;
@@ -343,9 +337,7 @@ export function checkTimeSlotCapacity(timeSlotStart, timeSlotEnd, cartItems, all
343
337
  totalAvailableCapacity += resource.capacity || 0;
344
338
  }
345
339
  });
346
- console.log("capacity.ts - \u8D44\u6E90\u7C7B\u578B ".concat(formId, " \u591A\u4E2A\u9884\u7EA6\u68C0\u67E5: \u603B\u5BB9\u91CF ").concat(totalAvailableCapacity, ", \u9700\u6C42 ").concat(requiredCapacity));
347
340
  if (totalAvailableCapacity < requiredCapacity) {
348
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(formId, " \u5BB9\u91CF\u4E0D\u8DB3: \u9700\u8981 ").concat(requiredCapacity, ", \u53EF\u7528 ").concat(totalAvailableCapacity));
349
341
  return {
350
342
  v: {
351
343
  success: false,
@@ -366,9 +358,7 @@ export function checkTimeSlotCapacity(timeSlotStart, timeSlotEnd, cartItems, all
366
358
  availableResourceCount++;
367
359
  }
368
360
  });
369
- console.log("capacity.ts - \u8D44\u6E90\u7C7B\u578B ".concat(formId, " \u5355\u4E2A\u9884\u7EA6\u68C0\u67E5: \u53EF\u7528\u8D44\u6E90\u6570 ").concat(availableResourceCount, ", \u9700\u6C42 ").concat(requiredCapacity));
370
361
  if (availableResourceCount < requiredCapacity) {
371
- console.log("\u8D44\u6E90\u7C7B\u578B ".concat(formId, " \u6570\u91CF\u4E0D\u8DB3: \u9700\u8981 ").concat(requiredCapacity, ", \u53EF\u7528 ").concat(availableResourceCount));
372
362
  return {
373
363
  v: {
374
364
  success: false,
@@ -399,9 +399,7 @@ export var formatResources = function formatResources(_ref4) {
399
399
  list: _list,
400
400
  maps: maps
401
401
  };
402
- } catch (err) {
403
- console.log('formatResourcesErr', err);
404
- }
402
+ } catch (err) {}
405
403
  return {
406
404
  list: [],
407
405
  maps: {}
@@ -101,13 +101,6 @@ export function findFastestAvailableResource(_ref2) {
101
101
  var isTargetDayToday = targetDay.isSame(currentTime, 'day');
102
102
  var fastestTime = null;
103
103
  var fastestResources = [];
104
- console.log('[TimeslotUtils] 查找最快可用资源:', {
105
- currentTime: currentTime.format('YYYY-MM-DD HH:mm:ss'),
106
- resourceCount: resources.length,
107
- currentCapacity: currentCapacity,
108
- countMap: countMap
109
- });
110
-
111
104
  // 遍历所有资源,找到最快可用的时间点
112
105
  var _iterator2 = _createForOfIteratorHelper(resources),
113
106
  _step2;
@@ -122,28 +115,21 @@ export function findFastestAvailableResource(_ref2) {
122
115
  return dayjs(time.end_at).isAfter(currentTime);
123
116
  });
124
117
  if (targetDayTimes.length === 0) {
125
- console.log("[TimeslotUtils] \u8D44\u6E90 ".concat(_resource.id, "(").concat(_resource.main_field, ") \u4ECA\u65E5\u65E0\u53EF\u7528\u65F6\u95F4\u6BB5"));
126
118
  continue;
127
119
  }
128
120
  var _iterator4 = _createForOfIteratorHelper(targetDayTimes),
129
121
  _step4;
130
122
  try {
131
123
  var _loop = function _loop() {
132
- var _time$event_list, _time$event_list2;
124
+ var _time$event_list;
133
125
  var time = _step4.value;
134
126
  var workStartTime = dayjs(time.start_at);
135
127
  var workEndTime = dayjs(time.end_at);
136
128
 
137
129
  // 确定检查的起始时间(当前时间 vs 工作开始时间)
138
130
  var nextAvailableTime = isTargetDayToday && currentTime.isAfter(workStartTime) ? currentTime : workStartTime;
139
- console.log("[TimeslotUtils] \u68C0\u67E5\u8D44\u6E90 ".concat(_resource.id, "(").concat(_resource.main_field, "):"), {
140
- workTime: "".concat(workStartTime.format('HH:mm'), "-").concat(workEndTime.format('HH:mm')),
141
- checkStartTime: nextAvailableTime.format('HH:mm:ss'),
142
- eventCount: ((_time$event_list = time.event_list) === null || _time$event_list === void 0 ? void 0 : _time$event_list.length) || 0
143
- });
144
-
145
131
  // 获取所有影响的预约事件(当前时间之后的)
146
- var relevantEvents = ((_time$event_list2 = time.event_list) === null || _time$event_list2 === void 0 ? void 0 : _time$event_list2.filter(function (event) {
132
+ var relevantEvents = ((_time$event_list = time.event_list) === null || _time$event_list === void 0 ? void 0 : _time$event_list.filter(function (event) {
147
133
  var eventEnd = dayjs(event.end_at);
148
134
  return eventEnd.isAfter(nextAvailableTime);
149
135
  })) || [];
@@ -162,20 +148,12 @@ export function findFastestAvailableResource(_ref2) {
162
148
  var _event = _step5.value;
163
149
  var _eventStart = dayjs(_event.start_at);
164
150
  var _eventEnd = dayjs(_event.end_at);
165
- console.log("[TimeslotUtils] \u68C0\u67E5\u4E8B\u4EF6\u51B2\u7A81:", {
166
- resourceId: _resource.id,
167
- eventTime: "".concat(_eventStart.format('HH:mm'), "-").concat(_eventEnd.format('HH:mm')),
168
- checkTime: finalAvailableTime.format('HH:mm:ss'),
169
- pax: _event.pax || 1
170
- });
171
-
172
151
  // 检查资源类型和容量
173
152
  if (_resource.resourceType === 'single' || (_resource.capacity || 1) === 1) {
174
153
  // 单人预约资源:检查时间冲突
175
154
  if (finalAvailableTime.isBefore(_eventEnd) && _eventStart.isBefore(finalAvailableTime.add(resolvedDuration, 'minute'))) {
176
155
  // 有冲突,使用事件结束时间
177
156
  finalAvailableTime = _eventEnd;
178
- console.log("[TimeslotUtils] \u53D1\u73B0\u65F6\u95F4\u51B2\u7A81\uFF0C\u8C03\u6574\u5230: ".concat(finalAvailableTime.format('HH:mm:ss')));
179
157
  }
180
158
  } else {
181
159
  // 多人预约资源:检查容量
@@ -189,7 +167,6 @@ export function findFastestAvailableResource(_ref2) {
189
167
  if (totalRequiredCapacity > totalCapacity) {
190
168
  // 容量不足,使用事件结束时间
191
169
  finalAvailableTime = _eventEnd;
192
- console.log("[TimeslotUtils] \u5BB9\u91CF\u4E0D\u8DB3\uFF0C\u8C03\u6574\u5230: ".concat(finalAvailableTime.format('HH:mm:ss')));
193
170
  }
194
171
  }
195
172
  }
@@ -202,19 +179,14 @@ export function findFastestAvailableResource(_ref2) {
202
179
  _iterator5.f();
203
180
  }
204
181
  if (finalAvailableTime.add(resolvedDuration, 'minute').isAfter(workEndTime)) {
205
- console.log("[TimeslotUtils] \u8D44\u6E90 ".concat(_resource.id, " \u53EF\u7528\u65F6\u95F4\u8D85\u51FA\u5DE5\u4F5C\u65F6\u95F4\uFF0C\u8DF3\u8FC7"));
206
182
  return 0; // continue
207
183
  }
208
- console.log("[TimeslotUtils] \u8D44\u6E90 ".concat(_resource.id, "(").concat(_resource.main_field, ") \u6700\u5FEB\u53EF\u7528\u65F6\u95F4: ").concat(finalAvailableTime.format('HH:mm:ss')));
209
-
210
184
  // 更新最快可用时间和资源
211
185
  if (!fastestTime || finalAvailableTime.isBefore(fastestTime)) {
212
186
  fastestTime = finalAvailableTime;
213
187
  fastestResources = [_resource];
214
- console.log("[TimeslotUtils] \u66F4\u65B0\u6700\u5FEB\u65F6\u95F4: ".concat(fastestTime.format('HH:mm:ss'), ", \u8D44\u6E90: ").concat(_resource.main_field));
215
188
  } else if (finalAvailableTime.isSame(fastestTime)) {
216
189
  fastestResources.push(_resource);
217
- console.log("[TimeslotUtils] \u6DFB\u52A0\u76F8\u540C\u65F6\u95F4\u8D44\u6E90: ".concat(_resource.main_field));
218
190
  }
219
191
  return 1; // break
220
192
  // 每个资源只需要计算一次
@@ -239,21 +211,16 @@ export function findFastestAvailableResource(_ref2) {
239
211
  _iterator2.f();
240
212
  }
241
213
  if (!fastestTime || fastestResources.length === 0) {
242
- console.log('[TimeslotUtils] 未找到可用资源');
243
214
  return null;
244
215
  }
245
- console.log("[TimeslotUtils] \u627E\u5230 ".concat(fastestResources.length, " \u4E2A\u6700\u5FEB\u53EF\u7528\u8D44\u6E90\uFF0C\u65F6\u95F4: ").concat(fastestTime.format('HH:mm:ss')));
246
-
247
216
  // 如果只有一个最快可用的资源,直接返回
248
217
  if (fastestResources.length === 1) {
249
- console.log("[TimeslotUtils] \u8FD4\u56DE\u552F\u4E00\u6700\u5FEB\u8D44\u6E90: ".concat(fastestResources[0].main_field));
250
218
  return fastestResources[0];
251
219
  }
252
220
 
253
221
  // 如果有多个最快可用的资源,选择空闲时间最长的资源
254
222
  var selectedResource = fastestResources[0];
255
223
  var maxIdleTime = 0;
256
- console.log("[TimeslotUtils] \u6BD4\u8F83 ".concat(fastestResources.length, " \u4E2A\u8D44\u6E90\u7684\u7A7A\u95F2\u65F6\u95F4:"));
257
224
  for (var _i2 = 0, _fastestResources = fastestResources; _i2 < _fastestResources.length; _i2++) {
258
225
  var _workingTime$event_li;
259
226
  var resource = _fastestResources[_i2];
@@ -291,19 +258,11 @@ export function findFastestAvailableResource(_ref2) {
291
258
  } finally {
292
259
  _iterator3.f();
293
260
  }
294
- console.log("[TimeslotUtils] \u8D44\u6E90 ".concat(resource.id, "(").concat(resource.main_field, "):"), {
295
- 工作结束时间: workEndTime.format('HH:mm'),
296
- 总工作时长: workEndTime.diff(fastestTime, 'minute') + '分钟',
297
- 预约占用时长: workEndTime.diff(fastestTime, 'minute') - totalIdleTime + '分钟',
298
- 实际空闲时长: totalIdleTime + '分钟'
299
- });
300
261
  if (totalIdleTime > maxIdleTime) {
301
262
  maxIdleTime = totalIdleTime;
302
263
  selectedResource = resource;
303
- console.log("[TimeslotUtils] \u66F4\u65B0\u6700\u4F73\u9009\u62E9: ".concat(resource.main_field, " (\u7A7A\u95F2").concat(totalIdleTime, "\u5206\u949F)"));
304
264
  }
305
265
  }
306
- console.log("[TimeslotUtils] \u6700\u7EC8\u9009\u62E9\u8D44\u6E90: ".concat(selectedResource.main_field, " (\u6700\u957F\u7A7A\u95F2").concat(maxIdleTime, "\u5206\u949F)"));
307
266
  return selectedResource;
308
267
  }
309
268
 
@@ -3,7 +3,7 @@ import { BookingTicketCartView, BookingTicketProductCatalogView, BookingTicketSt
3
3
  import type { ProductData } from '../../modules';
4
4
  import type { OpenDataConfig } from '../../modules/OpenData';
5
5
  import { type BookingContextConfig, type BookingContextDateInput, type BookingContextResource, type BookingContextResourceMap, type BookingContextState, type InitBookingContextParams, type LoadBookingConfigParams, type LoadBookingResourcesParams, type ResourceError, type BookingCalcContext } from '../../modules/BookingContext';
6
- import type { OrderCustomerView } from '../../modules/Order/types';
6
+ import type { OrderCustomerView, OrderCustomerChangePayload } from '../../modules/Order/types';
7
7
  import { BaseSalesImpl } from '../BaseSales';
8
8
  import type { BaseSalesScanCodeResult } from '../BaseSales/types';
9
9
  import type { ISalesDetail } from '../BaseSales/utils/parseSalesResponse';
@@ -260,7 +260,9 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
260
260
  * 同时透传 OrderModule 内部 emit 的 `order:onOrderCustomerChange` 之外,
261
261
  * 在 BookingTicket 命名空间也 emit 一次,方便上层统一从 Solution 订阅。
262
262
  */
263
- setOrderCustomer(customer: ICustomer | null): void;
263
+ setOrderCustomer(customer: ICustomer | null, options?: {
264
+ source?: OrderCustomerChangePayload['source'];
265
+ }): void;
264
266
  /**
265
267
  * 读取 tempOrder 上的下单客户协议字段;customer_id 缺失时返回 null。
266
268
  */
@@ -332,7 +334,7 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
332
334
  * 获取当前的客户搜索条件
333
335
  * @returns 当前搜索条件
334
336
  */
335
- getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
337
+ getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
336
338
  /**
337
339
  * 获取客户列表状态(包含滚动加载相关状态)
338
340
  * @returns 客户状态
@@ -451,19 +453,7 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
451
453
  * 加车两阶段主决策(规格弹窗 / 资源编辑 / 直接加车)。
452
454
  * 与 ticketBooking `handleSelectProduct` + `handleBooking4Service` 等价。
453
455
  */
454
- decideAddProduct(item: any, options?: Partial<AddProductDecideContext>): {
455
- action: "reloadCatalog";
456
- } | {
457
- action: "add";
458
- cacheItem: any;
459
- } | {
460
- action: "requiresDetail";
461
- payload: AddProductRequiresDetailPayload;
462
- } | {
463
- action: "requiresBookingEdit";
464
- cacheItem: any;
465
- payload: import("./utils/addProductDecision").AddProductRequiresBookingEditPayload;
466
- };
456
+ decideAddProduct(item: any, options?: Partial<AddProductDecideContext>): import("./utils/addProductDecision").AddProductDecision;
467
457
  /** 规格弹窗 callback 后的第二段决策。 */
468
458
  decideAfterDetail(cacheItem: any, options?: Partial<AddProductDecideContext>): import("./utils/addProductDecision").AddProductDecision;
469
459
  /**
@@ -237,8 +237,6 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
237
237
  _context.next = 9;
238
238
  return this.configureIdGeneratorFromOpenData();
239
239
  case 9:
240
- console.log('[BookingTicket] 初始化完成');
241
- case 10:
242
240
  case "end":
243
241
  return _context.stop();
244
242
  }
@@ -542,7 +540,12 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
542
540
  country_calling_code: selectedCustomer === null || selectedCustomer === void 0 ? void 0 : selectedCustomer.country_calling_code
543
541
  });
544
542
  customerModule.setSelectedCustomer(customer);
545
- this.setOrderCustomer(customer);
543
+ // 详情 hydrate 后仍需广播一次,让 CustomerContext 等 UI 订阅方拿到刚补齐的
544
+ // customerSnapshot;但它不是用户主动切换客户。通过 source 明确标记初始化事件,
545
+ // 商品报价/折扣订阅方即可跳过 prepare/config,其他旧订阅方仍可照常刷新 UI。
546
+ this.setOrderCustomer(customer, {
547
+ source: 'detailHydrate'
548
+ });
546
549
  // await this.store.order.saveDraft();
547
550
  }
548
551
  return _context6.abrupt("return", sales);
@@ -1564,7 +1567,7 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
1564
1567
  */
1565
1568
  }, {
1566
1569
  key: "setOrderCustomer",
1567
- value: function setOrderCustomer(customer) {
1570
+ value: function setOrderCustomer(customer, options) {
1568
1571
  var _this$store$order$get3,
1569
1572
  _this3 = this;
1570
1573
  if (!customer) {
@@ -1587,12 +1590,16 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
1587
1590
  var snapshotReplenished = !snapshotBeforeSet && Boolean(snapshotAfterOrderSet);
1588
1591
  if (snapshotReplenished) {
1589
1592
  var _next2 = this.buildOrderCustomerPayload();
1590
- this.core.effects.emit("".concat(this.name, ":onOrderCustomerChange"), _next2);
1593
+ this.core.effects.emit("".concat(this.name, ":onOrderCustomerChange"), _next2 && options !== null && options !== void 0 && options.source ? _objectSpread(_objectSpread({}, _next2), {}, {
1594
+ source: options.source
1595
+ }) : _next2);
1591
1596
  }
1592
1597
  return;
1593
1598
  }
1594
1599
  var next = this.buildOrderCustomerPayload();
1595
- this.core.effects.emit("".concat(this.name, ":onOrderCustomerChange"), next);
1600
+ this.core.effects.emit("".concat(this.name, ":onOrderCustomerChange"), next && options !== null && options !== void 0 && options.source ? _objectSpread(_objectSpread({}, next), {}, {
1601
+ source: options.source
1602
+ }) : next);
1596
1603
  this.refreshDiscountConfigAfterOrderCustomerChange(patch.customer_id);
1597
1604
  // 客户切换可能改变可用促销/赠品;触发一次重算(recursion-safe)。
1598
1605
  var promotionRefreshTask = this.store.order.applyPromotion().then(function () {
@@ -173,26 +173,25 @@ export var searchOrder = /*#__PURE__*/function () {
173
173
  });
174
174
  case 3:
175
175
  res = _context4.sent;
176
- console.log('searchOrder>>>>>>>', res);
177
176
  if (!((res === null || res === void 0 ? void 0 : res.code) == 200 && !!(res !== null && res !== void 0 && res.data))) {
178
- _context4.next = 7;
177
+ _context4.next = 6;
179
178
  break;
180
179
  }
181
180
  return _context4.abrupt("return", {
182
181
  searchType: 'order',
183
182
  response: res
184
183
  });
185
- case 7:
184
+ case 6:
186
185
  throw new Error('没有找到对应的识别码');
187
- case 10:
188
- _context4.prev = 10;
186
+ case 9:
187
+ _context4.prev = 9;
189
188
  _context4.t0 = _context4["catch"](0);
190
189
  throw _context4.t0;
191
- case 13:
190
+ case 12:
192
191
  case "end":
193
192
  return _context4.stop();
194
193
  }
195
- }, _callee4, null, [[0, 10]]);
194
+ }, _callee4, null, [[0, 9]]);
196
195
  }));
197
196
  return function searchOrder(_x7, _x8) {
198
197
  return _ref4.apply(this, arguments);
@@ -76,16 +76,15 @@ var handleScanFn = function handleScanFn(getRequestList, localSearch) {
76
76
  case 0:
77
77
  _ref3 = scanResult || {}, value = _ref3.value; // 本地解析识别码
78
78
  if (!localSearch) {
79
- _context2.next = 15;
79
+ _context2.next = 13;
80
80
  break;
81
81
  }
82
82
  _context2.prev = 2;
83
83
  localResult = localSearch === null || localSearch === void 0 ? void 0 : localSearch(value);
84
84
  if (!((localResult === null || localResult === void 0 ? void 0 : localResult.length) > 0)) {
85
- _context2.next = 9;
85
+ _context2.next = 8;
86
86
  break;
87
87
  }
88
- console.log('本地搜索到数据>>>>>>>', localResult);
89
88
  return _context2.abrupt("return", {
90
89
  searchType: 'local_product',
91
90
  response: {
@@ -94,58 +93,53 @@ var handleScanFn = function handleScanFn(getRequestList, localSearch) {
94
93
  }
95
94
  }
96
95
  });
97
- case 9:
98
- console.log('本地搜索无数据>>>>>>>');
99
- case 10:
100
- _context2.next = 15;
96
+ case 8:
97
+ _context2.next = 13;
101
98
  break;
102
- case 12:
103
- _context2.prev = 12;
99
+ case 10:
100
+ _context2.prev = 10;
104
101
  _context2.t0 = _context2["catch"](2);
105
102
  console.error('本地搜索到数据失败>>>>>>>', _context2.t0);
106
- case 15:
107
- _context2.prev = 15;
103
+ case 13:
104
+ _context2.prev = 13;
108
105
  if (!scanCache.has(value)) {
109
- _context2.next = 22;
106
+ _context2.next = 19;
110
107
  break;
111
108
  }
112
109
  result = scanCache.get(value);
113
- console.log('缓存中搜索到数据>>>>>>>', result);
114
110
  return _context2.abrupt("return", result);
115
- case 22:
116
- console.log('缓存中无数据>>>>>>>');
117
- case 23:
118
- _context2.next = 28;
111
+ case 19:
112
+ _context2.next = 24;
119
113
  break;
120
- case 25:
121
- _context2.prev = 25;
122
- _context2.t1 = _context2["catch"](15);
114
+ case 21:
115
+ _context2.prev = 21;
116
+ _context2.t1 = _context2["catch"](13);
123
117
  console.error('缓存中搜索数据失败>>>>>>>', _context2.t1);
124
- case 28:
118
+ case 24:
125
119
  requestList = (getRequestList === null || getRequestList === void 0 ? void 0 : getRequestList(value)) || [];
126
120
  if (!(requestList.length === 0)) {
127
- _context2.next = 31;
121
+ _context2.next = 27;
128
122
  break;
129
123
  }
130
124
  throw new Error('requestList is empty');
131
- case 31:
132
- _context2.prev = 31;
133
- _context2.next = 34;
125
+ case 27:
126
+ _context2.prev = 27;
127
+ _context2.next = 30;
134
128
  return promiseAny(requestList);
135
- case 34:
129
+ case 30:
136
130
  _result = _context2.sent;
137
131
  // 将结果缓存
138
132
  scanCache.set(value, _result);
139
133
  return _context2.abrupt("return", _result);
140
- case 39:
141
- _context2.prev = 39;
142
- _context2.t2 = _context2["catch"](31);
134
+ case 35:
135
+ _context2.prev = 35;
136
+ _context2.t2 = _context2["catch"](27);
143
137
  throw _context2.t2;
144
- case 42:
138
+ case 38:
145
139
  case "end":
146
140
  return _context2.stop();
147
141
  }
148
- }, _callee2, null, [[2, 12], [15, 25], [31, 39]]);
142
+ }, _callee2, null, [[2, 10], [13, 21], [27, 35]]);
149
143
  }));
150
144
  return function (_x2) {
151
145
  return _ref2.apply(this, arguments);