diff --git a/resources/views/admin/support_tickets/index.blade.php b/resources/views/admin/support_tickets/index.blade.php
new file mode 100644
index 0000000..bdac226
--- /dev/null
+++ b/resources/views/admin/support_tickets/index.blade.php
@@ -0,0 +1,16 @@
+@extends('admin.layouts.app')
+
+@section('title', '客服中心 / 工单')
+@section('page_title', '客服中心 / 工单')
+
+@section('content')
+
+
客服中心(工单)骨架页:用于后续接入“对账异常/退款异常/续费缺订阅”等治理工单闭环。
+
当前阶段仅做信息架构占位与路由/权限/数据模型埋口,避免后续大改。
+
+
+
+
工单列表(占位)
+
下一步将接入:筛选(scope/状态/优先级/关联对象)、创建工单、指派、SLA、升级链路与审计。
+
+@endsection
diff --git a/routes/web.php b/routes/web.php
index 63d5839..75fba36 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -10,6 +10,7 @@ use App\Http\Controllers\Admin\ProductCategoryController as AdminProductCategory
use App\Http\Controllers\Admin\ProductController as AdminProductController;
use App\Http\Controllers\Admin\MerchantController as AdminMerchantController;
use App\Http\Controllers\Admin\SiteSubscriptionController;
+use App\Http\Controllers\Admin\SupportTicketController;
use App\Http\Controllers\Front\H5Controller;
use App\Http\Controllers\Front\PlatformController as FrontPlatformController;
use App\Http\Controllers\MerchantAdmin\AuthController as MerchantAdminAuthController;
@@ -155,6 +156,9 @@ Route::prefix('admin')->group(function () {
Route::get('/platform-leads', [\App\Http\Controllers\Admin\PlatformLeadController::class, 'index']);
Route::post('/platform-leads/{lead}/set-status', [\App\Http\Controllers\Admin\PlatformLeadController::class, 'setStatus']);
+
+ // 客服中心(工单)- 先做骨架与扩展点埋口
+ Route::get('/support-tickets', [SupportTicketController::class, 'index']);
});
});
diff --git a/tests/Feature/AdminSupportTicketIndexPageShouldRenderTest.php b/tests/Feature/AdminSupportTicketIndexPageShouldRenderTest.php
new file mode 100644
index 0000000..a7ae235
--- /dev/null
+++ b/tests/Feature/AdminSupportTicketIndexPageShouldRenderTest.php
@@ -0,0 +1,32 @@
+seed();
+
+ $this->post('/admin/login', [
+ 'email' => 'platform.admin@demo.local',
+ 'password' => 'Platform@123456',
+ ])->assertRedirect('/admin');
+ }
+
+ public function test_support_ticket_index_page_should_render(): void
+ {
+ $this->loginAsPlatformAdmin();
+
+ $res = $this->get('/admin/support-tickets');
+ $res->assertOk();
+
+ $res->assertSee('客服中心', false);
+ $res->assertSee('工单列表', false);
+ }
+}
diff --git a/tests/Feature/AdminTopNavShouldContainSupportCenterLinkTest.php b/tests/Feature/AdminTopNavShouldContainSupportCenterLinkTest.php
new file mode 100644
index 0000000..56415de
--- /dev/null
+++ b/tests/Feature/AdminTopNavShouldContainSupportCenterLinkTest.php
@@ -0,0 +1,33 @@
+seed();
+
+ $this->post('/admin/login', [
+ 'email' => 'platform.admin@demo.local',
+ 'password' => 'Platform@123456',
+ ])->assertRedirect('/admin');
+ }
+
+ public function test_topnav_should_contain_support_tickets_link(): void
+ {
+ $this->loginAsPlatformAdmin();
+
+ $res = $this->get('/admin');
+ $res->assertOk();
+
+ $res->assertSee('客服中心', false);
+ $res->assertSee('/admin/support-tickets', false);
+ $res->assertSee('工单', false);
+ }
+}