feat: 任务管理模块 - 列表+详情+抢单/打卡/完成

新增:
- TaskListFragment 分段控件+RecyclerView+下拉刷新
- TaskDetailFragment 信息展示+底部固定操作按钮(foot-btn)
- TaskListAdapter 任务卡片适配器
- TaskItem/TaskDetail 数据类
- TaskApi 新增5个接口(pageList/detail/grab/assign/complete)
- 分段控件/底部按钮/状态标签 drawable

修改:
- nav_main.xml 添加参数和action
- HomeFragment 快捷区点击→任务列表(传tableStatus)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-04-27 20:19:35 +09:30
parent 3c9d74f16c
commit 1056386af8
19 changed files with 889 additions and 43 deletions

View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 任务卡片RecyclerView item
显示:任务名 + 地点 + 时间 + 积分 + 状态标签 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_seg_active"
android:orientation="vertical"
android:padding="16dp"
android:layout_marginBottom="11dp">
<!-- 任务名(大字) -->
<TextView
android:id="@+id/tvTaskName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/text_primary"
android:textSize="20sp"
android:textStyle="bold"
android:maxLines="1"
android:ellipsize="end" />
<!-- 地点 + 时间 -->
<TextView
android:id="@+id/tvTaskSub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/text_secondary"
android:textSize="16sp"
android:lineSpacingMultiplier="1.7"
android:layout_marginTop="8dp" />
<!-- 积分 + 状态标签 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginTop="8dp">
<!-- 积分 -->
<TextView
android:id="@+id/tvPoints"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/warning"
android:textSize="19sp"
android:textStyle="bold" />
<!-- 状态标签 -->
<TextView
android:id="@+id/tvStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="13dp"
android:paddingEnd="13dp"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>