From 39ea74a52e85d83e0a3d232616cd7e109756447e Mon Sep 17 00:00:00 2001 From: sky121113 Date: Tue, 19 May 2026 17:25:10 +0800 Subject: [PATCH] =?UTF-8?q?[FIX]=20=E4=BF=AE=E6=AD=A3=E5=95=86=E5=93=81?= =?UTF-8?q?=E8=BB=9F=E5=88=AA=E9=99=A4=E4=B9=8B=E5=87=BA=E8=B2=A8=E6=AD=B7?= =?UTF-8?q?=E5=8F=B2=E9=97=9C=E8=81=AF=E8=88=87=E5=9C=96=E7=89=87=E7=A0=B4?= =?UTF-8?q?=E5=9C=96=E5=84=AA=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 於 DispenseRecord、OrderItem 及 MachineStockMovement 模型之 product 關聯中加入 withTrashed(),確保被軟刪除商品的歷史快照仍可正常讀取。 2. 將 tab-dispense.blade.php、order-detail-panel.blade.php 及 SalesController 報表導出中的 product->name 統一修改為 product->localized_name ?? __('Unknown Product'),支援多語系切換與翻譯並替換 'Unknown' 為 '未知商品'。 3. 在銷售明細的商品圖片區塊整合 Alpine.js x-on:error 動態破圖防呆機制,一旦偵測到破圖或刪除實體圖,自動無縫退回精緻的 3D 箱子預設占位 SVG,消除破圖小圖標以維護全站極簡奢華風的視覺美感。 --- app/Http/Controllers/Admin/SalesController.php | 2 +- app/Models/Machine/MachineStockMovement.php | 2 +- app/Models/Transaction/DispenseRecord.php | 2 +- app/Models/Transaction/OrderItem.php | 2 +- .../partials/order-detail-panel.blade.php | 18 +++++++++++------- .../sales/partials/tab-dispense.blade.php | 4 ++-- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Admin/SalesController.php b/app/Http/Controllers/Admin/SalesController.php index 6e13561..1e11f8e 100644 --- a/app/Http/Controllers/Admin/SalesController.php +++ b/app/Http/Controllers/Admin/SalesController.php @@ -833,7 +833,7 @@ class SalesController extends Controller $row = [ $log->machine->name ?? 'Unknown', $log->machine->serial_no ?? '---', - $log->product->name ?? 'Unknown Product', + $log->product->localized_name ?? __('Unknown Product'), $log->slot_no, number_format($log->amount, 2, '.', ''), $statusLabel, diff --git a/app/Models/Machine/MachineStockMovement.php b/app/Models/Machine/MachineStockMovement.php index 9fb7450..73c4522 100644 --- a/app/Models/Machine/MachineStockMovement.php +++ b/app/Models/Machine/MachineStockMovement.php @@ -76,7 +76,7 @@ class MachineStockMovement extends Model public function product(): BelongsTo { - return $this->belongsTo(Product::class); + return $this->belongsTo(Product::class)->withTrashed(); } public function creator(): BelongsTo diff --git a/app/Models/Transaction/DispenseRecord.php b/app/Models/Transaction/DispenseRecord.php index 7121e09..8e791d7 100644 --- a/app/Models/Transaction/DispenseRecord.php +++ b/app/Models/Transaction/DispenseRecord.php @@ -45,6 +45,6 @@ class DispenseRecord extends Model public function product() { - return $this->belongsTo(Product::class); + return $this->belongsTo(Product::class)->withTrashed(); } } diff --git a/app/Models/Transaction/OrderItem.php b/app/Models/Transaction/OrderItem.php index 2562aed..6f12d30 100644 --- a/app/Models/Transaction/OrderItem.php +++ b/app/Models/Transaction/OrderItem.php @@ -34,6 +34,6 @@ class OrderItem extends Model public function product() { - return $this->belongsTo(Product::class); + return $this->belongsTo(Product::class)->withTrashed(); } } diff --git a/resources/views/admin/sales/partials/order-detail-panel.blade.php b/resources/views/admin/sales/partials/order-detail-panel.blade.php index 3ec6d03..c2f2eae 100644 --- a/resources/views/admin/sales/partials/order-detail-panel.blade.php +++ b/resources/views/admin/sales/partials/order-detail-panel.blade.php @@ -126,15 +126,19 @@
@foreach($order->items as $item) -
-
+
+
@if(isset($item->product->image_url) && $item->product->image_url) - - @else - + + @endif + +
+ - @endif +

{{ $item->product_name }}

@@ -198,7 +202,7 @@ #{{ str_pad($dispense->slot_no, 2, '0', STR_PAD_LEFT) }} -

{{ $dispense->product->name ?? __('Unknown') }}

+

{{ $dispense->product->localized_name ?? __('Unknown Product') }}

@php diff --git a/resources/views/admin/sales/partials/tab-dispense.blade.php b/resources/views/admin/sales/partials/tab-dispense.blade.php index 199d2ba..465bbee 100644 --- a/resources/views/admin/sales/partials/tab-dispense.blade.php +++ b/resources/views/admin/sales/partials/tab-dispense.blade.php @@ -188,7 +188,7 @@
- {{ $log->product->name ?? 'Unknown Product' }} + {{ $log->product->localized_name ?? __('Unknown Product') }}
{{ __('Slot') }}: {{ $log->slot_no }} @@ -287,7 +287,7 @@ __('Product / Slot') }}

- {{ $log->product->name ?? 'Unknown' }} + {{ $log->product->localized_name ?? __('Unknown Product') }}

{{ __('Slot') }}: {{ $log->slot_no }}