diff --git a/backend/internal/modules/order/presenter.go b/backend/internal/modules/order/presenter.go
index 21eab22..1f34bf7 100644
--- a/backend/internal/modules/order/presenter.go
+++ b/backend/internal/modules/order/presenter.go
@@ -231,10 +231,43 @@ func sanitizeOrderSnapshot(snapshot *datatypes.JSON, role string) {
return
}
}
- breakdown, _ := summary["price_breakdown"].(map[string]any)
- if role == "owner" && breakdown != nil {
- if sellerRatio := readJSONNumber(breakdown["seller_ratio"]); sellerRatio > 0 {
- summary["publish_ratio"] = sellerRatio
+ // price_breakdown 含双方比例与加价明细,仅把当前角色可见的价格字段摊平到 summary,再删除原对象。
+ if breakdown, ok := summary["price_breakdown"].(map[string]any); ok && breakdown != nil {
+ switch role {
+ case "owner":
+ if v := readJSONNumber(breakdown["seller_ratio"]); v > 0 {
+ summary["publish_ratio"] = v
+ summary["display_ratio"] = v
+ }
+ if v := readJSONNumber(breakdown["seller_reference_ratio"]); v > 0 {
+ summary["reference_ratio"] = v
+ }
+ if v := readJSONNumber(breakdown["seller_total_price"]); v > 0 {
+ summary["display_total_price"] = v
+ }
+ if v := readJSONNumber(breakdown["seller_coin_base_price"]); v > 0 {
+ summary["display_coin_base_price"] = v
+ }
+ if v := readJSONNumber(breakdown["accelerated_sale_ratio"]); v > 0 {
+ summary["accelerated_sale_ratio"] = v
+ }
+ case "renter":
+ if v := readJSONNumber(breakdown["buyer_ratio"]); v > 0 {
+ summary["publish_ratio"] = v
+ summary["display_ratio"] = v
+ }
+ if v := readJSONNumber(breakdown["buyer_total_price"]); v > 0 {
+ summary["display_total_price"] = v
+ }
+ if v := readJSONNumber(breakdown["buyer_coin_base_price"]); v > 0 {
+ summary["display_coin_base_price"] = v
+ }
+ }
+ if v := readJSONNumber(breakdown["consumable_price"]); v > 0 {
+ summary["consumable_price"] = v
+ }
+ if v := readJSONNumber(breakdown["daily_loss_ratio_adjustment"]); v != 0 {
+ summary["daily_loss_ratio_adjustment"] = v
}
}
delete(summary, "price_breakdown")
diff --git a/frontend/src/features/orders/components/OrderAccountSnapshot.vue b/frontend/src/features/orders/components/OrderAccountSnapshot.vue
new file mode 100644
index 0000000..05518c1
--- /dev/null
+++ b/frontend/src/features/orders/components/OrderAccountSnapshot.vue
@@ -0,0 +1,503 @@
+
+
+
+
+
+
+
+
+