Commit Graph

156 Commits

Author SHA1 Message Date
dongliang
b7a1b2683f feat: 提示弹窗按原型图V3重设计
- 圆形图标背景(85dp):成功绿/错误红/警告橙 15%透明
- 标题 28sp(原22sp)
- 描述 20sp(原15sp)
- 倒计时 18sp
- 整体居中,大字醒目

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:58:09 +09:30
dongliang
4abe073ef1 fix: 修复已打卡乱码+巡检场景样式优化
1. 已打卡文字去掉损坏的emoji,改为纯文字"已打卡"
2. 巡检场景:● 绿色实心圆=已打卡,○ 灰色空心圆=未打卡

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:47:42 +09:30
dongliang
bf71075adf feat: 待完成页面按任务类型区分显示
普通任务(type 0/1/2/3/4):地点+备注+打卡时间+指引块"任务进行中"→完成任务
巡检任务(type 5):场景打卡清单(已打卡/未打卡)+进度(2/5)→开启打卡

新增:InspectScene 数据类,TaskDetail.taskInspectScenes 类型化

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:39:50 +09:30
dongliang
7f06cdc9d1 fix: 任务页3项优化
1. 标题栏固定顶部不随内容滚动
2. 底部按钮高度缩小(padding 21→13dp)字体加大(24→28sp)
3. 待完成页面改为:地点+备注+打卡时间+绿色指引块"任务进行中,完成工作后点击下方按钮"
   按钮文字改为"完成任务"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:29:33 +09:30
dongliang
d7b61bf0fa fix: 任务页全面放大字体+显示截止时间
字体放大:任务名34sp, 地点24sp, 时间22sp, 积分26sp, 备注20sp
指引块标题24sp, 说明20sp, 打卡确认44sp
新增截止时间和要求完成时间显示(待抢单状态)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:22:41 +09:30
dongliang
2f0fc675d2 feat: 任务页面按原型图V3适老化重设计
按状态显示不同布局:
- 待抢单:任务名+地点+时间+积分+备注 → 帮助决策
- 待打卡(有场景):任务名+备注+指引块(去哪+怎么做) → 两段式指引
- 待打卡(无场景):任务名+绿色引导块 → 正向说明
- 待完成:任务名+备注+打卡时间大字确认 → 安心感
标题栏三栏:返回+状态名+页码
新增指引块drawable(orange/blue/green/note)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:09:04 +09:30
dongliang
354a2ab124 fix: 任务页面优化老年人布局
- 去掉左右标签行(ConfigRow),改为全部居中展示
- 状态标签顶部居中带pill背景色
- 任务名 30sp 最大最醒目
- 地点 22sp 蓝色
- 时间信息合并显示(派单+截止+要求完成)
- 积分 24sp 橙色(0分时隐藏)
- 操作按钮 24sp 更大
- 返回按钮 40dp 更大触摸区

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 12:24:21 +09:30
dongliang
b691b432fb feat: 任务详情补充缺失字段
新增显示:
- 状态标签(彩色文字:待抢单/待打卡/进行中/已完成)
- 截止时间(expireTime)
- 预计完成时间(preFinishTime,指派任务)
- 上报人(createName,type 3/4 时显示)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 12:13:21 +09:30
dongliang
29ca1bc7c8 fix: 操作后列表为空时自动返回上一页(和旧版一致)
首次加载为空→显示"暂无任务",操作后列表为空→自动popBackStack

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 12:08:14 +09:30
dongliang
b29e68e87f fix: 操作按钮逻辑按taskType+status组合判断
- type 2(指派): 无抢单步骤,直接从status3开始
- type 5(巡检): status4是NFC打卡(非确认完成),无抢单无完成
- type 0/1/3/4: 完整流程(抢单→打卡→完成)
- 抽取 setupPunchButton/setupCompleteButton/showBackButton 方法

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 11:00:50 +09:30
dongliang
a25675c5b2 fix: 去掉任务详情页中的分段控件tab,腾出更多内容空间
标题栏直接显示状态名+任务进度(如"接单池 第1/50个")

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 10:55:16 +09:30
dongliang
5dfbd627f2 fix: TaskDetailFragment 使用新字段名(displayName/positionText/pointText/sendTime)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 10:49:58 +09:30
dongliang
9598976566 fix: TaskDetail 字段对齐服务端实际返回
- name(非taskName), sendTime(非beginTime), taskPositions(数组非字符串)
- point 改为 Double(服务端返回0.0)
- hasPosition 从 taskPositions 判断(服务端无此字段)
- 新增 displayName/positionText/pointText 辅助属性
- displayDetail 使用实际字段名

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 10:45:18 +09:30
dongliang
5e2d71c25d feat: 任务列表改为单任务全屏展示+上下滑切换(方案B,和旧版一致)
核心改动:
- queryTaskIds 获取ID列表 → lookTaskDetail 获取当前任务详情
- 上滑下一个、下滑上一个任务
- 顶部显示"第X/Y个任务"
- 派单时间+任务名(带类型前缀)+地点+派单号+积分+协作人+描述
- 底部固定操作按钮(抢单/打卡/完成)
- 操作成功后刷新列表+详情
- 空状态+Loading状态

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 10:34:44 +09:30
dongliang
aea7b349b8 fix: 任务卡片显示name字段(queryTaskIds返回name不是taskName)
TaskItem 新增 name 字段 + displayName 属性(优先name其次taskName)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 21:25:53 +09:30
dongliang
a455c82b59 fix: queryTaskIds 和 lookTaskDetail 改为 POST
服务端所有任务接口都要求 POST,GET 返回 405

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 21:18:21 +09:30
dongliang
52949f4e3f fix: 任务列表改用 queryTaskIds 接口(旧版实际使用的接口)
pageList 返回空body,改为 queryTaskIds GET 请求

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 21:15:15 +09:30
dongliang
4a3fbb6be6 fix: 处理服务端返回空body(Content-Length:0)
服务端无数据时返回200但body为空,Gson抛EOFException。
捕获EOFException视为Success(null)而非网络错误。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 21:05:58 +09:30
dongliang
aec33ee3e1 fix: UnbindInterceptor 改用 peekBody 防止消费响应体
source.request() 在空body/非JSON响应时会导致后续Gson解析失败。
改用 peekBody(1024) 安全读取副本。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 20:47:53 +09:30
dongliang
2d0a4d94ae fix: pageList 接口改为 POST(服务端返回405 GET不支持)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 20:38:27 +09:30
dongliang
c0059efa16 fix: 防止重复导航崩溃 - 跳转前检查当前是否在homeFragment
HomeFragment的View不随导航销毁,快捷区点击事件仍会触发。
在非homeFragment时跳过导航。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 20:34:56 +09:30
dongliang
5b0a0b4964 fix: taskId defaultValue 加 L 后缀修复 long 类型解析错误
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 20:27:27 +09:30
dongliang
1056386af8 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>
2026-04-27 20:19:35 +09:30
dongliang
3c9d74f16c fix: 快捷区标签放大16→20sp,减少拥挤感
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:56:07 +09:30
dongliang
229c7d3c62 fix: 设置页字体放大适配老年人
头像 59→72dp, 字母 27→33sp
姓名 20→26sp, 手机号 15→19sp
信息行 17→20sp

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:51:12 +09:30
dongliang
7a777e28a6 fix: 状态栏固定在顶部,不随ViewPager2滑动
- 状态栏从两个子页面移到fragment_home.xml顶层
- ViewPager2在状态栏下方滑动
- HomeFragment只维护一个固定statusBar引用

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:47:31 +09:30
dongliang
2df2cd0cc2 fix: 设置页数据不显示 - 直接操作inflate好的View
之前通过ViewPager2内部查找ViewHolder,但Page0未创建时找不到。
改为直接保存inflate好的configPageView引用,数据填充不依赖ViewPager2。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:39:47 +09:30
dongliang
06f7c7f20e fix: 主页日期字体放大 20sp→26sp
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:37:20 +09:30
dongliang
170e2a527e fix: 按原型图精确换��所有尺寸(120dpi, 1dp=0.75px)
主页:时钟69sp, 日期20sp, 卡片数字43sp, 标签16sp
设置页:头像59dp/27sp, 姓名20sp, 手机号15sp, 信息行17sp
SafeArea: 21dp/27dp, 状态栏24dp
卡片圆角19dp, 内边距19/16dp
指示器: 圆点7dp, 活动19dp

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:32:15 +09:30
dongliang
fdc2eaa5c9 fix: 主页字体大幅放大对齐原型图比例
时钟 56→80sp(sans-serif-light),日期 18→24sp
快捷区数字 32→42sp,标签 14→16sp
缩小padding最大化内容空间

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 19:17:59 +09:30
dongliang
3f258aa620 fix: 首页和设置页字体放大适配老年人
主页:时钟 48→56sp,日期 16→18sp,快捷区数字 28→32sp,标签 12→14sp
设置页:姓名 15→20sp,手机号 11→14sp,信息行 13→16sp

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:55:22 +09:30
dongliang
c86e44f264 fix: ViewPager2 子页面设置 match_parent LayoutParams
ViewPager2 要求子页面必须填满,inflate 时未指定 parent 导致 LayoutParams 丢失。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:42:50 +09:30
dongliang
e07a2242a9 feat: 首页与应用壳模块
新增:
- StatusBarView 自定义状态栏(圆点+信号条+电池壳,按原型图V3)
- ViewPager2 左右滑动(设置页/主页,默认主页)
- 主页:时钟+日期+快捷区3卡片(对接statisticsNew API)
- 设置页:圆形头像+用户信息+设备信息+调试模式
- TaskApi 接口(统计+考勤)
- HomePagerAdapter(View方式,避免Fragment嵌套)
- 页面指示器+快捷区卡片背景drawable

修改:
- HomeFragment 重写为ViewPager2容器
- NetworkModule 添加TaskApi提供者
- styles.xml 添加ConfigRow/Label/Value样式

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:37:06 +09:30
dongliang
e6d5d6fe8a fix: 回滚二维码到iPhone风格(静默区1格+圆角12%)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:05:55 +09:30
dongliang
a7622da05a fix: 二维码静默区2格+圆角8%,防止裁切定位角
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:02:35 +09:30
dongliang
6e201923b7 fix: 二维码静默区改为0,修复圆角不对称
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 18:00:32 +09:30
dongliang
c244011c96 fix: 恢复二维码为iPhone风格整体圆角裁剪(12%)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:57:41 +09:30
dongliang
30f7ac1206 fix: 重写圆角二维码渲染
- 使用独立 Paint 对象,修复颜色问题
- 模块大小固定 16px,圆角 35%
- 白色圆角背景 + 黑色圆角模块
- 模块间 10% 缝隙

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:49:22 +09:30
dongliang
2ec738e3a4 feat: 二维码圆角风格 - 每个模块都是圆角矩形
- 白色背景圆角 8%
- 每个黑色模块圆角 30%
- 模块间有微小缝隙,更精致
- 自动裁剪 ZXing 空白边距

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:45:51 +09:30
dongliang
c048c27751 fix: 二维码圆角加大(6%→12%)参照iPhone风格
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:42:30 +09:30
dongliang
b9a84cb48c feat: 二维码添加圆角效果
使用 Canvas + PorterDuff 裁剪,6%圆角半径

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:39:01 +09:30
dongliang
3271e704d6 fix: 缩小二维码白色边框(静默区 4格→1格)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:34:15 +09:30
dongliang
4bd0f82ce9 fix: SplashFragment 绑定检查时正确存入用户数据到 UserPrefs
API返回Success时解析用户信息并存入,而不是直接跳首页。
userId<=0时视为未绑定,导航到二维码页。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:28:32 +09:30
dongliang
df2e36da91 fix: Retrofit @Body 参数改为 HashMap 修复泛型擦除问题
Map<String, Any> 在 Kotlin 编译后变为 Map<String, ?>, Retrofit 不支持通配符类型。
改为 HashMap<String, Any> 是具体类,不存在泛型擦除问题。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 17:04:39 +09:30
dongliang
5d34120153 fix: 移除二维码白色背景框,直接显示二维码
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:53:54 +09:30
dongliang
145105ffe9 fix: 绑定页最大化UI - 二维码撑满宽度
- 二维码框改为 match_parent + weight=1,撑满可用空间
- 标题 28sp,说明 16sp,配对中 22sp
- 整体布局紧凑,最大化利用屏幕空间

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:52:12 +09:30
dongliang
727e20df45 fix: 绑定页放大UI适配老年人用户
- 标题 24sp,说明文字 15sp,配对中文字 18sp
- 二维码框 150×150dp(原120dp)
- Loading spinner 40dp
- 用户群体为老年人,需要更大的字体和元素

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:50:25 +09:30
dongliang
d06bf11b95 feat: 绑定页UI对齐原型图V3
- 二维码页面:标题移到上方,白色圆角背景框,说明文字居中
- 新增配对中Loading状态(spinner + "正在配对…")
- 颜色值对齐原型图(blue=#3B9EFF, green=#4ADE80, orange=#FFB340, red=#FF6B6B)
- 新增 bg_qr_frame.xml 白色圆角背景

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:46:59 +09:30
dongliang
cd49471a15 fix: 移除 HomeFragment 中残留的 mqttManager 引用
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:32:04 +09:30
dongliang
1b61abb380 feat: 设备绑定与配对模块
新增:
- SplashFragment 启动分发(初始化+绑定检查+导航到Home或Bind)
- BindFragment 二维码配对页面(ZXing生成QR码+MQTT绑定监听)
- WatchBindInfo 绑定信息数据类

修改:
- nav_main.xml startDestination改为SplashFragment,添加导航action
- HomeFragment 移除初始化逻辑到Splash,添加MQTT解绑处理
- CommonApi getWatchByImei返回类型改为WatchBindInfo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:23:37 +09:30