@pisell/private-materials 6.12.124 → 6.12.126

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 (39) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.css +1 -1
  6. package/build/lowcode/render/default/view.js +2 -2
  7. package/build/lowcode/view.css +1 -1
  8. package/build/lowcode/view.js +2 -2
  9. package/es/components/bigSale/components/KioskCategorySidebar/index.js +1 -1
  10. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.js +2 -2
  11. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.js +5 -3
  12. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/SelectDate/index.js +2 -1
  13. package/es/components/eventBooking/components/bookingAvailabilityCalendar/index.d.ts +5 -0
  14. package/es/components/eventBooking/components/bookingAvailabilityCalendar/index.js +2 -1
  15. package/es/plus/productSelect/ProductCard/SkuCard/locales.js +10 -5
  16. package/es/plus/productSelect/ProductCard/index.js +25 -5
  17. package/es/plus/productSelect/ProductCard/utils.js +11 -1
  18. package/es/pro/skuDetailModal/flow/index.less +27 -0
  19. package/es/pro/skuDetailModal/flow/modules/date.js +1 -0
  20. package/es/pro/skuDetailModal/flow/modules/resource.js +1 -2
  21. package/es/pro/skuDetailModal/flow/modules/resource.less +37 -0
  22. package/es/pro/skuDetailModal/index.js +45 -3
  23. package/es/pro/skuDetailModal/index.less +12 -7
  24. package/lib/components/bigSale/components/KioskCategorySidebar/index.js +1 -1
  25. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.js +2 -2
  26. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.js +5 -3
  27. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/SelectDate/index.js +2 -1
  28. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/index.d.ts +5 -0
  29. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/index.js +2 -1
  30. package/lib/plus/productSelect/ProductCard/SkuCard/locales.js +10 -5
  31. package/lib/plus/productSelect/ProductCard/index.js +24 -4
  32. package/lib/plus/productSelect/ProductCard/utils.js +11 -0
  33. package/lib/pro/skuDetailModal/flow/index.less +27 -0
  34. package/lib/pro/skuDetailModal/flow/modules/date.js +1 -0
  35. package/lib/pro/skuDetailModal/flow/modules/resource.js +1 -2
  36. package/lib/pro/skuDetailModal/flow/modules/resource.less +37 -0
  37. package/lib/pro/skuDetailModal/index.js +45 -3
  38. package/lib/pro/skuDetailModal/index.less +12 -7
  39. package/package.json +2 -2
@@ -11,7 +11,8 @@ var locales_default = {
11
11
  "pisell2.sku-card.time.remaining": "Time Remaining",
12
12
  "pisell2.sku-card.capacity": "Capacity",
13
13
  "pisell2.sku-card.free": "Free",
14
- "pisell2.sku-card.max": "Max"
14
+ "pisell2.sku-card.max": "Max",
15
+ "pisell2.sku-card.sold-out": "Sold Out"
15
16
  },
16
17
  "zh-CN": {
17
18
  "pisell2.sku-card.search": "搜索",
@@ -24,7 +25,8 @@ var locales_default = {
24
25
  "pisell2.sku-card.time.remaining": "剩余",
25
26
  "pisell2.sku-card.capacity": "容量",
26
27
  "pisell2.sku-card.free": "免费",
27
- "pisell2.sku-card.max": "最大"
28
+ "pisell2.sku-card.max": "最大",
29
+ "pisell2.sku-card.sold-out": "已售罄"
28
30
  },
29
31
  "zh-HK": {
30
32
  "pisell2.sku-card.search": "搜索",
@@ -37,7 +39,8 @@ var locales_default = {
37
39
  "pisell2.sku-card.time.remaining": "剩余",
38
40
  "pisell2.sku-card.capacity": "容量",
39
41
  "pisell2.sku-card.free": "免費",
40
- "pisell2.sku-card.max": "最大"
42
+ "pisell2.sku-card.max": "最大",
43
+ "pisell2.sku-card.sold-out": "已售罄"
41
44
  },
42
45
  ja: {
43
46
  "pisell2.sku-card.search": "検索",
@@ -50,7 +53,8 @@ var locales_default = {
50
53
  "pisell2.sku-card.time.remaining": "残り時間",
51
54
  "pisell2.sku-card.capacity": "容量",
52
55
  "pisell2.sku-card.free": "無料",
53
- "pisell2.sku-card.max": "最大"
56
+ "pisell2.sku-card.max": "最大",
57
+ "pisell2.sku-card.sold-out": "売り切れ"
54
58
  },
55
59
  pt: {
56
60
  "pisell2.sku-card.search": "Pesquisar",
@@ -63,7 +67,8 @@ var locales_default = {
63
67
  "pisell2.sku-card.time.remaining": "Tempo Restante",
64
68
  "pisell2.sku-card.capacity": "Capacidade",
65
69
  "pisell2.sku-card.free": "Grátis",
66
- "pisell2.sku-card.max": "Máx"
70
+ "pisell2.sku-card.max": "Máx",
71
+ "pisell2.sku-card.sold-out": "Esgotado"
67
72
  }
68
73
  };
69
74
  //#endregion
@@ -1,9 +1,12 @@
1
1
  const require_runtime = require("../../../_virtual/_rolldown/runtime.js");
2
2
  const require_objectSpread2 = require("../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js");
3
+ const require_useEngineContext = require("../../../hooks/useEngineContext.js");
3
4
  const require_IntersectionObserver = require("../components/IntersectionObserver.js");
4
5
  const require_index = require("../components/pisellPriceText/index.js");
5
6
  require("./ProductCardSkeleton.js");
6
7
  const require_weighingPrice = require("./weighingPrice.js");
8
+ const require_locales = require("./SkuCard/locales.js");
9
+ const require_useInitLocalesOnce = require("../../../hooks/useInitLocalesOnce.js");
7
10
  const require_index$1 = require("./SkuCard/index.js");
8
11
  const require_utils = require("./utils.js");
9
12
  const require_useTranslationOriginal = require("../../../hooks/useTranslationOriginal.js");
@@ -43,10 +46,15 @@ const defaultConfig = {
43
46
  }
44
47
  };
45
48
  const ProductCard = (0, react.memo)(({ item, index: index$1, context, onSelect, onSelectCover, onSelectInfo, isSelected, className, decorateConfig = {}, scenario = "default", selectionTrigger = "pointerUp", customSkuCardAllConfig }) => {
49
+ var _engineContext$appHel, _engineContext$appHel2;
50
+ const engineContext = require_useEngineContext.default();
51
+ require_useInitLocalesOnce.default(require_locales.default);
46
52
  const finalConfig = require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, defaultConfig), decorateConfig);
47
53
  const { imgHeight, imgWidth, isOriginPrice, isPrice, isProductCover, isStock, isSubtitle, isTitle, radius, showZeroPrice, gap, rightStyle } = finalConfig;
48
54
  const { __typename } = item;
49
55
  const translationOriginal = require_useTranslationOriginal.default();
56
+ const isSoldOut = require_utils.shouldShowInventorySoldOut(item, engineContext === null || engineContext === void 0 || (_engineContext$appHel = engineContext.appHelper) === null || _engineContext$appHel === void 0 || (_engineContext$appHel = _engineContext$appHel.utils) === null || _engineContext$appHel === void 0 || (_engineContext$appHel2 = _engineContext$appHel.getData) === null || _engineContext$appHel2 === void 0 ? void 0 : _engineContext$appHel2.call(_engineContext$appHel, "channel"));
57
+ const soldOutText = _pisell_utils.locales.getText("pisell2.sku-card.sold-out") || "Sold Out";
50
58
  if (__typename === "category") return /* @__PURE__ */ react.default.createElement("div", {
51
59
  className: (0, classnames.default)(`${require_index$2.PREFIX}__product-category`, className),
52
60
  "data-index": index$1,
@@ -137,11 +145,21 @@ const ProductCard = (0, react.memo)(({ item, index: index$1, context, onSelect,
137
145
  */
138
146
  const skuCardRender = (0, react.useMemo)(() => {
139
147
  const skuCardAllConfig = customSkuCardAllConfig || require_utils.getSkuCardConfig(finalConfig);
148
+ const skuStatusOverlayConfig = isSoldOut ? require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, skuCardAllConfig.skuStatusOverlayConfig), {}, {
149
+ isOpen: 1,
150
+ text: soldOutText,
151
+ fontSize: 28,
152
+ fontWeight: 700,
153
+ color: "#000000",
154
+ background: "rgba(255, 255, 255, 0.72)",
155
+ slot: null
156
+ }) : skuCardAllConfig.skuStatusOverlayConfig;
140
157
  return /* @__PURE__ */ react.default.createElement(require_index$1.default, require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({ key: item.id }, skuCardAllConfig), {}, {
158
+ skuStatusOverlayConfig,
141
159
  dataSource: skuCardDataSource,
142
- onCardClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(item),
143
- onSelectCover: () => onSelectCover === null || onSelectCover === void 0 ? void 0 : onSelectCover(item),
144
- onSelectInfo: () => onSelectInfo === null || onSelectInfo === void 0 ? void 0 : onSelectInfo(item),
160
+ onCardClick: isSoldOut ? void 0 : () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(item),
161
+ onSelectCover: isSoldOut ? void 0 : () => onSelectCover === null || onSelectCover === void 0 ? void 0 : onSelectCover(item),
162
+ onSelectInfo: isSoldOut ? void 0 : () => onSelectInfo === null || onSelectInfo === void 0 ? void 0 : onSelectInfo(item),
145
163
  selectionTrigger,
146
164
  isSelected,
147
165
  "data-index": index$1,
@@ -166,7 +184,9 @@ const ProductCard = (0, react.memo)(({ item, index: index$1, context, onSelect,
166
184
  rightStyle,
167
185
  className,
168
186
  customSkuCardAllConfig,
169
- selectionTrigger
187
+ selectionTrigger,
188
+ isSoldOut,
189
+ soldOutText
170
190
  ]);
171
191
  /**
172
192
  * @description: 根据 scenario 决定渲染内容
@@ -16,6 +16,16 @@ const formatProductPrice = (item) => {
16
16
  };
17
17
  };
18
18
  /**
19
+ * 追踪库存且禁止超售时,库存小于等于 0 视为售罄。
20
+ */
21
+ const isInventorySoldOut = (item) => Number(item === null || item === void 0 ? void 0 : item.is_track) === 1 && Number(item === null || item === void 0 ? void 0 : item.over_sold) === 0 && Number(item === null || item === void 0 ? void 0 : item.stock_quantity) <= 0;
22
+ /**
23
+ * POS 保持原有商品选择行为;其它渠道才展示库存售罄状态。
24
+ */
25
+ const shouldShowInventorySoldOut = (item, channel) => {
26
+ return (String(channel || "pos").trim().toLowerCase() || "pos") !== "pos" && isInventorySoldOut(item);
27
+ };
28
+ /**
19
29
  * @description: 获取sku卡配置
20
30
  * @param {ProductCardConfig} finalConfig
21
31
  * @return {*}
@@ -56,3 +66,4 @@ const getSkuCardConfig = (finalConfig) => {
56
66
  //#endregion
57
67
  exports.formatProductPrice = formatProductPrice;
58
68
  exports.getSkuCardConfig = getSkuCardConfig;
69
+ exports.shouldShowInventorySoldOut = shouldShowInventorySoldOut;
@@ -70,7 +70,34 @@
70
70
  }
71
71
  }
72
72
 
73
+ .sku-detail-selection-flow-scroll-shell {
74
+ position: relative;
75
+ display: flex;
76
+ min-height: 0;
77
+ flex: 1;
78
+ flex-direction: column;
79
+
80
+ // 阴影挂在不滚动的外壳上,因此不会混入时间卡片并跟随内容移动。
81
+ // 仅在下方仍有内容时展示,并使用较浅的渐变作为轻量提示。
82
+ &--can-scroll-down::after {
83
+ position: absolute;
84
+ right: 12px;
85
+ bottom: 0;
86
+ left: 0;
87
+ z-index: 2;
88
+ height: 16px;
89
+ background: linear-gradient(
90
+ to bottom,
91
+ rgba(255, 255, 255, 0),
92
+ rgba(16, 24, 40, 0.08)
93
+ );
94
+ content: '';
95
+ pointer-events: none;
96
+ }
97
+ }
98
+
73
99
  .sku-detail-right-content--selection-flow {
74
100
  display: flex;
101
+ flex: 1;
75
102
  flex-direction: column;
76
103
  }
@@ -279,6 +279,7 @@ const DateFlowModuleComponent = ({ context, module, registerHandle }) => {
279
279
  showHeader: false,
280
280
  showMonthHeader: true,
281
281
  enableWeekSwipe: true,
282
+ minViewDate: (0, dayjs.default)().startOf("day").format("YYYY-MM-DD"),
282
283
  minSelectableDate: minimumSelectableDate.format("YYYY-MM-DD")
283
284
  });
284
285
  }
@@ -13,7 +13,6 @@ const require_serve = require("../../../../components/booking/info2/serve.js");
13
13
  let react = require("react");
14
14
  react = require_runtime.__toESM(react);
15
15
  let antd = require("antd");
16
- let _pisell_utils = require("@pisell/utils");
17
16
  let _pisell_materials = require("@pisell/materials");
18
17
  require("./resource.less");
19
18
  //#region src/pro/skuDetailModal/flow/modules/resource.tsx
@@ -336,7 +335,7 @@ const ResourceFlowModuleComponent = ({ context, module, registerHandle }) => {
336
335
  fontWeight: 600
337
336
  } }, group.title || group.code || "Resource"), /* @__PURE__ */ react.default.createElement(_pisell_materials.PisellCustomCheckboxGroup, {
338
337
  dataSource: group.options,
339
- columns: (0, _pisell_utils.isMobile)() ? 2 : 3,
338
+ columns: 4,
340
339
  horizontalGap: 16,
341
340
  verticalGap: 16,
342
341
  className: "selection-flow-resource-grid",
@@ -3,8 +3,45 @@
3
3
  min-height: 166px;
4
4
  }
5
5
 
6
+ // ResourceDisplay 的文本头像沿用 Ant Avatar 的缩放定位规则;在 Flow 的
7
+ // 纵向卡片中改为由 flex 容器直接居中,避免首字母视觉上向右偏移。
8
+ .pisell-resource-card-empty-avatar
9
+ .pisell-lowcode-avatar-string,
10
+ .pisell-resource-card-empty-avatar .ant-avatar-string {
11
+ position: static;
12
+ left: auto;
13
+ width: 100%;
14
+ margin: 0;
15
+ text-align: center;
16
+ transform: none !important;
17
+ transform-origin: center;
18
+ }
19
+
20
+ // 不依赖 PisellText 的默认 display/text-align,确保资源名称始终相对
21
+ // 整张卡片居中,而不是相对文字自身宽度居中。
22
+ .pisell-resource-card-info {
23
+ align-items: center;
24
+ text-align: center;
25
+ }
26
+
27
+ .pisell-resource-card-name {
28
+ display: block;
29
+ width: 100%;
30
+ margin: 0;
31
+ padding: 0;
32
+ text-align: center;
33
+ }
34
+
6
35
  .selection-flow-resource-card--disabled {
7
36
  cursor: not-allowed;
8
37
  opacity: 0.45;
9
38
  }
39
+
40
+ // 默认使用四列;只有真正窄于手机内容宽度时才退回两列。
41
+ // 需要 !important 覆盖 PisellViewGrid 写在元素上的 grid-template-columns。
42
+ @media (max-width: 600px) {
43
+ .pisell-view-grid-content {
44
+ grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
45
+ }
46
+ }
10
47
  }
@@ -152,6 +152,9 @@ const SkuDetailModal = ({ onConfirm, onRemove, onClose, variant }, ref) => {
152
152
  * - 称重商品打开弹窗时,自动滚动到底部以完整展示称重模块
153
153
  */
154
154
  const leftTopRef = (0, react.useRef)(null);
155
+ /** 新 Flow 当前步骤的滚动容器;切换步骤时回到顶部。 */
156
+ const selectionFlowScrollRef = (0, react.useRef)(null);
157
+ const [selectionFlowCanScrollDown, setSelectionFlowCanScrollDown] = (0, react.useState)(false);
155
158
  const Toast = require_useToast.default();
156
159
  const logger = require_useLogger.default();
157
160
  /**
@@ -309,6 +312,40 @@ const SkuDetailModal = ({ onConfirm, onRemove, onClose, variant }, ref) => {
309
312
  * 此时回退到旧详情界面,避免全局预设阻断称重等普通商品。
310
313
  */
311
314
  const isCustomSelectionFlow = isCreateMode && Array.isArray(effectiveSelectionFlowSteps) && (selectionFlowProcedureSteps === null || selectionFlowProcedureSteps === void 0 ? void 0 : selectionFlowProcedureSteps.length) !== 0;
315
+ const updateSelectionFlowScrollAffordance = (0, react.useCallback)(() => {
316
+ const container = selectionFlowScrollRef.current;
317
+ if (!container) {
318
+ setSelectionFlowCanScrollDown(false);
319
+ return;
320
+ }
321
+ setSelectionFlowCanScrollDown(container.scrollHeight - container.scrollTop - container.clientHeight > 2);
322
+ }, []);
323
+ (0, react.useLayoutEffect)(() => {
324
+ if (!open || !isCustomSelectionFlow) {
325
+ setSelectionFlowCanScrollDown(false);
326
+ return;
327
+ }
328
+ const container = selectionFlowScrollRef.current;
329
+ container === null || container === void 0 || container.scrollTo({
330
+ top: 0,
331
+ behavior: "auto"
332
+ });
333
+ const animationFrame = requestAnimationFrame(updateSelectionFlowScrollAffordance);
334
+ if (!container || typeof ResizeObserver === "undefined") return () => cancelAnimationFrame(animationFrame);
335
+ const resizeObserver = new ResizeObserver(updateSelectionFlowScrollAffordance);
336
+ resizeObserver.observe(container);
337
+ Array.from(container.children).forEach((child) => resizeObserver.observe(child));
338
+ return () => {
339
+ cancelAnimationFrame(animationFrame);
340
+ resizeObserver.disconnect();
341
+ };
342
+ }, [
343
+ currentStep,
344
+ isCustomSelectionFlow,
345
+ open,
346
+ selectionFlowInstanceKey,
347
+ updateSelectionFlowScrollAffordance
348
+ ]);
312
349
  const selectionFlowInitialDraft = (0, react.useMemo)(() => {
313
350
  var _openParamsRef$curren, _resolvedSkuValue$bun, _resolvedSkuValue$opt, _bookingState$client, _extend$duration, _openParamsRef$curren2, _openParamsRef$curren3;
314
351
  if (!isCustomSelectionFlow || !productData) return null;
@@ -1286,7 +1323,11 @@ const SkuDetailModal = ({ onConfirm, onRemove, onClose, variant }, ref) => {
1286
1323
  };
1287
1324
  const rightContent = () => {
1288
1325
  if (detailLoading || !productData) return /* @__PURE__ */ react.default.createElement("div", { className: "sku-detail-right-content" }, renderLoadingPanel());
1289
- if (isCustomSelectionFlow && selectionFlowInitialDraft) return /* @__PURE__ */ react.default.createElement("div", { className: "sku-detail-right-content sku-detail-right-content--selection-flow" }, isMobile && (skuDetailConfig === null || skuDetailConfig === void 0 ? void 0 : skuDetailConfig.isShowProductSummary) ? renderProductSummary() : null, shouldRenderMobileWeighing ? /* @__PURE__ */ react.default.createElement("div", { className: "sku-detail-mobile-weighing" }, renderWeighingSection()) : null, /* @__PURE__ */ react.default.createElement(require_SelectionFlow.default, {
1326
+ if (isCustomSelectionFlow && selectionFlowInitialDraft) return /* @__PURE__ */ react.default.createElement("div", { className: (0, classnames.default)("sku-detail-selection-flow-scroll-shell", selectionFlowCanScrollDown && "sku-detail-selection-flow-scroll-shell--can-scroll-down") }, /* @__PURE__ */ react.default.createElement("div", {
1327
+ ref: selectionFlowScrollRef,
1328
+ className: "sku-detail-right-content sku-detail-right-content--selection-flow",
1329
+ onScroll: updateSelectionFlowScrollAffordance
1330
+ }, isMobile && (skuDetailConfig === null || skuDetailConfig === void 0 ? void 0 : skuDetailConfig.isShowProductSummary) ? renderProductSummary() : null, shouldRenderMobileWeighing ? /* @__PURE__ */ react.default.createElement("div", { className: "sku-detail-mobile-weighing" }, renderWeighingSection()) : null, /* @__PURE__ */ react.default.createElement(require_SelectionFlow.default, {
1290
1331
  key: selectionFlowInstanceKey,
1291
1332
  ref: selectionFlowRef,
1292
1333
  steps: effectiveSelectionFlowSteps || [],
@@ -1340,7 +1381,7 @@ const SkuDetailModal = ({ onConfirm, onRemove, onClose, variant }, ref) => {
1340
1381
  onCancel: () => {
1341
1382
  if (openTaskIdRef.current === selectionFlowInstanceKey) handleCancel();
1342
1383
  }
1343
- }));
1384
+ })));
1344
1385
  const shouldRenderSkuSelection = (isMobile || currentStep === 1) && hasSkuOptions;
1345
1386
  const shouldRenderMobileProductDetails = isMobile && (!isCreateMode || !!(skuDetailConfig === null || skuDetailConfig === void 0 ? void 0 : skuDetailConfig.isShowProductSummary));
1346
1387
  const shouldRenderProductSummary = shouldRenderSkuSelection || shouldRenderMobileProductDetails;
@@ -1388,13 +1429,14 @@ const SkuDetailModal = ({ onConfirm, onRemove, onClose, variant }, ref) => {
1388
1429
  closable: false,
1389
1430
  destroyOnClose: true,
1390
1431
  style: { maxHeight: variant === "phone" ? "95dvh" : void 0 },
1391
- height: variant === "phone" ? "auto" : void 0,
1432
+ height: variant === "phone" ? isCustomSelectionFlow ? "clamp(600px, 50dvh, 1600px)" : "auto" : void 0,
1392
1433
  width: variant === "phone" ? "100%" : "80%",
1393
1434
  className: (0, classnames.default)({
1394
1435
  "pisell-sku-detail-modal": variant !== "phone",
1395
1436
  "pisell-sku-detail-modal--smallTablet": variant !== "phone" && variant === "smallTablet",
1396
1437
  "pisell-sku-detail-modal--tablet": variant !== "phone" && variant === "tablet",
1397
1438
  "pisell-sku-detail-drawer": variant === "phone",
1439
+ "pisell-sku-detail-drawer--selection-flow": variant === "phone" && isCustomSelectionFlow,
1398
1440
  "aside-full": isWeighingProductWithoutSku && !shouldRenderMobileWeighing
1399
1441
  }),
1400
1442
  placement: variant === "phone" ? "bottom" : void 0
@@ -897,13 +897,18 @@
897
897
  }
898
898
  }
899
899
 
900
- // PisellProcedure 的小屏 Modal 规则在 low-code 产物中带有 #body 前缀,
901
- // 会把竖排 Drawer 的 sidebar 重新限制为 290px;使用同一作用域覆盖固定宽度。
902
- #body .pisell-sku-detail-drawer {
903
- .pisell-procedure--modal .pisell-procedure-sidebar {
904
- width: 100% !important;
905
- min-width: 0 !important;
906
- max-width: 100% !important;
900
+ // 预约步骤的内容量差异很大:时间片可能很多,资源也可能只有一两个。
901
+ // Flow Drawer 使用稳定的外壳高度,中间内容区沿用上方的 overflow-y:auto;
902
+ // 普通商品没有该修饰类,仍保持原来的内容自适应高度。
903
+ .pisell-sku-detail-drawer--selection-flow {
904
+ max-height: 95dvh;
905
+
906
+ .pisell-lowcode-floating-layer-content,
907
+ .pisell-lowcode-drawer-content,
908
+ .pisell-lowcode-floating-layer-body,
909
+ .pisell-lowcode-drawer-body {
910
+ height: 100%;
911
+ min-height: 0;
907
912
  }
908
913
  }
909
914
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/private-materials",
3
- "version": "6.12.124",
3
+ "version": "6.12.126",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -70,7 +70,7 @@
70
70
  "styled-components": "^6.0.0-rc.3",
71
71
  "use-sync-external-store": "^1.6.0",
72
72
  "@pisell/utils": "3.0.4",
73
- "@pisell/materials": "6.12.32",
73
+ "@pisell/materials": "6.12.33",
74
74
  "@pisell/icon": "0.0.11",
75
75
  "@pisell/date-picker": "3.0.10"
76
76
  },