Commit Graph
414 Commits
Author SHA1 Message Date
yml2213andClaude Opus 4.8 d066cb65a3 修复首页专区无法切回全部:专区与筛选持久化解耦
zone 此前被纳入 URL/sessionStorage 持久化体系,切回全部专区时
空 query 会回退读取残留的旧 zone 导致专区被弹回。改为纯内存视图
状态,专区可自由切换、不参与筛选持久化。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 07:58:01 +08:00
yml2213andClaude Opus 4.8 fa2d245788 重构首页账号专区组件,拆分排序控件
将 HomeZonesAndSort 拆分为独立的 HomeZones 专区组件,
排序控件内联至列表头部,专区改为响应式网格 tab 布局。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 07:43:51 +08:00
yml2213andClaude Opus 4.8 4d54f1b03a 后台增加撤销用户实名功能
实名姓名与收款账户不一致会导致收款码登记失败,新增后台撤销实名能力:
- 新增 user:revoke_realname 权限,授予超级管理员与运营角色
- 撤销时重置用户实名状态为未认证并删除实名记录,使其可重新认证,写入审计日志
- 用户管理页新增实名状态列与"撤销实名"操作(含原因弹窗)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 07:03:52 +08:00
yml2213andClaude Opus 4.8 8192344027 优化号主交接超时卡死问题
- 号主交接超时(owner_timeout)后允许补提交交接说明,避免临时延误导致订单卡死
- 后台新增"重置交接"动作,可将超时订单恢复为待号主交接并刷新计时
- 交接超时改以进入待交接时刻为基准计算,新增 handoff_started_at 字段

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 04:16:31 +08:00
yml2213andClaude Opus 4.8 ae11dd7b8d 修复发布页移动端小数输入与押金下限校验
- 哈夫币/M:移动端输入框由 type="digit" 改为 type="number",
  与绝密KD 一致,iOS 可输入小数点(烽火等级保持取整不变)
- 押金:新增 handleDepositBlur,输入框失焦时若低于智能推荐额度
  (或为空/非法)自动补足到推荐值并提示,桌面与移动端均生效;
  提交时校验保留作兜底

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 03:53:01 +08:00
yml2213andClaude Opus 4.8 f336957391 发布流程增加解锁赛伊德与腾讯安全中心截图教程
- 解锁赛伊德:皮肤与交接分区新增是/否必选项,存入 asset_summary,
  仅当号主选「是」时在买家端列表/详情展示「解锁赛伊德:是」
- 腾讯安全中心截图:新增可复用 GuideImage 组件(缩略图 + 点击全屏放大),
  在该截图槽位展示处罚截图教程图,仅提示用途、不占用上传数量

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 02:12:15 +08:00
yml2213andClaude Opus 4.8 a88008f783 用户管理增加查找筛选
后台用户列表此前仅分页,数据量大时无法定位用户。

- 后端:List 新增 ListQuery(关键词 + 状态),抽出 applyUserFilter
  对总数与列表查询统一加筛选;关键词为纯数字时同时按用户 ID 精确匹配,
  否则按手机号/昵称模糊匹配
- 前端:AdminUsersView 新增筛选栏(关键词:手机号/昵称/用户ID,
  状态:正常/已冻结/已禁用),回车/清空/选择即查,查询重置到第 1 页

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 00:58:14 +08:00
yml2213andClaude Opus 4.8 e75a39b03a 新增消息已读状态
复用 chat_participants.last_read_at 推导已读,无需新表/迁移。

- 后端:MessageDTO 增加 is_read,toMessageDTOs 按「全部已读」语义计算
  (所有其他参与者均已读才算已读,1对1 即对方已读);MarkRead 成功后
  推送 conversation_read 事件(含 reader 与 read_at),NotifyConversation
  与 NotifyAllAdmins 双通道通知,使发送方/客服实时刷新已读
- 前端:ChatMessage 增加 is_read,ChatView/AdminChatsView/MobileChatView
  在自己的消息下渲染「已读/未读」;收到 conversation_read 且本端仍有
  未获回执的自己消息时才重载,避免无谓请求

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 22:22:05 +08:00
yml2213andClaude Opus 4.8 cc1c0d33de 修复客服后台聊天无实时刷新
后台 token 仅存 httpOnly cookie,localStorage 无 access token,
useChatSSE 在空 token 时提前 return,导致后台 SSE 从未建立连接,
只有手动刷新才出消息。

- 前端:后台 SSE 不再因空 token 返回,去掉 query token,
  改用 withCredentials 依赖 cookie 鉴权
- 后端:新增 Hub.NotifyAllAdmins,新消息与新会话广播给所有在线客服,
  使「未分配 / 全部」视图实时刷新(参与者客服重复收到由前端按 id 去重)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 19:57:58 +08:00
yml 9271f47553 增加公告图片编辑, 增加取消归档 2026-06-15 20:37:13 +08:00
yml 85f2d9b3b3 新增添加到桌面引导 2026-06-15 11:09:50 +08:00
yml 2a8c1e5c37 增加内置浏览器打开引导 2026-06-15 00:55:12 +08:00
yml a275a006eb 修复支付取消与成功统计 2026-06-14 23:58:39 +08:00
yml 3ff8c1de88 支持微信支付宝独立支付渠道 2026-06-14 23:38:03 +08:00
yml 2dc5a8121e 前端死代码清理 2026-06-14 18:42:06 +08:00
yml 965832c3cb 前端测试基建: vitest.config + jsdom + test script, 3 个死 spec 复活
现状: vitest 已装, 3 个 spec 已存在 (listings composables, 14 用例), 但跑不起来——package.json 无 test script, 无 vitest.config, @/ 别名在测试环境不通 (Cannot find package '@/...')。

修复:
- 新增 vitest.config.ts: jsdom 环境 (提供 window/document/navigator, 让 monitor.ts 等浏览器模块可加载) + @ 别名 (与 vite.config.ts 同口径) + globals + v8 coverage 配置
- package.json 加 test / test:watch / test:coverage script
- 装 jsdom devDependency
- check.sh 前端门禁加 npm run test 步骤 (受 --skip-tests 控制, 与后端测试一致)

验证: npm run test 3 spec 全过 (14 用例); check.sh --skip-backend 全绿 (check + test + build)。

之前 "有测试实际跑不起来" 的债务清掉。后续 composable/api 层测试可直接 npm run test。
2026-06-14 18:13:06 +08:00
yml f410be3797 代码格式化: prettier --write 统一代码风格
39 个文件按 .prettierrc.json (printWidth 100 / no semi / singleQuote) 统一格式, 纯空白与换行调整, 无逻辑变更。为接入代码门禁做准备, 让 npm run check (format:check + lint:strict + typecheck) 干净通过。
2026-06-14 16:24:01 +08:00
yml 16b171442a 优化登录界面逻辑与 ui 2026-06-14 11:07:07 +08:00
yml bd9c88d659 重构订单详情双视图: 抽取 useOrderActions + useOrderPaymentCashier 消除重复
OrderDetailView (PC) 与 MobileOrderDetailView 共 13 个 handler + 9 个 computed 逐字重复, 差异只在 UI 反馈原语 (ElMessage vs showToast)、二次确认交互、支付外壳。本次按 usePublishForm 范式抽取共享 composable, 业务逻辑收敛、UI 反馈靠 options 注入。

新增:
- useOrderActions: 订单详情业务逻辑 (load/cancel/pay/handoff/confirm/checkout 五件套/dispute 两件套/evidence upload), 持有状态/表单/computed, UI 反馈与二次确认通过 options 注入, 复用 useOrderSnapshot 的纯函数与 useOrderCheckoutSnapshot
- useOrderPaymentCashier: 通用支付收银台 (二维码渲染 + 轮询 + App 浏览器跳转兜底), 反馈靠 options 注入, 轮询间隔/二维码宽度/外部跳转参数化

改造:
- useMobilePaymentCashier 改为 useOrderPaymentCashier 的薄封装, 注入 vant toast/showDialog + 微信/支付宝内嵌浏览器跳转, 对外 API 名不变
- OrderDetailView 1505→1120, MobileOrderDetailView 1253→896, 视图净减 742 行重复代码
- 修复 PC 缺失的 rejectReason/disputeDescription 非空校验 (现网 PC 遗漏, 与 Mobile 对齐)

关键不变式:
- handleRejectCheckout 用现网 createDispute(type:'checkout_dispute') 语义, 未引入死代码 useSettlement 的 counterCheckout bug
- 轮询间隔 PC 3000ms / Mobile 2500ms 通过 pollIntervalMs 注入, 行为不变
- 二次确认 Mobile 4 项 (cancel/confirmCheckout/acceptCheckout/cancelDispute) 走 showDialog, PC 直接放行
- autoPay (route.query.pay==='1') 触发逻辑保留

chatPathPrefix 移入 options 并加 onCounterCheckoutSuccess/onRejectCheckoutSuccess/onCreateDisputeSuccess 三个可选 UI 回调: 修复 PC template @click="openOrderChat" 误把 PointerEvent 当路由前缀 (跳成 [object PointerEvent]), 以及 Mobile 修改结账/拒绝修正/提交申诉成功后 popup 不关闭的回归。

vue-tsc / eslint / vite build 全部通过。
2026-06-14 10:59:18 +08:00
yml2213andClaude Opus 4.8 e8621728fd 删除钱包充值功能并消除重复入账风险
钱包充值为开发态测试功能(生产环境本就禁用),且支付回调存在重复入账风险:入账与标记 paid 两步非原子、wallet_ledger 去重无唯一索引、幂等键使用了可变的 ProviderOrderID。直接删除该功能从根本上消除风险。

后端:
- payment 移除 StartWalletRecharge/QueryWalletRecharge 及相关 handler/DTO/常量;confirmPaid 增加 OrderID 守卫;解除对 wallet 仓库的依赖
- wallet 移除 Recharge/ConfirmRechargeFromChannel 及相关定义
- 移除三条充值路由;adminfinance 财务统计口径只统计 order_pay
- 清理充值相关测试用例

前端:
- 移除充值 API、WalletView 充值面板/弹窗、admin 充值标签与筛选
- 保留钱包余额、流水、提现等核心能力

go build/vet 与 vue-tsc typecheck 均通过。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 02:45:46 +08:00
yml2213 3ef7705776 优化申诉仲裁流程和证据展示 2026-06-13 21:26:38 +08:00
yml2213 529ad1e433 优化首页账号卡片展示 2026-06-13 20:27:05 +08:00
yml2213 6ce031160b 移动端浏览器支付 ok 2026-06-13 19:17:02 +08:00
yml2213 9d7184ecde 优化了消息数量,筛选和顶部部分 2026-06-13 19:03:29 +08:00
yml2213 3b4cd76e42 移动端增加租期 展示 2026-06-13 18:45:49 +08:00
yml2213 9965150521 再次优化筛选 2026-06-13 18:19:45 +08:00
yml2213 55326b7d06 优化筛选, 增加记住筛选功能 2026-06-13 15:46:47 +08:00
yml2213 9b41b9dc84 增加足迹和收藏 2026-06-12 22:34:52 +08:00
yml2213 c726659866 手机端增加提现功能 2026-06-12 21:57:49 +08:00
yml2213 f1ae72cc7a 二次编辑商品 2026-06-12 21:43:02 +08:00
yml2213 c8b8922c8d 优化移动端押金 ui 2026-06-12 21:32:35 +08:00
yml2213 7c2f5e34c3 详情页面kd 展示,发布时间必填 2026-06-12 21:24:13 +08:00
yml2213 f6ea3e29a6 移动端和 PC 端登录页都加了“图形验证码 2026-06-12 21:16:08 +08:00
yml2213 a615100730 修复文件上传和下单支付流程 2026-06-12 19:42:24 +08:00
yml2213 6d61a336d6 支持配置后台页面入口 2026-06-11 08:00:13 +08:00
yml2213 88b1df64e7 加固后台管理安全 2026-06-11 07:23:00 +08:00
yml2213 c0403fc1ea negiix 更换成 caddy 2026-06-11 04:17:36 +08:00
yml2213 6d990c97bc 修复下单错误 api 2026-06-10 19:45:33 +08:00
yml2213 3e0a1a2d4b 整理初始化迁移并优化订单和用户菜单 2026-06-10 16:21:01 +08:00
yml2213 70a35204b3 统一前端错误读取和调试日志 2026-06-10 15:52:49 +08:00
yml 3bbe356c3f 拆分订单详情结账逻辑 2026-06-09 22:07:55 +08:00
yml d68020db4e 优化前端组件库拆包 2026-06-09 21:14:30 +08:00
yml 9cc959afc4 收敛前端金额表单命名 2026-06-09 20:59:50 +08:00
yml 60324765c5 统一前端共享工具入口 2026-06-09 20:50:57 +08:00
yml 684e30862d 修复前端金额展示并整理依赖 2026-06-09 20:32:17 +08:00
yml 5cd3ead4bd 统一金额分制重构 2026-06-09 19:04:11 +08:00
yml 87673288ef chore: finalize amount migration fixes 2026-06-09 17:45:29 +08:00
yml 42a54b474a [Snow Team] frontend-fixer-2: auto-commit work 2026-06-09 17:04:40 +08:00
yml c05f203e06 金额统一重构:完成核心工作(后端100% + 前端85%)
已完成:
 后端(100%):
  - 数据库迁移:5张表15个字段
  - Model层:所有金额字段新增*Cent
  - Money工具包:完整的转换函数
  - 10个业务模块:Wallet/Withdrawal/Order/Dispute/Listing/Payment/AdminFinance等
  - 编译验证:通过

 前端基础设施(100%):
  - Money工具函数:formatCent/yuanToCent等
  - Wallet API:WalletAccount/WalletLedger类型
  - Withdrawal API:WithdrawalRequest类型
  - Order API:Order/Checkout/PaymentOrder类型(已更新)
  - WalletView.vue:部分适配完成

 文档(100%):
  - 金额统一重构完成报告.md
  - 前端金额字段适配指南.md
  - 金额统一重构项目总结.md
  - 前端Vue组件详细适配清单.md
  - 金额统一重构-最终完成报告.md(新增)

剩余工作(可选):
- 前端Vue组件适配:按文档手工完成或VSCode全局替换
- 删除兼容层:测试环境可立即删除旧字段
- 预计时间:2-3小时

技术成果:
- 消除浮点精度问题
- 全链路整数运算
- 统一存储单位(分)
- 业务友好展示(角精度)

总体完成度:80%(核心100%)
2026-06-09 14:33:23 +08:00
yml 567b73f080 完成金额统一重构:提供完整的前端适配文档
后端状态: 100% 完成
- 数据库迁移、Model层、所有业务模块已完成
- 编译验证通过

前端状态: 基础设施完成 + 📋 详细适配文档
- Money工具函数:formatCent/yuanToCent等 
- Wallet/Withdrawal API类型:*_cent字段 
- WalletView.vue:部分适配完成 
- 详细适配文档:前端Vue组件详细适配清单.md 📋

新增文档:
1. 金额统一重构完成报告.md - 后端技术细节
2. 前端金额字段适配指南.md - 概要指南
3. 金额统一重构项目总结.md - 项目总结
4. 前端Vue组件详细适配清单.md - 详细操作清单(新增)

适配清单包含:
- WalletView.vue 详细改动点
- WithdrawalView.vue 详细改动点
- Order相关组件改动点
- Listing相关组件改动点
- AdminFinance组件改动点
- 批量操作指南(VSCode全局替换)
- 测试检查清单
- 常见问题排查

下一步:
按照《前端Vue组件详细适配清单.md》逐个修改组件
预计工作量:2-3小时(机械性操作)
2026-06-09 14:28:13 +08:00