diff --git a/src/pages/task/TaskDetail.jsx b/src/pages/task/TaskDetail.jsx index 208a2ce..8264029 100644 --- a/src/pages/task/TaskDetail.jsx +++ b/src/pages/task/TaskDetail.jsx @@ -128,13 +128,15 @@ export default function TaskDetail({ task, projectCode, columns, members, tasks, * 这里始终按 String() 比对, 不要 Number(): 否则结果变 NaN, 落库列被改成 "NaN" 报「看板列不存在」 */ function pickColumn() { const current = String(task.columnId) - ActionSheet.show({ + const handler = ActionSheet.show({ actions: (columns || []).map((c) => ({ text: c.name + (String(c.id) === current ? ' ✓' : ''), key: String(c.id), })), cancelText: '取消', onAction: async (item) => { + // 选中即收起 sheet (与项目视图 ⋯ 菜单同口径); 否则改完列 sheet 还挂在那 + handler.close?.() const columnId = String(item.key) if (columnId === current) return try { @@ -200,28 +202,35 @@ export default function TaskDetail({ task, projectCode, columns, members, tasks, borderTopLeftRadius: 12, borderTopRightRadius: 12, maxHeight: `calc(88vh - ${kb}px)`, - overflowY: 'auto', - padding: `16px 16px calc(env(safe-area-inset-bottom, 0px) + 20px + ${kb}px)`, + // 三段式: 固定头 / 滚动体 / 固定底 (标题与保存按钮始终可见) + display: 'flex', + flexDirection: 'column', + overflow: 'hidden', + padding: 0, }} > -