Files
one-pipe-system/openspec/changes/update-payment-merchant-pool-optimization/tasks.md
2026-09-12 11:27:50 +08:00

2.8 KiB
Raw Blame History

Implementation Tasks

1. 商户池详情入口

  • 1.1 新增商户池详情页 pool-detail.vue,复用 DetailPage 展示基本信息、轮询配置和运行状态。
  • 1.2 新增 /settings/payment-merchant-pools/pool-detail/:id 路由与路由别名,并按平台账号(allowedUserTypes: [1, 2])限制访问。
  • 1.3 商户池列表名称列改为可点击文本,点击跳转对应详情页;移除行操作中的“详情”入口。
  • 1.4 补充中英文路由标题文案 menus.settings.detailsOfPaymentMerchantPool

2. 商户池详情内容

  • 2.1 详情页展示详情接口返回的全部业务字段:名称、支付方式、启停状态、成员数量、成员商户、轮询策略、统计周期、金额/笔数/时间阈值、时间起点、路由世代和备注。
  • 2.2 成员按支付商户名称展示,不展示 member_ids 原始 ID无法解析时展示“未知商户”。
  • 2.3 创建时间、更新时间等字段仅在接口返回时渲染,避免空白字段行。

3. 商户池表单稳定性

  • 3.1 将 orderedMemberIds 改为基于 form.member_ids 的单一数据源,移除互相赋值的双向 watch。
  • 3.2 验证新增、编辑、切换支付方式、添加成员、移除成员和拖拽排序后提交的成员顺序正确。
    • 新增/编辑/切换支付方式直接重置 form.member_ids;添加与移除成员在 form.member_ids 上增删;拖拽经 VueDraggablev-model 写回同一数组,buildPayload 按数组顺序提交。

4. 商户凭证字段枚举与校验

  • 4.1 在 src/types/api/paymentMerchantPools.ts 固化凭证字段枚举:PAYMENT_CREDENTIAL_FIELD_SPECS(各 provider_type 的必填键与可选键)、PAYMENT_CREDENTIAL_BOOLEAN_KEYSPAYMENT_CREDENTIAL_INTEGER_KEYSPAYMENT_MERCHANT_IDENTITY_KEYS
  • 4.2 实现 buildPaymentCredentials:校验字段枚举与必填键,把 ali_production 转为布尔值、ali_pay_expire_minutes 转为正整数,其余字段保持字符串,并校验 merchant_identity 与对应凭证字段一致。
  • 4.3 支付商户凭证写入表单接入该校验,并在“写入支付凭证”分隔线下方展示当前服务商组合的必填/可选字段提示。
  • 4.4 凭证读写仍仅限超级管理员(user_type=1)与平台用户(user_type=2):路由 allowedUserTypes 与页面 canManage 双层限制,凭证值不进入持久化、日志与错误上报。

5. 验证

  • 5.1 运行 eslintvue-tsc --noEmitvite build,确认改动通过类型检查和构建。
    • eslint(改动文件)、vue-tsc --noEmit 均通过;vite build --mode development 成功产出 MerchantManagementPoolManagementpool-detail chunk。
  • 5.2 执行 openspec validate update-payment-merchant-pool-optimization --strict