fix: 代理系列授权店铺
Some checks failed
构建并部署前端到测试环境 / build-and-deploy (push) Failing after 2m0s

This commit is contained in:
sexygoat
2026-05-09 16:13:11 +08:00
parent 3c71ae0004
commit 73ce9af11a
26 changed files with 833 additions and 807 deletions

View File

@@ -0,0 +1,36 @@
# Change: 优化资产信息钱包流水的默认加载与展示稳定性
## Why
当前资产信息页的钱包流水区域存在三个连续问题:默认进入资产详情时没有稳定触发钱包流水查询;前端按 `list/page_size` 解析响应,但后端实际返回 `items/size`,导致接口成功返回后表格仍然不显示;当结果为空时,重复查询还会出现“暂无钱包流水数据”先消失再出现的闪烁。
这些问题叠加后,会让用户误以为钱包流水没有被加载、接口无返回,或页面发生异常刷新。需要将默认加载、数据展示和空态刷新体验统一规范。
## What Changes
- 为资产信息页的钱包流水区域新增默认加载规范:
- 资产详情加载完成后应自动请求钱包流水
- 默认请求参数为 `page=1``page_size=20`
- 明确钱包流水区域需兼容后端当前返回结构:
- 使用 `items` 作为流水列表
- 使用 `page``size``total` 作为分页信息
- 明确有数据时必须展示钱包流水表格,不能因为前端字段映射不一致而落入空态
- 为空结果场景新增稳定性展示规范:
- 当当前已是空态且新结果仍为空时,空态区域应保持连续可见
- 加载反馈不应通过“先移除空态再重新渲染”的方式呈现
- 覆盖以下触发路径:
- 资产信息页首次进入或首次加载当前资产
- 资产信息页顶部再次搜索资产
- 钱包流水区域内的查询、重置、分页切换、分页尺寸重置等再次拉取
## Impact
- Affected specs:
- `asset-wallet-transaction-display`
- Affected code:
- `src/views/asset-management/asset-information/components/WalletTransactionCard.vue`
- `src/views/asset-management/asset-information/index.vue`
- `src/types/api/asset.ts`
- Dependencies:
- `GET /api/admin/assets/:asset_type/:id/wallet/transactions`
- 钱包流水分页响应以接口返回 `items``page``size``total` 为准

View File

@@ -0,0 +1,57 @@
## ADDED Requirements
### Requirement: Wallet Transactions Shall Load And Render Automatically
The asset information wallet transaction panel SHALL automatically request and render wallet transaction data for the current asset by using the backend response contract returned from the wallet transaction API.
#### Scenario: Opening an asset information page triggers the default wallet transaction request
- **GIVEN** 用户进入某个资产的信息页,且当前资产支持直接查看钱包流水
- **WHEN** 资产详情上下文已完成加载并显示钱包流水区域
- **THEN** 系统 MUST 自动请求当前资产的钱包流水接口
- **AND** 请求参数 MUST 默认为 `page=1``page_size=20`
- **AND** 系统 MUST NOT 要求用户先点击“查询”后才首次拉取钱包流水
#### Scenario: Asset search refreshes wallet transactions with default pagination
- **GIVEN** 用户已经位于资产信息页
- **WHEN** 用户通过页面顶部搜索重新加载当前资产或切换到另一个资产
- **THEN** 系统 MUST 为新解析出的当前资产重新请求钱包流水接口
- **AND** 首次展示该资产的钱包流水时 MUST 使用 `page=1``page_size=20`
#### Scenario: Successful wallet transaction response with items renders table rows
- **GIVEN** 钱包流水接口成功返回 `data.items`,且其中包含一条或多条流水记录
- **WHEN** 前端接收到该响应
- **THEN** 系统 MUST 按 `data.items` 渲染钱包流水表格
- **AND** 系统 MUST 使用 `data.total` 作为总记录数
- **AND** 系统 MUST 使用 `data.page``data.size` 同步当前分页状态
- **AND** 系统 MUST NOT 展示“暂无钱包流水数据”空态
### Requirement: Stable Wallet Empty State During Refresh
The asset information wallet transaction panel SHALL preserve a stable empty-state presentation when repeated requests continue to return no wallet transaction data.
#### Scenario: Re-searching the same asset still returns no wallet transactions
- **GIVEN** 用户已经在资产信息页的钱包流水区域看到“暂无钱包流水数据”
- **AND** 当前钱包流水响应数据为 `items=[]``page=1``size=20``total=0`
- **WHEN** 用户再次触发资产搜索,且新的钱包流水响应仍然为 `items=[]``page=1``size=20``total=0`
- **THEN** 系统 MUST 继续在同一钱包流水区域保持空态展示
- **AND** 系统 MUST NOT 通过先移除空态内容再重新插入的方式呈现刷新过程
- **AND** 系统 MUST 将刷新反馈限制在不破坏当前空态布局稳定性的范围内
#### Scenario: Wallet filter refresh still returns an empty result
- **GIVEN** 用户已经在资产信息页的钱包流水区域看到“暂无钱包流水数据”
- **WHEN** 用户在钱包流水区域执行查询、重置或其他会重新拉取流水的操作
- **AND** 新的响应仍然为 `items=[]``page=1``size=20``total=0`
- **THEN** 系统 MUST 保持空态区域连续可见
- **AND** 系统 MUST NOT 在刷新过程中出现钱包内容区域短暂空白再恢复空态的视觉跳变
#### Scenario: First empty response shows the wallet empty state
- **GIVEN** 用户首次打开某个资产的信息页或首次加载钱包流水
- **WHEN** 钱包流水响应为 `items=[]``page=1``size=20``total=0`
- **THEN** 系统 MUST 展示“暂无钱包流水数据”空态
- **AND** 系统 MUST 不显示分页控件

View File

@@ -0,0 +1,7 @@
## 1. Implementation
- [x] 1.1 调整资产信息页钱包流水卡片的初始化逻辑,确保资产详情首次进入和资产切换后会自动请求钱包流水,默认参数为 `page=1``page_size=20`
- [x] 1.2 对齐钱包流水接口的实际响应结构,使用 `items` 渲染表格数据,并使用 `page``size``total` 同步分页状态。
- [x] 1.3 确保钱包流水接口返回非空 `items` 时,页面正确展示流水表格而不是错误落入空态。
- [x] 1.4 确保重复搜索同一资产,或在钱包区域内执行查询、重置、分页切换、分页尺寸变化后,如果结果仍为空,空态不会出现“隐藏再显示”的闪烁。
- [x] 1.5 验证空结果与非空结果两类场景下的钱包流水表格、空态和分页展示行为都符合规范。