feat: 更新目标创建功能及相关组件

- 在 CreateGoalModal 中新增目标创建表单,支持设置标题、描述、重复周期、频率、提醒时间和结束日期
- 更新 GoalCard 组件,增加显示结束日期的功能
- 修改 goals.tsx 文件,调整 CreateGoalModal 的导入路径
- 更新 eslint 配置,增加对 node_modules 的忽略设置,优化代码检查
This commit is contained in:
richarjiang
2025-08-26 15:35:10 +08:00
parent 3f89023447
commit 0610f287ee
4 changed files with 193 additions and 34 deletions

View File

@@ -11,11 +11,11 @@ interface GoalCardProps {
showStatus?: boolean;
}
export const GoalCard: React.FC<GoalCardProps> = ({
goal,
onPress,
export const GoalCard: React.FC<GoalCardProps> = ({
goal,
onPress,
onDelete,
showStatus = true
showStatus = true
}) => {
const swipeableRef = useRef<Swipeable>(null);
@@ -70,7 +70,7 @@ export const GoalCard: React.FC<GoalCardProps> = ({
// 根据目标类别或标题返回不同的图标
const title = goal.title.toLowerCase();
const category = goal.category?.toLowerCase();
if (title.includes('运动') || title.includes('健身') || title.includes('跑步')) {
return 'fitness-center';
} else if (title.includes('喝水') || title.includes('饮水')) {
@@ -118,7 +118,9 @@ export const GoalCard: React.FC<GoalCardProps> = ({
onPress={handleDelete}
activeOpacity={0.8}
>
<MaterialIcons name="delete" size={24} color="#EF4444" />
<MaterialIcons style={{
marginBottom: 10
}} name="delete" size={24} color="#EF4444" />
</TouchableOpacity>
);
};
@@ -149,7 +151,7 @@ export const GoalCard: React.FC<GoalCardProps> = ({
<Text style={styles.goalTitle} numberOfLines={1}>
{goal.title}
</Text>
{/* 底部信息行 */}
<View style={styles.goalInfo}>
{/* 积分 */}
@@ -187,6 +189,19 @@ export const GoalCard: React.FC<GoalCardProps> = ({
<View style={styles.infoItem}>
<Text style={styles.infoText}>{getRepeatTypeText(goal)}</Text>
</View>
{/* 结束日期 */}
{goal.endDate && (
<View style={styles.infoItem}>
<MaterialIcons
name="calendar-month"
size={12}
color="#9CA3AF"
style={{ marginRight: 4 }}
/>
<Text style={styles.infoText}>{goal.endDate}</Text>
</View>
)}
</View>
</View>