import React, { useState, useEffect } from 'react'; import { View, Text, Input, Picker } from '@tarojs/components'; import Taro from '@tarojs/taro'; import EmptyState from '../../../components/EmptyState'; import './index.scss'; interface MedicationReminder { id: string; name: string; dosage: string; time: string; enabled: boolean; } const STORAGE_KEY = 'medication_reminders'; function loadReminders(): MedicationReminder[] { return Taro.getStorageSync(STORAGE_KEY) || []; } function saveReminders(reminders: MedicationReminder[]) { Taro.setStorageSync(STORAGE_KEY, reminders); } export default function MedicationReminder() { const [reminders, setReminders] = useState([]); const [showForm, setShowForm] = useState(false); const [formName, setFormName] = useState(''); const [formDosage, setFormDosage] = useState(''); const [formTime, setFormTime] = useState('08:00'); useEffect(() => { setReminders(loadReminders()); }, []); const updateReminders = (updated: MedicationReminder[]) => { setReminders(updated); saveReminders(updated); }; const handleToggle = (id: string) => { const updated = reminders.map((r) => r.id === id ? { ...r, enabled: !r.enabled } : r ); updateReminders(updated); }; const handleDelete = (id: string) => { Taro.showModal({ title: '确认删除', content: '确定要删除这个提醒吗?', }).then((res) => { if (res.confirm) { updateReminders(reminders.filter((r) => r.id !== id)); } }); }; const handleAdd = () => { if (!formName.trim()) { Taro.showToast({ title: '请输入药品名称', icon: 'none' }); return; } const newReminder: MedicationReminder = { id: Date.now().toString(), name: formName.trim(), dosage: formDosage.trim(), time: formTime, enabled: true, }; updateReminders([...reminders, newReminder]); setFormName(''); setFormDosage(''); setFormTime('08:00'); setShowForm(false); Taro.showToast({ title: '添加成功', icon: 'success' }); }; return ( {reminders.map((r) => ( {r.name} {r.dosage} | {r.time} handleToggle(r.id)} > handleDelete(r.id)} > 删除 ))} {reminders.length === 0 && ( )} {/* 添加表单 */} {showForm && ( 药品名称 setFormName(e.detail.value)} /> 剂量 setFormDosage(e.detail.value)} /> 提醒时间 setFormTime(e.detail.value)} > {formTime} 修改 setShowForm(false)}> 取消 确认 )} {!showForm && ( setShowForm(true)}> + 添加提醒 )} ); }