diff --git a/inventory-web/src/views/stock/stocktake/index.vue b/inventory-web/src/views/stock/stocktake/index.vue index 41c4eb6..6c0eba5 100644 --- a/inventory-web/src/views/stock/stocktake/index.vue +++ b/inventory-web/src/views/stock/stocktake/index.vue @@ -1854,18 +1854,25 @@ const goToVarianceReview = () => { .idle-card { flex: 1; + /* ★★ min-height: 0 是整套布局的关键,缺了它前面几轮都白改 ★★ + flex 子项默认 min-height: auto —— 拒绝收缩到内容高度以下。于是卡片会 + 撑破 .app-container 的 100vh,自己的 overflow-y 永远不会触发,最终被 + body 上的全局 overflow: hidden(src/style.css)裁掉:按钮既看不见、 + 也滚不到。 + 加上它,卡片被约束成「容器剩余高度」,内部滚动才真正生效。 */ + min-height: 0; display: flex; flex-direction: column; - /* ★ 刻意不用 justify-content: center —— flex 居中在内容超出容器时会把 - 上下两端**同时裁掉**(经典陷阱),这就是小屏上「开始新盘点」按钮被 - 截掉一半的原因。改由子元素的 margin:auto 居中:内容不超高时正常居中, - 超高时 auto 塌缩为 0,配合 overflow-y 可完整滚动到顶与底。 */ + /* 刻意不用 justify-content: center —— flex 居中在内容超出时会把上下两端 + **同时裁掉**,居中改由子元素的 margin:auto 承担:内容不高时正常居中, + 超高时 auto 塌缩为 0,从顶部开始排布并保留底部安全边距。 */ align-items: center; text-align: center; border: none; border-radius: 0; overflow-y: auto; - padding-bottom: 40px; /* 底部留白,避免按钮贴着屏幕边缘 */ + -webkit-overflow-scrolling: touch; /* 平板/iOS 惯性滚动 */ + padding-bottom: 40px; /* 底部留白,按钮不贴屏幕边缘 */ } .idle-content { width: 100%; max-width: 400px; padding: 20px; margin: auto; } /* 抽盘配置区是双栏,窄容器装不下,此时放宽欢迎页 */