@pisell/pisellos 0.0.278 → 0.0.280

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.
@@ -267,6 +267,10 @@ export var DateModule = /*#__PURE__*/function (_BaseModule) {
267
267
  if (!resource.times || !Array.isArray(resource.times) || !resource.start_time) {
268
268
  return resource;
269
269
  }
270
+ // 如果resource.advanced 为 null 或者 resource.advanced.unit 为 0,则不进行修正
271
+ if (!resource.advanced || resource.advanced.unit === 0) {
272
+ return resource;
273
+ }
270
274
  var resourceStartTime = dayjs(resource.start_time);
271
275
 
272
276
  // 过滤和修正时间段
@@ -326,7 +326,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
326
326
  };
327
327
  setOtherData(key: string, value: any): void;
328
328
  getOtherData(key: string): any;
329
- getProductTypeById(id: number): Promise<"duration" | "session" | "normal">;
329
+ getProductTypeById(id: number): Promise<"normal" | "duration" | "session">;
330
330
  /**
331
331
  * 提供给 UI 的方法,减轻 UI 层的计算压力,UI 层只需要传递 cartItemId 和 resourceCode 即返回对应的 renderList
332
332
  *
@@ -2783,6 +2783,9 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2783
2783
  var hasCapacityIssue = false;
2784
2784
  var resourceCapacityInfo = [];
2785
2785
 
2786
+ // 用于跟踪已处理的商品,避免重复添加
2787
+ var processedCartItemIds = new Set();
2788
+
2786
2789
  // 先检查所有资源类型,收集可用数量信息
2787
2790
  var _loop3 = function _loop3() {
2788
2791
  var _resourceTypeConfig;
@@ -2912,17 +2915,21 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2912
2915
  };
2913
2916
  }
2914
2917
 
2915
- // 使用第一个公共可用时间段
2918
+ // 使用第一个公共可用时间段,但只处理未处理过的商品
2916
2919
  var firstCommonSlot = commonTimeSlots[0];
2917
2920
  console.log("\u4F7F\u7528\u516C\u5171\u65F6\u95F4\u6BB5: ".concat(firstCommonSlot.startTime, " - ").concat(firstCommonSlot.endTime));
2918
2921
  items.forEach(function (cartItem) {
2919
- var processedItem = _objectSpread(_objectSpread({}, cartItem), {}, {
2920
- start_date: dateRange[0].date,
2921
- start_time: firstCommonSlot.startTime,
2922
- end_time: firstCommonSlot.endTime,
2923
- end_date: dateRange[0].date
2924
- });
2925
- processedItemsWithoutTime.push(processedItem);
2922
+ // 只处理未处理过的商品,避免重复添加
2923
+ if (!processedCartItemIds.has(cartItem._id)) {
2924
+ processedCartItemIds.add(cartItem._id);
2925
+ var processedItem = _objectSpread(_objectSpread({}, cartItem), {}, {
2926
+ start_date: dateRange[0].date,
2927
+ start_time: firstCommonSlot.startTime,
2928
+ end_time: firstCommonSlot.endTime,
2929
+ end_date: dateRange[0].date
2930
+ });
2931
+ processedItemsWithoutTime.push(processedItem);
2932
+ }
2926
2933
  });
2927
2934
  },
2928
2935
  _ret3;
@@ -2970,7 +2977,6 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2970
2977
  }
2971
2978
  cartItemsByTimeSlot[timeSlotKey].push(cartItem);
2972
2979
  });
2973
-
2974
2980
  // 检查每个时间段是否有足够的资源容量
2975
2981
  var _loop4 = function _loop4() {
2976
2982
  var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
@@ -178,6 +178,9 @@ var DateModule = class extends import_BaseModule.BaseModule {
178
178
  if (!resource.times || !Array.isArray(resource.times) || !resource.start_time) {
179
179
  return resource;
180
180
  }
181
+ if (!resource.advanced || resource.advanced.unit === 0) {
182
+ return resource;
183
+ }
181
184
  const resourceStartTime = (0, import_dayjs.default)(resource.start_time);
182
185
  const correctedTimes = resource.times.map((timeSlot) => {
183
186
  if (!timeSlot.start_at || !timeSlot.end_at) {
@@ -326,7 +326,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
326
326
  };
327
327
  setOtherData(key: string, value: any): void;
328
328
  getOtherData(key: string): any;
329
- getProductTypeById(id: number): Promise<"duration" | "session" | "normal">;
329
+ getProductTypeById(id: number): Promise<"normal" | "duration" | "session">;
330
330
  /**
331
331
  * 提供给 UI 的方法,减轻 UI 层的计算压力,UI 层只需要传递 cartItemId 和 resourceCode 即返回对应的 renderList
332
332
  *
@@ -1950,6 +1950,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
1950
1950
  });
1951
1951
  let hasCapacityIssue = false;
1952
1952
  const resourceCapacityInfo = [];
1953
+ const processedCartItemIds = /* @__PURE__ */ new Set();
1953
1954
  for (const [resourceCode, items] of Object.entries(itemsByResourceType)) {
1954
1955
  const targetFormId = resourceCodeToFormIdMap[resourceCode];
1955
1956
  if (!targetFormId) {
@@ -2028,14 +2029,17 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
2028
2029
  const firstCommonSlot = commonTimeSlots[0];
2029
2030
  console.log(`使用公共时间段: ${firstCommonSlot.startTime} - ${firstCommonSlot.endTime}`);
2030
2031
  items.forEach((cartItem) => {
2031
- const processedItem = {
2032
- ...cartItem,
2033
- start_date: dateRange[0].date,
2034
- start_time: firstCommonSlot.startTime,
2035
- end_time: firstCommonSlot.endTime,
2036
- end_date: dateRange[0].date
2037
- };
2038
- processedItemsWithoutTime.push(processedItem);
2032
+ if (!processedCartItemIds.has(cartItem._id)) {
2033
+ processedCartItemIds.add(cartItem._id);
2034
+ const processedItem = {
2035
+ ...cartItem,
2036
+ start_date: dateRange[0].date,
2037
+ start_time: firstCommonSlot.startTime,
2038
+ end_time: firstCommonSlot.endTime,
2039
+ end_date: dateRange[0].date
2040
+ };
2041
+ processedItemsWithoutTime.push(processedItem);
2042
+ }
2039
2043
  });
2040
2044
  }
2041
2045
  if (hasCapacityIssue) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "0.0.278",
4
+ "version": "0.0.280",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",