@pisell/pisellos 0.0.485 → 0.0.487

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.
@@ -1,9 +0,0 @@
1
- // 导出评估器
2
- export { PromotionEvaluator } from "./evaluator";
3
-
4
- // 导出适配器
5
- export { PromotionAdapter } from "./adapter";
6
- export { default } from "./adapter";
7
-
8
- // 导出策略配置示例常量
9
- export { X_ITEMS_FOR_Y_PRICE_STRATEGY, BUY_X_GET_Y_FREE_STRATEGY } from "./examples";
@@ -23,7 +23,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
23
23
  */
24
24
  private logError;
25
25
  createOrder(params: CommitOrderParams['query']): {
26
- type: "virtual" | "appointment_booking";
26
+ type: "appointment_booking" | "virtual";
27
27
  platform: string;
28
28
  sales_channel: string;
29
29
  order_sales_channel: string;
@@ -49,5 +49,5 @@ export declare class Product extends BaseModule implements Module {
49
49
  getCategories(): ProductCategory[];
50
50
  setOtherParams(key: string, value: any): void;
51
51
  getOtherParams(): any;
52
- getProductType(): "normal" | "duration" | "session";
52
+ getProductType(): "duration" | "session" | "normal";
53
53
  }
@@ -150,7 +150,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
150
150
  if (productList.every(function (item) {
151
151
  var _product$discount_lis;
152
152
  var product = _this2.hooks.getProduct(item);
153
- return product.booking_id && (((_product$discount_lis = product.discount_list) === null || _product$discount_lis === void 0 ? void 0 : _product$discount_lis.length) || (newDiscountList[0].tag === 'good_pass' ? product.price == 0 : product.total == 0));
153
+ return product.booking_id && (((_product$discount_lis = product.discount_list) === null || _product$discount_lis === void 0 ? void 0 : _product$discount_lis.length) || product.total == 0);
154
154
  })) {
155
155
  return {
156
156
  isAvailable: false,
@@ -1791,7 +1791,7 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
1791
1791
  }
1792
1792
  // 计算在时间片内有交集的预约容量总和
1793
1793
  var totalCapacity = (countMap[n.id] || []).reduce(function (sum, item) {
1794
- var hasOverlap = !dayjs(item.time.start_at).isAfter(dayjs(timeSlots.start_at)) && !dayjs(item.time.end_at).isBefore(dayjs(timeSlots.end_at));
1794
+ var hasOverlap = dayjs(item.time.start_at).isBefore(dayjs(timeSlots.end_at)) && dayjs(item.time.end_at).isAfter(dayjs(timeSlots.start_at));
1795
1795
  return hasOverlap ? sum + item.pax : sum;
1796
1796
  }, 0);
1797
1797
 
@@ -1898,8 +1898,9 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
1898
1898
  cartItems.forEach(function (item, index) {
1899
1899
  var _getCapacityInfoByCar6 = getCapacityInfoByCartItem(item),
1900
1900
  currentCapacity = _getCapacityInfoByCar6.currentCapacity;
1901
+ var hasOriginTimeSlot = Boolean(item._origin.start_time) && Boolean(item._origin.end_time) && !(timeSlots !== null && timeSlots !== void 0 && timeSlots.start_time);
1901
1902
  // 如果商品已经有时间数据了,意味着是通过先选日期再选商品流程进来的,相当于时间切片已经选中了
1902
- if (item._origin.start_time && !(timeSlots !== null && timeSlots !== void 0 && timeSlots.start_time)) {
1903
+ if (hasOriginTimeSlot) {
1903
1904
  recordTimeSlots = {
1904
1905
  start_time: item._origin.start_time,
1905
1906
  end_time: item._origin.end_time,
@@ -1915,10 +1916,11 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
1915
1916
  return n.code === resources_code;
1916
1917
  });
1917
1918
  // 只有 duration 类商品且不含有灵活时间的商品需要这个操作
1918
- if (index !== 0 && recordTimeSlots && (currentResourceConfig === null || currentResourceConfig === void 0 ? void 0 : currentResourceConfig.type) === 'single' && (_item$_productOrigin3 = item._productOrigin) !== null && _item$_productOrigin3 !== void 0 && _item$_productOrigin3.duration && !hasFlexibleProduct) {
1919
- var _item$_productOrigin4, _item$_productOrigin5;
1920
- var start_at = dayjs(recordTimeSlots.end_time).add(((_item$_productOrigin4 = item._productOrigin) === null || _item$_productOrigin4 === void 0 || (_item$_productOrigin4 = _item$_productOrigin4.duration) === null || _item$_productOrigin4 === void 0 ? void 0 : _item$_productOrigin4.value) || 10, 'minutes');
1921
- var end_at = start_at.add(((_item$_productOrigin5 = item._productOrigin) === null || _item$_productOrigin5 === void 0 || (_item$_productOrigin5 = _item$_productOrigin5.duration) === null || _item$_productOrigin5 === void 0 ? void 0 : _item$_productOrigin5.value) || 10, 'minutes');
1919
+ if (index !== 0 && recordTimeSlots && (currentResourceConfig === null || currentResourceConfig === void 0 ? void 0 : currentResourceConfig.type) === 'single' && (_item$_productOrigin3 = item._productOrigin) !== null && _item$_productOrigin3 !== void 0 && _item$_productOrigin3.duration && !hasFlexibleProduct && !hasOriginTimeSlot) {
1920
+ var _item$_productOrigin4;
1921
+ var recordEndAt = recordTimeSlots.end_at ? dayjs(recordTimeSlots.end_at) : dayjs("".concat(item.start_date, " ").concat(recordTimeSlots.end_time));
1922
+ var start_at = recordEndAt;
1923
+ var end_at = start_at.add(((_item$_productOrigin4 = item._productOrigin) === null || _item$_productOrigin4 === void 0 || (_item$_productOrigin4 = _item$_productOrigin4.duration) === null || _item$_productOrigin4 === void 0 ? void 0 : _item$_productOrigin4.value) || 10, 'minutes');
1922
1924
  recordTimeSlots = {
1923
1925
  start_time: start_at.format('HH:mm'),
1924
1926
  end_time: end_at.format('HH:mm'),
@@ -1962,13 +1964,13 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
1962
1964
  errorList.push(item._id);
1963
1965
  }
1964
1966
  } else {
1965
- var _item$_productOrigin6, _productResources$fin;
1967
+ var _item$_productOrigin5, _productResources$fin;
1966
1968
  // 这里必须每次循环重新读,避免前一次循环操作了购物车,导致数据变更
1967
1969
  // 能进到这种逻辑,说明是 duration 类商品或者灵活时长商品,且是第一种资源,还没有确定时间
1968
1970
  var allCartItems = cloneDeep(_this11.store.cart.getItems());
1969
1971
  // 如果没有传递 timeSlots,代表是第一种资源,则直接拿商品的 duration,到资源列表里找一个公共可用的
1970
1972
  var selectedResources = [];
1971
- var _resources = cloneDeep(((_item$_productOrigin6 = item._productOrigin) === null || _item$_productOrigin6 === void 0 || (_item$_productOrigin6 = _item$_productOrigin6.product_resource) === null || _item$_productOrigin6 === void 0 ? void 0 : _item$_productOrigin6.resources) || []);
1973
+ var _resources = cloneDeep(((_item$_productOrigin5 = item._productOrigin) === null || _item$_productOrigin5 === void 0 || (_item$_productOrigin5 = _item$_productOrigin5.product_resource) === null || _item$_productOrigin5 === void 0 ? void 0 : _item$_productOrigin5.resources) || []);
1972
1974
  var currentResourcesRenderList = [];
1973
1975
  _resources.forEach(function (n) {
1974
1976
  var _n$renderList;
@@ -2084,8 +2086,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2084
2086
  var maxCutOffTime = undefined;
2085
2087
  var maxCutOffTimeValue = dayjs();
2086
2088
  cartItems.forEach(function (item) {
2087
- var _item$_productOrigin7, _item$_productOrigin8, _item$_productOrigin9, _item$_productOrigin10;
2088
- (_item$_productOrigin7 = item._productOrigin) === null || _item$_productOrigin7 === void 0 || (_item$_productOrigin7 = _item$_productOrigin7.product_resource) === null || _item$_productOrigin7 === void 0 || (_item$_productOrigin7 = _item$_productOrigin7.resources) === null || _item$_productOrigin7 === void 0 || _item$_productOrigin7.forEach(function (n) {
2089
+ var _item$_productOrigin6, _item$_productOrigin7, _item$_productOrigin8, _item$_productOrigin9;
2090
+ (_item$_productOrigin6 = item._productOrigin) === null || _item$_productOrigin6 === void 0 || (_item$_productOrigin6 = _item$_productOrigin6.product_resource) === null || _item$_productOrigin6 === void 0 || (_item$_productOrigin6 = _item$_productOrigin6.resources) === null || _item$_productOrigin6 === void 0 || _item$_productOrigin6.forEach(function (n) {
2089
2091
  // TODO: 少了个 status 的判断
2090
2092
  if (n.code === resources_code) {
2091
2093
  resources.push.apply(resources, _toConsumableArray(n.renderList || []));
@@ -2098,10 +2100,10 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2098
2100
  if (item.resource_id && !resourceIds.includes(item.resource_id)) {
2099
2101
  resourceIds.push(item.resource_id);
2100
2102
  }
2101
- resourcesTypeId = item === null || item === void 0 || (_item$_productOrigin8 = item._productOrigin) === null || _item$_productOrigin8 === void 0 || (_item$_productOrigin8 = _item$_productOrigin8.product_resource) === null || _item$_productOrigin8 === void 0 || (_item$_productOrigin8 = _item$_productOrigin8.resources) === null || _item$_productOrigin8 === void 0 || (_item$_productOrigin8 = _item$_productOrigin8.find(function (n) {
2103
+ resourcesTypeId = item === null || item === void 0 || (_item$_productOrigin7 = item._productOrigin) === null || _item$_productOrigin7 === void 0 || (_item$_productOrigin7 = _item$_productOrigin7.product_resource) === null || _item$_productOrigin7 === void 0 || (_item$_productOrigin7 = _item$_productOrigin7.resources) === null || _item$_productOrigin7 === void 0 || (_item$_productOrigin7 = _item$_productOrigin7.find(function (n) {
2102
2104
  return n.code === resources_code;
2103
- })) === null || _item$_productOrigin8 === void 0 ? void 0 : _item$_productOrigin8.id;
2104
- if ((_item$_productOrigin9 = item._productOrigin) !== null && _item$_productOrigin9 !== void 0 && _item$_productOrigin9.cut_off_time && ((_item$_productOrigin10 = item._productOrigin) === null || _item$_productOrigin10 === void 0 ? void 0 : _item$_productOrigin10.cut_off_time.type) === 'advance') {
2105
+ })) === null || _item$_productOrigin7 === void 0 ? void 0 : _item$_productOrigin7.id;
2106
+ if ((_item$_productOrigin8 = item._productOrigin) !== null && _item$_productOrigin8 !== void 0 && _item$_productOrigin8.cut_off_time && ((_item$_productOrigin9 = item._productOrigin) === null || _item$_productOrigin9 === void 0 ? void 0 : _item$_productOrigin9.cut_off_time.type) === 'advance') {
2105
2107
  var currentCutOffTime = dayjs().add(item._productOrigin.cut_off_time.unit, item._productOrigin.cut_off_time.unit_type);
2106
2108
  if (currentCutOffTime.isAfter(maxCutOffTimeValue, 'minute')) {
2107
2109
  maxCutOffTimeValue = currentCutOffTime;
@@ -2151,13 +2153,13 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2151
2153
  cartItems.forEach(function (item) {
2152
2154
  // 单个预约累加账号 多个预约取最大值
2153
2155
  if (isSingleResource) {
2154
- var _item$_productOrigin11;
2155
- accountDuration += ((_item$_productOrigin11 = item._productOrigin) === null || _item$_productOrigin11 === void 0 || (_item$_productOrigin11 = _item$_productOrigin11.duration) === null || _item$_productOrigin11 === void 0 ? void 0 : _item$_productOrigin11.value) || 10;
2156
+ var _item$_productOrigin10;
2157
+ accountDuration += ((_item$_productOrigin10 = item._productOrigin) === null || _item$_productOrigin10 === void 0 || (_item$_productOrigin10 = _item$_productOrigin10.duration) === null || _item$_productOrigin10 === void 0 ? void 0 : _item$_productOrigin10.value) || 10;
2156
2158
  } else {
2157
- var _item$_productOrigin12;
2158
- if (accountDuration < (((_item$_productOrigin12 = item._productOrigin) === null || _item$_productOrigin12 === void 0 || (_item$_productOrigin12 = _item$_productOrigin12.duration) === null || _item$_productOrigin12 === void 0 ? void 0 : _item$_productOrigin12.value) || 10)) {
2159
- var _item$_productOrigin13;
2160
- accountDuration = ((_item$_productOrigin13 = item._productOrigin) === null || _item$_productOrigin13 === void 0 || (_item$_productOrigin13 = _item$_productOrigin13.duration) === null || _item$_productOrigin13 === void 0 ? void 0 : _item$_productOrigin13.value) || 10;
2159
+ var _item$_productOrigin11;
2160
+ if (accountDuration < (((_item$_productOrigin11 = item._productOrigin) === null || _item$_productOrigin11 === void 0 || (_item$_productOrigin11 = _item$_productOrigin11.duration) === null || _item$_productOrigin11 === void 0 ? void 0 : _item$_productOrigin11.value) || 10)) {
2161
+ var _item$_productOrigin12;
2162
+ accountDuration = ((_item$_productOrigin12 = item._productOrigin) === null || _item$_productOrigin12 === void 0 || (_item$_productOrigin12 = _item$_productOrigin12.duration) === null || _item$_productOrigin12 === void 0 ? void 0 : _item$_productOrigin12.value) || 10;
2161
2163
  }
2162
2164
  }
2163
2165
  });
@@ -2194,8 +2196,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2194
2196
  }
2195
2197
  var resourcesUseableMap = {};
2196
2198
  var hasFlexibleDuration = cartItems.some(function (item) {
2197
- var _item$_productOrigin14;
2198
- return ((_item$_productOrigin14 = item._productOrigin) === null || _item$_productOrigin14 === void 0 || (_item$_productOrigin14 = _item$_productOrigin14.duration) === null || _item$_productOrigin14 === void 0 ? void 0 : _item$_productOrigin14.type) === 'flexible';
2199
+ var _item$_productOrigin13;
2200
+ return ((_item$_productOrigin13 = item._productOrigin) === null || _item$_productOrigin13 === void 0 || (_item$_productOrigin13 = _item$_productOrigin13.duration) === null || _item$_productOrigin13 === void 0 ? void 0 : _item$_productOrigin13.type) === 'flexible';
2199
2201
  });
2200
2202
  var operating_day_boundary = (_this$shopStore$get = this.shopStore.get('core')) === null || _this$shopStore$get === void 0 || (_this$shopStore$get = _this$shopStore$get.core) === null || _this$shopStore$get === void 0 ? void 0 : _this$shopStore$get.operating_day_boundary;
2201
2203
 
@@ -2203,11 +2205,11 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2203
2205
  var maxBlockThreshold = 0;
2204
2206
  if (hasFlexibleDuration) {
2205
2207
  maxBlockThreshold = cartItems.reduce(function (max, item) {
2206
- var _item$_productOrigin15;
2208
+ var _item$_productOrigin14;
2207
2209
  // 如果开启了灵活时长商品配置,则取 block_threshold 的值
2208
- if ((_item$_productOrigin15 = item._productOrigin) !== null && _item$_productOrigin15 !== void 0 && (_item$_productOrigin15 = _item$_productOrigin15.duration) !== null && _item$_productOrigin15 !== void 0 && (_item$_productOrigin15 = _item$_productOrigin15.flexible_config) !== null && _item$_productOrigin15 !== void 0 && _item$_productOrigin15.is_enable_minimum_duration) {
2209
- var _item$_productOrigin16;
2210
- return Math.max(max, ((_item$_productOrigin16 = item._productOrigin) === null || _item$_productOrigin16 === void 0 || (_item$_productOrigin16 = _item$_productOrigin16.duration) === null || _item$_productOrigin16 === void 0 || (_item$_productOrigin16 = _item$_productOrigin16.flexible_config) === null || _item$_productOrigin16 === void 0 ? void 0 : _item$_productOrigin16.block_threshold) || 0);
2210
+ if ((_item$_productOrigin14 = item._productOrigin) !== null && _item$_productOrigin14 !== void 0 && (_item$_productOrigin14 = _item$_productOrigin14.duration) !== null && _item$_productOrigin14 !== void 0 && (_item$_productOrigin14 = _item$_productOrigin14.flexible_config) !== null && _item$_productOrigin14 !== void 0 && _item$_productOrigin14.is_enable_minimum_duration) {
2211
+ var _item$_productOrigin15;
2212
+ return Math.max(max, ((_item$_productOrigin15 = item._productOrigin) === null || _item$_productOrigin15 === void 0 || (_item$_productOrigin15 = _item$_productOrigin15.duration) === null || _item$_productOrigin15 === void 0 || (_item$_productOrigin15 = _item$_productOrigin15.flexible_config) === null || _item$_productOrigin15 === void 0 ? void 0 : _item$_productOrigin15.block_threshold) || 0);
2211
2213
  }
2212
2214
  return 0;
2213
2215
  }, 0);
@@ -2299,8 +2301,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2299
2301
  maxCutOffTime = undefined;
2300
2302
  maxCutOffTimeValue = dayjs();
2301
2303
  cartItems.forEach(function (item) {
2302
- var _item$_productOrigin17, _item$_productOrigin18, _item$_productOrigin19, _item$_productOrigin20;
2303
- (_item$_productOrigin17 = item._productOrigin) === null || _item$_productOrigin17 === void 0 || (_item$_productOrigin17 = _item$_productOrigin17.product_resource) === null || _item$_productOrigin17 === void 0 || (_item$_productOrigin17 = _item$_productOrigin17.resources) === null || _item$_productOrigin17 === void 0 || _item$_productOrigin17.forEach(function (n) {
2304
+ var _item$_productOrigin16, _item$_productOrigin17, _item$_productOrigin18, _item$_productOrigin19;
2305
+ (_item$_productOrigin16 = item._productOrigin) === null || _item$_productOrigin16 === void 0 || (_item$_productOrigin16 = _item$_productOrigin16.product_resource) === null || _item$_productOrigin16 === void 0 || (_item$_productOrigin16 = _item$_productOrigin16.resources) === null || _item$_productOrigin16 === void 0 || _item$_productOrigin16.forEach(function (n) {
2304
2306
  // TODO: 少了个 status 的判断
2305
2307
  if (n.code === resources_code) {
2306
2308
  resources.push.apply(resources, _toConsumableArray(n.renderList || []));
@@ -2313,10 +2315,10 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2313
2315
  if (item.resource_id && !resourceIds.includes(item.resource_id)) {
2314
2316
  resourceIds.push(item.resource_id);
2315
2317
  }
2316
- resourcesTypeId = item === null || item === void 0 || (_item$_productOrigin18 = item._productOrigin) === null || _item$_productOrigin18 === void 0 || (_item$_productOrigin18 = _item$_productOrigin18.product_resource) === null || _item$_productOrigin18 === void 0 || (_item$_productOrigin18 = _item$_productOrigin18.resources) === null || _item$_productOrigin18 === void 0 || (_item$_productOrigin18 = _item$_productOrigin18.find(function (n) {
2318
+ resourcesTypeId = item === null || item === void 0 || (_item$_productOrigin17 = item._productOrigin) === null || _item$_productOrigin17 === void 0 || (_item$_productOrigin17 = _item$_productOrigin17.product_resource) === null || _item$_productOrigin17 === void 0 || (_item$_productOrigin17 = _item$_productOrigin17.resources) === null || _item$_productOrigin17 === void 0 || (_item$_productOrigin17 = _item$_productOrigin17.find(function (n) {
2317
2319
  return n.code === resources_code;
2318
- })) === null || _item$_productOrigin18 === void 0 ? void 0 : _item$_productOrigin18.id;
2319
- if ((_item$_productOrigin19 = item._productOrigin) !== null && _item$_productOrigin19 !== void 0 && _item$_productOrigin19.cut_off_time && ((_item$_productOrigin20 = item._productOrigin) === null || _item$_productOrigin20 === void 0 ? void 0 : _item$_productOrigin20.cut_off_time.type) === 'advance') {
2320
+ })) === null || _item$_productOrigin17 === void 0 ? void 0 : _item$_productOrigin17.id;
2321
+ if ((_item$_productOrigin18 = item._productOrigin) !== null && _item$_productOrigin18 !== void 0 && _item$_productOrigin18.cut_off_time && ((_item$_productOrigin19 = item._productOrigin) === null || _item$_productOrigin19 === void 0 ? void 0 : _item$_productOrigin19.cut_off_time.type) === 'advance') {
2320
2322
  var currentCutOffTime = dayjs().add(item._productOrigin.cut_off_time.unit, item._productOrigin.cut_off_time.unit_type);
2321
2323
  if (currentCutOffTime.isAfter(maxCutOffTimeValue, 'minute')) {
2322
2324
  maxCutOffTimeValue = currentCutOffTime;
@@ -2339,13 +2341,13 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2339
2341
  cartItems.forEach(function (item) {
2340
2342
  // 单个预约累加账号 多个预约取最大值
2341
2343
  if (isSingleResource) {
2342
- var _item$_productOrigin21;
2343
- accountDuration += ((_item$_productOrigin21 = item._productOrigin) === null || _item$_productOrigin21 === void 0 || (_item$_productOrigin21 = _item$_productOrigin21.duration) === null || _item$_productOrigin21 === void 0 ? void 0 : _item$_productOrigin21.value) || 10;
2344
+ var _item$_productOrigin20;
2345
+ accountDuration += ((_item$_productOrigin20 = item._productOrigin) === null || _item$_productOrigin20 === void 0 || (_item$_productOrigin20 = _item$_productOrigin20.duration) === null || _item$_productOrigin20 === void 0 ? void 0 : _item$_productOrigin20.value) || 10;
2344
2346
  } else {
2345
- var _item$_productOrigin22;
2346
- if (accountDuration < (((_item$_productOrigin22 = item._productOrigin) === null || _item$_productOrigin22 === void 0 || (_item$_productOrigin22 = _item$_productOrigin22.duration) === null || _item$_productOrigin22 === void 0 ? void 0 : _item$_productOrigin22.value) || 10)) {
2347
- var _item$_productOrigin23;
2348
- accountDuration = ((_item$_productOrigin23 = item._productOrigin) === null || _item$_productOrigin23 === void 0 || (_item$_productOrigin23 = _item$_productOrigin23.duration) === null || _item$_productOrigin23 === void 0 ? void 0 : _item$_productOrigin23.value) || 10;
2347
+ var _item$_productOrigin21;
2348
+ if (accountDuration < (((_item$_productOrigin21 = item._productOrigin) === null || _item$_productOrigin21 === void 0 || (_item$_productOrigin21 = _item$_productOrigin21.duration) === null || _item$_productOrigin21 === void 0 ? void 0 : _item$_productOrigin21.value) || 10)) {
2349
+ var _item$_productOrigin22;
2350
+ accountDuration = ((_item$_productOrigin22 = item._productOrigin) === null || _item$_productOrigin22 === void 0 || (_item$_productOrigin22 = _item$_productOrigin22.duration) === null || _item$_productOrigin22 === void 0 ? void 0 : _item$_productOrigin22.value) || 10;
2349
2351
  }
2350
2352
  }
2351
2353
  });
@@ -2371,18 +2373,18 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2371
2373
  case 20:
2372
2374
  resourcesUseableMap = {};
2373
2375
  hasFlexibleDuration = cartItems.some(function (item) {
2374
- var _item$_productOrigin24;
2375
- return ((_item$_productOrigin24 = item._productOrigin) === null || _item$_productOrigin24 === void 0 || (_item$_productOrigin24 = _item$_productOrigin24.duration) === null || _item$_productOrigin24 === void 0 ? void 0 : _item$_productOrigin24.type) === 'flexible';
2376
+ var _item$_productOrigin23;
2377
+ return ((_item$_productOrigin23 = item._productOrigin) === null || _item$_productOrigin23 === void 0 || (_item$_productOrigin23 = _item$_productOrigin23.duration) === null || _item$_productOrigin23 === void 0 ? void 0 : _item$_productOrigin23.type) === 'flexible';
2376
2378
  });
2377
2379
  operating_day_boundary = (_this$shopStore$get2 = this.shopStore.get('core')) === null || _this$shopStore$get2 === void 0 || (_this$shopStore$get2 = _this$shopStore$get2.core) === null || _this$shopStore$get2 === void 0 ? void 0 : _this$shopStore$get2.operating_day_boundary; // 如果有 hasFlexibleDuration,需要把动态时长商品(可能是多个,取最长的那个最低禁止购买时长)的最低禁止购买时长作为 split 的值
2378
2380
  maxBlockThreshold = 0;
2379
2381
  if (hasFlexibleDuration) {
2380
2382
  maxBlockThreshold = cartItems.reduce(function (max, item) {
2381
- var _item$_productOrigin25;
2383
+ var _item$_productOrigin24;
2382
2384
  // 如果开启了灵活时长商品配置,则取 block_threshold 的值
2383
- if ((_item$_productOrigin25 = item._productOrigin) !== null && _item$_productOrigin25 !== void 0 && (_item$_productOrigin25 = _item$_productOrigin25.duration) !== null && _item$_productOrigin25 !== void 0 && (_item$_productOrigin25 = _item$_productOrigin25.flexible_config) !== null && _item$_productOrigin25 !== void 0 && _item$_productOrigin25.is_enable_minimum_duration) {
2384
- var _item$_productOrigin26;
2385
- return Math.max(max, ((_item$_productOrigin26 = item._productOrigin) === null || _item$_productOrigin26 === void 0 || (_item$_productOrigin26 = _item$_productOrigin26.duration) === null || _item$_productOrigin26 === void 0 || (_item$_productOrigin26 = _item$_productOrigin26.flexible_config) === null || _item$_productOrigin26 === void 0 ? void 0 : _item$_productOrigin26.block_threshold) || 0);
2385
+ if ((_item$_productOrigin24 = item._productOrigin) !== null && _item$_productOrigin24 !== void 0 && (_item$_productOrigin24 = _item$_productOrigin24.duration) !== null && _item$_productOrigin24 !== void 0 && (_item$_productOrigin24 = _item$_productOrigin24.flexible_config) !== null && _item$_productOrigin24 !== void 0 && _item$_productOrigin24.is_enable_minimum_duration) {
2386
+ var _item$_productOrigin25;
2387
+ return Math.max(max, ((_item$_productOrigin25 = item._productOrigin) === null || _item$_productOrigin25 === void 0 || (_item$_productOrigin25 = _item$_productOrigin25.duration) === null || _item$_productOrigin25 === void 0 || (_item$_productOrigin25 = _item$_productOrigin25.flexible_config) === null || _item$_productOrigin25 === void 0 ? void 0 : _item$_productOrigin25.block_threshold) || 0);
2386
2388
  }
2387
2389
  return 0;
2388
2390
  }, 0);
@@ -2543,10 +2545,10 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2543
2545
  var osWarnTips = [];
2544
2546
  var newResources = cloneDeep(item._origin.resources);
2545
2547
  newResources.forEach(function (resource) {
2546
- var _item$_productOrigin27;
2548
+ var _item$_productOrigin26;
2547
2549
  // 如果商品配置的是灵活时长,开始时间设置为提交的时间,结束时间从资源的可用最晚时间和店铺营业结束时间里取一个最早的
2548
- if (((_item$_productOrigin27 = item._productOrigin) === null || _item$_productOrigin27 === void 0 || (_item$_productOrigin27 = _item$_productOrigin27.duration) === null || _item$_productOrigin27 === void 0 ? void 0 : _item$_productOrigin27.type) === 'flexible') {
2549
- var _allResources$find, _item$_productOrigin28, _item$_productOrigin29;
2550
+ if (((_item$_productOrigin26 = item._productOrigin) === null || _item$_productOrigin26 === void 0 || (_item$_productOrigin26 = _item$_productOrigin26.duration) === null || _item$_productOrigin26 === void 0 ? void 0 : _item$_productOrigin26.type) === 'flexible') {
2551
+ var _allResources$find, _item$_productOrigin27, _item$_productOrigin28;
2550
2552
  item.duration = {
2551
2553
  type: 'minutes',
2552
2554
  value: 10
@@ -2629,15 +2631,15 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2629
2631
  resource.endTime = formattedEndTime.format('YYYY-MM-DD HH:mm');
2630
2632
  // 如果是动态时长商品,并且当前选择的时间的结束时间小于了最低提示时长(warningThreshold),则追加一个提示
2631
2633
  // 如果currentStartTime + warningThreshold 大于 currentEndTime,且 osWarnTips 没有pisell2.product.card.closing-soon.warning 这一项,则加入这一项
2632
- if ((_item$_productOrigin28 = item._productOrigin) !== null && _item$_productOrigin28 !== void 0 && (_item$_productOrigin28 = _item$_productOrigin28.duration) !== null && _item$_productOrigin28 !== void 0 && (_item$_productOrigin28 = _item$_productOrigin28.flexible_config) !== null && _item$_productOrigin28 !== void 0 && _item$_productOrigin28.is_enable_minimum_duration && dayjs(currentStartTime).add(((_item$_productOrigin29 = item._productOrigin) === null || _item$_productOrigin29 === void 0 || (_item$_productOrigin29 = _item$_productOrigin29.duration) === null || _item$_productOrigin29 === void 0 || (_item$_productOrigin29 = _item$_productOrigin29.flexible_config) === null || _item$_productOrigin29 === void 0 ? void 0 : _item$_productOrigin29.warning_threshold) || 0, 'minutes').isAfter(dayjs(formattedEndTime))) {
2634
+ if ((_item$_productOrigin27 = item._productOrigin) !== null && _item$_productOrigin27 !== void 0 && (_item$_productOrigin27 = _item$_productOrigin27.duration) !== null && _item$_productOrigin27 !== void 0 && (_item$_productOrigin27 = _item$_productOrigin27.flexible_config) !== null && _item$_productOrigin27 !== void 0 && _item$_productOrigin27.is_enable_minimum_duration && dayjs(currentStartTime).add(((_item$_productOrigin28 = item._productOrigin) === null || _item$_productOrigin28 === void 0 || (_item$_productOrigin28 = _item$_productOrigin28.duration) === null || _item$_productOrigin28 === void 0 || (_item$_productOrigin28 = _item$_productOrigin28.flexible_config) === null || _item$_productOrigin28 === void 0 ? void 0 : _item$_productOrigin28.warning_threshold) || 0, 'minutes').isAfter(dayjs(formattedEndTime))) {
2633
2635
  if (!osWarnTips.includes('pisell2.product.card.closing-soon.warning')) {
2634
2636
  osWarnTips.push('pisell2.product.card.closing-soon.warning');
2635
2637
  }
2636
2638
  }
2637
2639
  } else {
2638
- var _item$_productOrigin30;
2640
+ var _item$_productOrigin29;
2639
2641
  resource.startTime = currentStartTime;
2640
- resource.endTime = dayjs(currentStartTime).add(((_item$_productOrigin30 = item._productOrigin) === null || _item$_productOrigin30 === void 0 || (_item$_productOrigin30 = _item$_productOrigin30.duration) === null || _item$_productOrigin30 === void 0 ? void 0 : _item$_productOrigin30.value) || 10, 'minutes').format('YYYY-MM-DD HH:mm');
2642
+ resource.endTime = dayjs(currentStartTime).add(((_item$_productOrigin29 = item._productOrigin) === null || _item$_productOrigin29 === void 0 || (_item$_productOrigin29 = _item$_productOrigin29.duration) === null || _item$_productOrigin29 === void 0 ? void 0 : _item$_productOrigin29.value) || 10, 'minutes').format('YYYY-MM-DD HH:mm');
2641
2643
  }
2642
2644
  // delete resource.times;
2643
2645
  });
@@ -131,7 +131,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
131
131
  * 获取当前的客户搜索条件
132
132
  * @returns 当前搜索条件
133
133
  */
134
- getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
134
+ getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
135
135
  /**
136
136
  * 获取客户列表状态(包含滚动加载相关状态)
137
137
  * @returns 客户状态
@@ -23,7 +23,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
23
23
  */
24
24
  private logError;
25
25
  createOrder(params: CommitOrderParams['query']): {
26
- type: "virtual" | "appointment_booking";
26
+ type: "appointment_booking" | "virtual";
27
27
  platform: string;
28
28
  sales_channel: string;
29
29
  order_sales_channel: string;
@@ -49,5 +49,5 @@ export declare class Product extends BaseModule implements Module {
49
49
  getCategories(): ProductCategory[];
50
50
  setOtherParams(key: string, value: any): void;
51
51
  getOtherParams(): any;
52
- getProductType(): "normal" | "duration" | "session";
52
+ getProductType(): "duration" | "session" | "normal";
53
53
  }
@@ -97,7 +97,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
97
97
  if (productList.every((item) => {
98
98
  var _a;
99
99
  const product = this.hooks.getProduct(item);
100
- return product.booking_id && (((_a = product.discount_list) == null ? void 0 : _a.length) || (newDiscountList[0].tag === "good_pass" ? product.price == 0 : product.total == 0));
100
+ return product.booking_id && (((_a = product.discount_list) == null ? void 0 : _a.length) || product.total == 0);
101
101
  })) {
102
102
  return {
103
103
  isAvailable: false,
@@ -1155,7 +1155,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
1155
1155
  }
1156
1156
  const totalCapacity = (countMap[n.id] || []).reduce(
1157
1157
  (sum, item) => {
1158
- const hasOverlap = !(0, import_dayjs.default)(item.time.start_at).isAfter((0, import_dayjs.default)(timeSlots.start_at)) && !(0, import_dayjs.default)(item.time.end_at).isBefore((0, import_dayjs.default)(timeSlots.end_at));
1158
+ const hasOverlap = (0, import_dayjs.default)(item.time.start_at).isBefore((0, import_dayjs.default)(timeSlots.end_at)) && (0, import_dayjs.default)(item.time.end_at).isAfter((0, import_dayjs.default)(timeSlots.start_at));
1159
1159
  return hasOverlap ? sum + item.pax : sum;
1160
1160
  },
1161
1161
  0
@@ -1237,9 +1237,10 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
1237
1237
  }
1238
1238
  );
1239
1239
  cartItems2.forEach((item, index) => {
1240
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
1240
+ var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j;
1241
1241
  const { currentCapacity } = (0, import_capacity.getCapacityInfoByCartItem)(item);
1242
- if (item._origin.start_time && !(timeSlots == null ? void 0 : timeSlots.start_time)) {
1242
+ const hasOriginTimeSlot = Boolean(item._origin.start_time) && Boolean(item._origin.end_time) && !(timeSlots == null ? void 0 : timeSlots.start_time);
1243
+ if (hasOriginTimeSlot) {
1243
1244
  recordTimeSlots = {
1244
1245
  start_time: item._origin.start_time,
1245
1246
  end_time: item._origin.end_time,
@@ -1251,13 +1252,11 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
1251
1252
  const currentResourceConfig = (_c = (_b = (_a2 = item._productOrigin) == null ? void 0 : _a2.product_resource) == null ? void 0 : _b.resources) == null ? void 0 : _c.find(
1252
1253
  (n) => n.code === resources_code
1253
1254
  );
1254
- if (index !== 0 && recordTimeSlots && (currentResourceConfig == null ? void 0 : currentResourceConfig.type) === "single" && ((_d = item._productOrigin) == null ? void 0 : _d.duration) && !hasFlexibleProduct) {
1255
- let start_at = (0, import_dayjs.default)(recordTimeSlots.end_time).add(
1256
- ((_f = (_e = item._productOrigin) == null ? void 0 : _e.duration) == null ? void 0 : _f.value) || 10,
1257
- "minutes"
1258
- );
1255
+ if (index !== 0 && recordTimeSlots && (currentResourceConfig == null ? void 0 : currentResourceConfig.type) === "single" && ((_d = item._productOrigin) == null ? void 0 : _d.duration) && !hasFlexibleProduct && !hasOriginTimeSlot) {
1256
+ const recordEndAt = recordTimeSlots.end_at ? (0, import_dayjs.default)(recordTimeSlots.end_at) : (0, import_dayjs.default)(`${item.start_date} ${recordTimeSlots.end_time}`);
1257
+ let start_at = recordEndAt;
1259
1258
  let end_at = start_at.add(
1260
- ((_h = (_g = item._productOrigin) == null ? void 0 : _g.duration) == null ? void 0 : _h.value) || 10,
1259
+ ((_f = (_e = item._productOrigin) == null ? void 0 : _e.duration) == null ? void 0 : _f.value) || 10,
1261
1260
  "minutes"
1262
1261
  );
1263
1262
  recordTimeSlots = {
@@ -1311,7 +1310,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
1311
1310
  const allCartItems = (0, import_lodash_es.cloneDeep)(this.store.cart.getItems());
1312
1311
  let selectedResources = [];
1313
1312
  const resources2 = (0, import_lodash_es.cloneDeep)(
1314
- ((_j = (_i = item._productOrigin) == null ? void 0 : _i.product_resource) == null ? void 0 : _j.resources) || []
1313
+ ((_h = (_g = item._productOrigin) == null ? void 0 : _g.product_resource) == null ? void 0 : _h.resources) || []
1315
1314
  );
1316
1315
  const currentResourcesRenderList = [];
1317
1316
  resources2.forEach((n) => {
@@ -1359,11 +1358,11 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
1359
1358
  return recordCount >= currentCapacity;
1360
1359
  });
1361
1360
  });
1362
- const targetRenderList = (_k = productResources.find(
1361
+ const targetRenderList = (_i = productResources.find(
1363
1362
  (n) => n.code === resources_code
1364
- )) == null ? void 0 : _k.renderList;
1363
+ )) == null ? void 0 : _i.renderList;
1365
1364
  if (targetRenderList && targetRenderList.length > 0) {
1366
- if ((_l = item._origin.resources) == null ? void 0 : _l.some(
1365
+ if ((_j = item._origin.resources) == null ? void 0 : _j.some(
1367
1366
  (n) => n.form_id === targetRenderList[0].form_id
1368
1367
  )) {
1369
1368
  return;
@@ -131,7 +131,7 @@ export declare class BookingTicketImpl extends BaseModule implements Module {
131
131
  * 获取当前的客户搜索条件
132
132
  * @returns 当前搜索条件
133
133
  */
134
- getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
134
+ getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
135
135
  /**
136
136
  * 获取客户列表状态(包含滚动加载相关状态)
137
137
  * @returns 客户状态
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "0.0.485",
4
+ "version": "0.0.487",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",