From 94899fbc5c3681aa2c7a102bc045e29274cef3f1 Mon Sep 17 00:00:00 2001 From: richarjiang Date: Thu, 25 Sep 2025 18:56:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui):=20=E6=B7=BB=E5=8A=A0=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=BC=B9=E7=AA=97=E5=8A=9F=E8=83=BD=E5=B9=B6=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E6=B0=B4=E6=91=84=E5=85=A5=E8=AE=BE=E7=BD=AE=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加设置弹窗状态管理 - 实现设置按钮点击处理函数 - 在头部添加设置图标按钮 - 移除原有的设置行界面,改为弹窗形式展示 - 添加新的样式定义支持设置弹窗布局 - 优化设置项的展示和交互体验 --- app/water-settings.tsx | 252 ++++++++++++++++++--------------- components/WaterIntakeCard.tsx | 2 + 2 files changed, 140 insertions(+), 114 deletions(-) diff --git a/app/water-settings.tsx b/app/water-settings.tsx index fe4e38b..f46afd6 100644 --- a/app/water-settings.tsx +++ b/app/water-settings.tsx @@ -37,7 +37,8 @@ const WaterSettings: React.FC = () => { const [dailyGoal, setDailyGoal] = useState('2000'); const [quickAddAmount, setQuickAddAmount] = useState('250'); - // 编辑弹窗状态 + // 设置弹窗状态 + const [settingsModalVisible, setSettingsModalVisible] = useState(false); const [goalModalVisible, setGoalModalVisible] = useState(false); const [quickAddModalVisible, setQuickAddModalVisible] = useState(false); @@ -49,19 +50,24 @@ const WaterSettings: React.FC = () => { const { waterRecords, dailyWaterGoal, updateWaterGoal, removeWaterRecord } = useWaterDataByDate(selectedDate); - const goalPresets = [1500, 2000, 2500, 3000, 3500, 4000]; - const quickAddPresets = [100, 150, 200, 250, 300, 350, 400, 500]; + // 处理设置按钮点击 + const handleSettingsPress = () => { + setSettingsModalVisible(true); + }; + // 打开饮水目标弹窗时初始化临时值 const openGoalModal = () => { setTempGoal(parseInt(dailyGoal)); + setSettingsModalVisible(false); setGoalModalVisible(true); }; // 打开快速添加弹窗时初始化临时值 const openQuickAddModal = () => { setTempQuickAdd(parseInt(quickAddAmount)); + setSettingsModalVisible(false); setQuickAddModalVisible(true); }; @@ -224,6 +230,15 @@ const WaterSettings: React.FC = () => { // 这里会通过路由自动处理返回 router.back(); }} + right={ + + + + } /> = () => { contentContainerStyle={styles.scrollContent} showsVerticalScrollIndicator={false} > - {/* 第一部分:饮水配置 */} - - 饮水配置 - - {/* 设置目标部分 */} - - - 每日饮水目标 - {dailyGoal}ml - - - - - - - {/* 快速添加默认值设置部分 */} - - - 快速添加默认值 - - {`设置点击右上角"+"按钮时添加的默认饮水量`} - - {quickAddAmount}ml - - - - - - - {/* 第二部分:饮水记录 */} @@ -311,6 +288,52 @@ const WaterSettings: React.FC = () => { + {/* 设置主弹窗 */} + setSettingsModalVisible(false)} + > + setSettingsModalVisible(false)} /> + + + 饮水设置 + + {/* 菜单项 */} + + + + + + + + 每日饮水目标 + {dailyWaterGoal || dailyGoal}ml + + + + + + + + + + + + 快速添加默认值 + + 设置点击"+"按钮时添加的默认饮水量 + + {quickAddAmount}ml + + + + + + + + {/* 饮水目标编辑弹窗 */} = ({ }; + return ( = ({ + ); };