浅念
baa424c841
feat: add used-car module and fix API response handling
...
- Add used-car pages: list, detail, create, edit, mine
- Add CarCard and PriceModal components
- Fix API response interceptor to accept both code 200 and 0
- Fix detail page: was incorrectly using edit page template
- Fix edit page: remove res.code check after API call
- Add image URL processing (localhost → localhost:8787)
- Add i18n translations for used-car module in 5 languages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 16:11:49 +08:00
18338781771
8a056e2295
上传
2026-03-05 17:18:44 +08:00
18338781771
50f28e45e4
上传
2026-03-05 17:10:29 +08:00
18338781771
1720aec385
关键字抓取
2026-03-05 16:21:22 +08:00
18338781771
0d895688c3
关键词抓取
2026-03-05 15:47:30 +08:00
18338781771
9c7efff01f
二手车
2026-03-05 13:15:05 +08:00
root
3f0f5334e8
fix: 审批详情页兼容旧数据格式的时间字段
...
同时支持 start_date/end_date(旧格式)和 start_time/end_time(新格式)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 14:06:03 +08:00
root
46b233c743
fix: 审批详情页行程数据显示完整字段
...
修改后端行程数据映射,包含所有字段:
- departure: 出发地
- destination: 目的地
- start_time/end_time: 开始/结束时间(保持与数据库字段一致)
- transport: 出行方式
- trip_type: 行程类型
- remark: 备注
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 13:57:26 +08:00
root
4fd8afe07a
Merge branch 'develop'
2026-03-03 13:42:57 +08:00
root
8a33d36333
fix: 审批详情页显示出行方式等行程字段
...
在行程显示中添加以下字段映射:
- departure: 出发地
- transport: 出行方式
- trip_type: 行程类型(oneway→单程, roundtrip→往返)
- remark: 备注
- start_time/end_time: 时间格式改为 YYYY-MM-DD HH:mm
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 13:41:55 +08:00
root
dccb633a22
Merge branch 'develop'
2026-03-01 21:44:31 +08:00
root
09b2902d2b
fix: 修复审批详情页行程时间不显示问题
...
从模型的 start_time 和 end_time 字段读取数据,而不是错误的 start_date 和 end_date。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 21:43:55 +08:00
root
7c7f8493c4
docs: 更新数据库文档,添加 feishu_message_log 表记录
...
- 添加 feishu_message_log 表结构文档(飞书消息日志表)
- 更新文档版本至 1.1.0
- 更新最后更新时间至 2026-03-01
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 14:21:48 +08:00
root
27f567a288
feat: 添加 business_trip_itinerary 表迁移文件
...
记录出差行程明细表的数据库结构。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 14:20:43 +08:00
root
ebfac48c36
fix: 自审批场景发送"已自动通过"通知卡片
...
自审批时发送纯通知卡片(只有查看详情按钮),而不是带审批操作按钮的可操作卡片。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 14:17:52 +08:00
root
9ffb05bb49
fix: 自审批场景也发送卡片样式消息
...
保留自审批检测逻辑,但将自审批时的文本消息改为卡片消息,保持消息样式一致。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 14:11:48 +08:00
root
ab49511e75
fix: 自审批场景也发送卡片样式消息
...
移除自审批检测逻辑,让所有审批消息(包括自审批)都发送卡片样式消息,提升用户体验一致性。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 14:11:16 +08:00
root
f6bd3d52df
fix: 恢复行程显示,只移除主表单预计费用
2026-03-01 14:02:48 +08:00
root
2ed94c1ab8
fix: 过滤表单数据中的预计费用和行程字段
2026-03-01 13:57:10 +08:00
root
8f1a45b548
fix: 修复行程时间空字符串导致数据库错误
2026-03-01 13:55:10 +08:00
root
2adb1adb8b
fix: 修复变量名不一致和移除预计费用
2026-03-01 13:52:12 +08:00
root
b996ac21c0
fix: 防止重复更新消息和移除预计费用
2026-03-01 13:45:44 +08:00
root
34642bd008
debug: 添加itineraries调试日志
2026-03-01 13:34:20 +08:00
root
06b87a8361
debug: 添加更早的调试日志
2026-03-01 13:14:07 +08:00
root
b61495edb9
fix: 在approve函数中初始化notificationService
2026-03-01 13:05:23 +08:00
root
d992d31039
fix: 保存行程数据到form_data以便在详情页显示
2026-03-01 12:59:56 +08:00
root
805a8d890c
debug: 添加调试日志
2026-03-01 12:58:43 +08:00
root
f8524d333c
fix: 修复审批后消息卡片更新和多行程显示问题
...
1. 审批人审批后,自己的消息卡片也更新为显示查看详情按钮
- 新增 updateActorMessageCard() 方法更新操作人自己的卡片
- 审批通过/拒绝时同时更新操作人和其他审批人的卡片
2. 多行程路线在审批详情中正确显示
- 特殊处理 itineraries 字段,展示每个行程的详细信息
- 添加行程列表样式,包括目的地、日期、费用等
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 12:46:41 +08:00
root
b90f901fd9
fix: 修复多公司多飞书应用消息卡片更新失败问题
...
- feishu_message 表新增 company_id 和 feishu_app_id 字段追踪消息发送者
- 修改 FeishuMessage::saveMessage() 支持保存公司和飞书应用信息
- 修改 FeishuNotificationService 使用原始发送者的飞书应用配置更新消息
- 新增 HttpClient::httpPatchJson() 方法支持 PATCH 请求
- 文档更新:PROJECT_ISSUES.md 添加问题31,APPROVAL_NOTIFICATION_ARCHITECTURE.md 添加多公司架构说明
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 12:29:29 +08:00
root
27cf1a555f
fix: 从申请人的用户信息中获取公司ID
...
approval_order 表没有 company_id 字段,改为从申请人
的用户信息中获取公司ID来设置飞书应用配置
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 11:55:45 +08:00
root
df02078fad
fix: 修复消息卡片更新时缺少公司ID的问题
...
- 在 updateMessageCards 和 updateMessageCardsForPartialApprove 方法中
添加获取订单公司ID并设置飞书应用配置的逻辑
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 11:51:17 +08:00
root
97dcb9604a
fix: 修复会签/或签场景消息卡片更新和前端构建
...
后端:
- 修复 reject 方法中 notificationService 未初始化的问题
- 确保拒绝时也会更新其他审批人的消息卡片
前端:
- 重新构建前端代码
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 11:47:59 +08:00
root
e13574f6f1
fix: 修复会签场景下消息卡片更新问题
...
- 添加 updateMessageCardsForPartialApprove 方法处理会签部分通过
- 会签一人通过后,其他人的消息卡片显示进度并保留按钮
- 修复 Dockerfile 构建顺序问题
- 修复前端类型定义问题
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:33:40 +08:00
root
95375d9432
fix: 修复审批详情显示实际审批人
...
- 优先使用后端返回的 actual_approvers 和 actual_cc_users 字段
- 如果后端没有返回完整用户信息,则从 form_data 获取并显示用户名或 ID
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:23:41 +08:00
root
78a1921f06
fix: 修复审批详情显示问题
...
- 修复用户不存在时仍然显示审批人ID的问题
- 即使部分用户不存在,也保留其ID信息显示
- 优化审批人和抄送人的查询逻辑
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:21:15 +08:00
root
3ebbbefb8d
fix: 修复审批详情显示实际审批人和飞书消息emoji编码
...
1. 审批详情显示修复
- 新增 ApprovalService::getDetail() 方法
- 从 form_data 获取用户实际选择的审批人和抄送人
- 返回每个节点的 actual_approvers 和 approver_statuses
- 修复详情页显示默认审批人而非实际审批人的问题
2. 飞书消息emoji编码修复
- 修复 content 字段格式:应为 card 对象JSON字符串,不是 {"card":{...}}
- 使用 JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
- 新增 HttpClient::httpPostJson() 方法处理预编码字段
- 修复消息发送错误码 200621
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 10:02:53 +08:00
root
8403d24be3
fix: 修复飞书消息双重编码问题
...
问题:
1. FeishuNotificationService 中先 json_encode 然后 HttpClient 又 json_encode
2. 导致 emoji 被双重编码,飞书 API 报错 200621
修复:
1. 直接传递数组给 HttpClient,让 HttpClient 统一进行编码
2. HttpClient 中使用 JSON_UNESCAPED_UNICODE 避免 emoji 转义
3. 移除了 FeishuNotificationService 中的中间编码步骤
2026-03-01 09:27:58 +08:00
root
a0e2c7b267
fix: 修复飞书消息 emoji 编码问题
...
- 在 json_encode 中使用 JSON_UNESCAPED_UNICODE 标志
- 修复 sendMessage() 方法中的 JSON 编码
- 修复 updateMessageCards() 方法中的 JSON 编码
- 解决飞书 API 报错 200621 (parse card json err)
2026-03-01 09:26:19 +08:00
root
7e88c28cc5
docs: 添加审批流程图汇总文档
...
包含:
1. 节点类型说明 (approver/and_approve/or_approve/notify)
2. 基础流程图 (完整审批流程)
3. 按节点类型的详细流程图
4. 特殊场景流程图 (拒绝/重复操作/撤销/多节点)
5. 状态流转图 (状态机)
6. 消息发送流程图
2026-03-01 09:24:57 +08:00
root
ed985ff40d
docs: 添加审批流程完整测试报告 (2026-03-01)
...
测试结果: 7/7 通过
测试场景:
1. 单人审批 (approver) - ✅ 通过
2. 会签流程 (and_approve) - ✅ 通过
3. 或签流程 (or_approve) - ✅ 通过
4. 拒绝场景 - ✅ 通过
5. 重复操作防护 - ✅ 通过
6. 撤销场景 - ✅ 通过
7. 多节点流转 - ✅ 通过
已知问题:
- 飞书消息 emoji 编码问题待修复
2026-03-01 09:21:38 +08:00
root
7598e363f2
docs: 添加审批流程测试报告 (2026-03-01)
...
- 测试环境: 生产环境 (45.153.130.80)
- 测试场景: 会签、拒绝、重复操作防护、撤销
- 测试结果: 4个场景全部通过
- 待解决问题: 飞书消息 emoji 编码问题
2026-03-01 09:18:44 +08:00
root
1e2d337854
fix: 修复 CLI 环境下 request() 为 null 导致的错误
...
- 在 getDetailUrl() 方法中添加 CLI 环境检查
- CLI 环境使用默认域名 uniservice-mobile.hnxinyouhe.com
2026-03-01 09:17:20 +08:00
root
7efd525f49
fix: 修复 BusinessTripService 中未定义变量 $node 的问题
...
- 将 $node 作为参数传递给 sendApprovalNotification() 方法
- 修复消息发送时 'Undefined variable $node' 错误
2026-03-01 09:03:24 +08:00
root
32719406a3
docs: 添加线上部署和调试步骤文档
2026-02-28 23:04:56 +08:00
root
0e2b3d05d0
docs: 添加生产环境配置文档
2026-02-28 23:01:27 +08:00
root
254f0073dc
docs: 添加审批与消息模块架构文档
2026-02-28 22:57:48 +08:00
root
5bbed98cf0
feat: 添加消息日志记录功能,用于调试消息走向
...
新增功能:
1. 创建 feishu_message_log 表,记录消息发送和更新操作
2. FeishuMessageLog 模型:管理消息日志
3. DebugController:提供调试接口查看日志
使用方式:
- GET /debug/message-logs?limit=50 - 查看最近50条日志
- GET /debug/message-logs?order_id=123 - 查看指定订单的日志
- POST /debug/clear-logs - 清空日志
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 18:47:23 +08:00
root
1f72da9ec4
feat: 添加消息卡片更新功能,支持或签/单人审批场景
...
新增功能:
1. 创建 feishu_message 表,存储消息与审批订单/节点/用户的映射关系
2. 发送审批通知时保存 message_id
3. 审批完成后自动更新其他审批人的消息卡片
使用场景:
- 或签(or_approve):一人通过后,更新其他审批人的消息卡片
- 单人审批(approver):一人通过后,更新其他审批人的消息卡片
- 拒绝(reject):拒绝后更新所有其他审批人的消息卡片
技术细节:
- FeishuMessage 模型:管理消息映射
- FeishuNotificationService::updateMessageCards():更新消息卡片
- ApprovalService:审批完成后调用消息更新逻辑
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 18:06:40 +08:00
root
aeff21aec6
fix: 修复审批详情显示默认抄送人的问题
...
- 修改审批流程显示逻辑,从 form_data 获取实际选择的审批人和抄送人
- 之前从 flow.nodes(模板)获取,显示的是默认值
- 现在正确显示用户重新选择的审批人和抄送人列表
注意:数据库节点类型已更新为 and_approve(会签)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 17:42:27 +08:00
root
25df589eea
fix: 修复审批和抄送人相关问题
...
1. 修复抄送人显示问题
- select-cc.tsx: 添加从后端获取默认抄送人的逻辑
- 之前只从 sessionStorage 获取,导致默认抄送人无法加载
2. 修复多人审批重复操作问题
- ApprovalService: approve() 方法添加重复审批检查
- 检查用户是否已在当前节点审批过,避免重复操作
- 恢复 isNodeCompleted() 从 form_data 获取审批人列表
3. 审批逻辑优化
- 从 form_data['approvers'] 获取用户实际选择的审批人
- 支持会签(and_approve)多人审批场景
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 17:34:10 +08:00