fix: 套餐

This commit is contained in:
sexygoat
2026-04-29 11:29:53 +08:00
parent 686bddad79
commit 1dc4701540
44 changed files with 3912 additions and 150 deletions

View File

@@ -0,0 +1,43 @@
# Device Management Specification
## ADDED Requirements
### Requirement: Device Switch Mode Submission
The system SHALL require a bound IoT card when configuring device switch mode and MUST submit both `iot_card_id` and `switch_mode` to the switch mode API.
#### Scenario: Submit switch mode with selected bound card
- **GIVEN** 用户从设备列表页或资产信息页打开“设置切卡模式”弹窗
- **AND** 目标设备已经配置 IMEI
- **AND** 目标设备至少绑定了一张卡
- **WHEN** 用户选择一张绑定卡并选择切卡模式后确认提交
- **THEN** 系统 MUST 调用 `POST /api/admin/devices/by-identifier/{identifier}/switch-mode`
- **AND** 请求体 MUST 包含 `iot_card_id`
- **AND** 请求体 MUST 包含 `switch_mode`
- **AND** 成功后系统 MUST 给出成功反馈并刷新相关设备数据
#### Scenario: Device without IMEI cannot submit switch mode
- **GIVEN** 用户尝试为一个未配置 IMEI 的设备设置切卡模式
- **WHEN** 用户打开弹窗或尝试提交
- **THEN** 系统 MUST 阻止提交
- **AND** 系统 MUST 明确提示设备需要先配置 IMEI
#### Scenario: Device without bound card cannot submit switch mode
- **GIVEN** 目标设备没有任何绑定卡
- **WHEN** 用户打开弹窗或尝试提交
- **THEN** 系统 MUST 阻止提交
- **AND** 系统 MUST 明确提示必须先选择或绑定一张卡
### Requirement: Device Realtime Information Visibility
The system SHALL hide the generic `IP 地址` field in device realtime information while preserving other required realtime network information.
#### Scenario: Device realtime information does not show the IP address field
- **GIVEN** 页面正在展示设备实时信息
- **WHEN** 实时信息卡片完成渲染
- **THEN** 界面 MUST NOT 显示标签为 `IP 地址` 的字段
- **AND** `WAN IP``LAN IP` 等其他实时网络字段在有数据时 MUST 继续显示

View File

@@ -0,0 +1,31 @@
# Order Management Specification
## ADDED Requirements
### Requirement: Order Voucher Upload Feedback
The system SHALL make the payment voucher upload state explicit during order creation and MUST prevent submission until the upload finishes.
#### Scenario: Submit button reflects voucher upload in progress
- **GIVEN** 用户正在创建线下支付订单
- **AND** 用户已经选择支付凭证图片
- **WHEN** 前端正在获取上传地址或正在上传图片文件
- **THEN** 提交按钮 MUST 显示 `图片上传中...`
- **AND** 提交按钮 MUST 被禁用,或以其他方式阻止创建订单请求发出
#### Scenario: Submit button returns to normal after upload completes
- **GIVEN** 用户正在创建线下支付订单
- **WHEN** 支付凭证上传成功完成
- **THEN** 系统 MUST 保存返回的 `payment_voucher_key`
- **AND** 提交按钮 MUST 恢复为 `提交`
- **AND** 用户 MAY 继续提交订单
#### Scenario: Upload failure or removal clears pending submit state
- **GIVEN** 用户正在创建线下支付订单
- **WHEN** 支付凭证上传失败,或用户移除了已选择的支付凭证
- **THEN** 系统 MUST 清理失效的凭证状态
- **AND** 上传中状态 MUST 结束
- **AND** 系统 MUST 保持订单未提交