chore(admin-ui): support tickets placeholder uses page header and list card
This commit is contained in:
@@ -4,13 +4,48 @@
|
|||||||
@section('page_title', '客服中心 / 工单')
|
@section('page_title', '客服中心 / 工单')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="card mb-20">
|
<div class="page-header mb-20" data-page="admin.support_tickets">
|
||||||
<p class="muted muted-tight">客服中心(工单)骨架页:用于后续接入“对账异常/退款异常/续费缺订阅”等治理工单闭环。</p>
|
<div class="page-header-main">
|
||||||
<p class="muted">当前阶段仅做信息架构占位与路由/权限/数据模型埋口,避免后续大改。</p>
|
<div>
|
||||||
|
<div class="page-header-title">客服中心 / 工单</div>
|
||||||
|
<div class="page-header-subtitle">用于承接“对账异常 / 退款异常 / 续费缺订阅”等治理工单闭环;当前阶段先把信息架构骨架做稳。</div>
|
||||||
|
</div>
|
||||||
|
<div class="page-header-actions">
|
||||||
|
<span class="muted muted-xs">占位页(后续接入创建/指派/SLA/审计)</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="page-header-meta">
|
||||||
|
<div>当前阶段仅做路由/权限/信息架构埋口,避免后续大改。</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card">
|
<div class="card list-card">
|
||||||
<h3>工单列表(占位)</h3>
|
<div class="list-card-header">
|
||||||
<p class="muted">下一步将接入:筛选(scope/状态/优先级/关联对象)、创建工单、指派、SLA、升级链路与审计。</p>
|
<div>
|
||||||
|
<h3 class="list-card-title">工单列表(占位)</h3>
|
||||||
|
<div class="muted muted-xs mt-6">下一步将接入:筛选(scope/状态/优先级/关联对象)、创建工单、指派、SLA、升级链路与审计。</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="list-card-body">
|
||||||
|
<table class="list-card-table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>ID</th>
|
||||||
|
<th>范围</th>
|
||||||
|
<th>标题</th>
|
||||||
|
<th>优先级</th>
|
||||||
|
<th>状态</th>
|
||||||
|
<th>关联对象</th>
|
||||||
|
<th>创建时间</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="7" class="muted table-empty">暂无工单(占位:后续接入数据模型后展示)</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Feature;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class AdminSupportTicketsIndexShouldUsePageHeaderAndListCardTest extends TestCase
|
||||||
|
{
|
||||||
|
use RefreshDatabase;
|
||||||
|
|
||||||
|
protected function loginAsPlatformAdmin(): void
|
||||||
|
{
|
||||||
|
$this->seed();
|
||||||
|
|
||||||
|
$this->post('/admin/login', [
|
||||||
|
'email' => 'platform.admin@demo.local',
|
||||||
|
'password' => 'Platform@123456',
|
||||||
|
])->assertRedirect('/admin');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_admin_support_tickets_index_should_use_page_header_and_list_card(): void
|
||||||
|
{
|
||||||
|
$this->loginAsPlatformAdmin();
|
||||||
|
|
||||||
|
$response = $this->get('/admin/support-tickets');
|
||||||
|
$response->assertOk();
|
||||||
|
|
||||||
|
// 护栏:占位页也要走统一的 PageHeader + ListCard 骨架,后续加功能不返工。
|
||||||
|
$response->assertSee('page-header', false);
|
||||||
|
$response->assertSee('page-header-title', false);
|
||||||
|
$response->assertSee('page-header-subtitle', false);
|
||||||
|
$response->assertSee('page-header-actions', false);
|
||||||
|
$response->assertSee('page-header-meta', false);
|
||||||
|
|
||||||
|
$response->assertSee('list-card', false);
|
||||||
|
$response->assertSee('list-card-header', false);
|
||||||
|
$response->assertSee('list-card-body', false);
|
||||||
|
$response->assertSee('list-card-table', false);
|
||||||
|
|
||||||
|
$response->assertSee('table-empty', false);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user