diff --git a/app/Http/Controllers/Admin/PlatformOrderController.php b/app/Http/Controllers/Admin/PlatformOrderController.php index 61255c2..42eb59a 100644 --- a/app/Http/Controllers/Admin/PlatformOrderController.php +++ b/app/Http/Controllers/Admin/PlatformOrderController.php @@ -69,8 +69,9 @@ class PlatformOrderController extends Controller $defaults['order_type'] = 'new_purchase'; } - // 续费下单场景:若带了 site_subscription_id,则当前阶段强制视为续费单(避免语义混乱)。 - if ($siteSubscriptionId > 0) { + // 续费下单场景:若带了 site_subscription_id,且未显式指定 order_type,则默认视为续费。 + // 说明:允许用户在“带订阅上下文”的情况下显式选择 new_purchase(用于特殊补单/演示等场景),避免 UI 与测试口径冲突。 + if ($siteSubscriptionId > 0 && $orderTypeFromQuery === null) { $defaults['order_type'] = 'renewal'; } @@ -1891,7 +1892,7 @@ class PlatformOrderController extends Controller } if (($filters['sync_status'] ?? '') !== 'unsynced') { - return redirect()->back()->with('warning', '为避免把同步失败等异常单混入,请先锁定「同步状态=未同步(sync_status=unsynced)」(建议用快捷筛选「待生效」)再执行批量仅标记为已生效。'); + return redirect()->back()->with('warning', '为避免把同步失败/已同步等异常单混入,请先锁定「同步状态=未同步(sync_status=unsynced)」(建议用快捷筛选「待生效」)再执行批量仅标记为已生效。'); } // 互斥筛选阻断:避免“待生效”批量动作在其它治理集合上误触(或误以为会命中失败单/已同步单/可同步单)。 diff --git a/config/saasshop.php b/config/saasshop.php index d7512a6..c2665e1 100644 --- a/config/saasshop.php +++ b/config/saasshop.php @@ -4,7 +4,7 @@ return [ 'platform_orders' => [ // 平台订单列表中“同步失败原因”链接的最大长度阈值。 // 失败原因过长时不生成 sync_error_keyword 链接,避免 URL 过长/特殊字符破坏 query。 - 'sync_error_keyword_link_max_len' => 200, + 'sync_error_keyword_link_max_len' => 100, // 平台订单列表“同步失败原因 TOPN”聚合条数。 'sync_failed_reason_top_n' => 5, diff --git a/public/css/admin-components.css b/public/css/admin-components.css index 9b4fc97..7983869 100644 --- a/public/css/admin-components.css +++ b/public/css/admin-components.css @@ -774,16 +774,17 @@ margin-top:4px; padding:4px 6px; border-left:3px solid var(--adm-error, #ef4444); - background:var(--adm-error-bg, #fef2f2); + background:#fff9f9; border-radius:4px; cursor:help; } +/* Dashboard 最近平台订单:同类提示块样式(额外增加横向滚动以保持同一行) */ [data-page="admin.dashboard"] .row-warn{ margin-top:4px; padding:4px 6px; border-left:3px solid var(--adm-error, #ef4444); - background:var(--adm-error-bg, #fef2f2); + background:#fff9f9; border-radius:4px; cursor:help; @@ -792,13 +793,6 @@ overflow-x:auto; -webkit-overflow-scrolling:touch; } - margin-top:4px; - padding:4px 6px; - border-left:3px solid var(--adm-error, #ef4444); - background:var(--adm-error-bg, #fef2f2); - border-radius:4px; - cursor:help; -} [data-page="admin.dashboard"] .row-warn::-webkit-scrollbar{ height:6px; @@ -809,13 +803,20 @@ border-radius:6px; } -.platform-orders-table .row-warn a.link, +.platform-orders-table .row-warn a.link{ + color:var(--adm-error, #ef4444); + text-decoration:underline; +} + +.platform-orders-table .row-warn a.link:hover{ + text-decoration:none; +} + [data-page="admin.dashboard"] .row-warn a.link{ color:var(--adm-error, #ef4444); text-decoration:underline; } -.platform-orders-table .row-warn a.link:hover, [data-page="admin.dashboard"] .row-warn a.link:hover{ text-decoration:none; } diff --git a/resources/views/admin/platform_orders/form.blade.php b/resources/views/admin/platform_orders/form.blade.php index 00044c0..d488bed 100644 --- a/resources/views/admin/platform_orders/form.blade.php +++ b/resources/views/admin/platform_orders/form.blade.php @@ -40,6 +40,12 @@ @if(($siteSubscription ?? null) && $siteSubscription->id) + @php + // 注意:这里必须以“当前选择的 order_type”为准(允许用户在带订阅上下文时切换为 new_purchase) + $selectedOrderTypeForGov = (string) old('order_type', $defaults['order_type'] ?? 'new_purchase'); + $canRenewForGov = ((int) ($defaults['site_subscription_id'] ?? 0) > 0) && (($siteSubscription ?? null) && ($siteSubscription->id ?? 0)); + @endphp +