chore(admin-dashboard): add tooltips for mini rank/share names
This commit is contained in:
@@ -196,6 +196,8 @@
|
||||
name.className = 'adm-mini-rank-name';
|
||||
var mname = (p && p.name) ? String(p.name) : ('#' + (idx + 1));
|
||||
name.textContent = mname;
|
||||
// tooltip:显示完整名称(避免 ellipsis 后看不到)
|
||||
name.title = mname;
|
||||
|
||||
var wrap = document.createElement('div');
|
||||
wrap.className = 'adm-mini-rank-bar-wrap';
|
||||
@@ -210,7 +212,8 @@
|
||||
val.className = 'adm-mini-rank-value';
|
||||
val.textContent = '¥' + formatMoney(paid);
|
||||
|
||||
row.title = 'Top' + (idx + 1) + ':已付 ¥' + formatMoney(paid) + ',订单数 ' + String(p && p.count != null ? p.count : 0);
|
||||
var cntText = String(p && p.count != null ? p.count : 0);
|
||||
row.title = 'Top' + (idx + 1) + ':' + mname + '|已付 ¥' + formatMoney(paid) + '|订单数 ' + cntText;
|
||||
|
||||
row.appendChild(name);
|
||||
row.appendChild(wrap);
|
||||
@@ -259,6 +262,8 @@
|
||||
name.className = 'adm-mini-share-name';
|
||||
var pname = (p && p.name) ? String(p.name) : ('#' + (idx + 1));
|
||||
name.textContent = pname;
|
||||
// tooltip:显示完整名称(避免 ellipsis 后看不到)
|
||||
name.title = pname;
|
||||
|
||||
var wrap = document.createElement('div');
|
||||
wrap.className = 'adm-mini-share-bar-wrap';
|
||||
@@ -273,7 +278,7 @@
|
||||
val.className = 'adm-mini-share-value';
|
||||
val.textContent = formatPct(ratio, 1) + '%';
|
||||
|
||||
row.title = 'Top' + (idx + 1) + ':' + cnt + ' 单,占比 ' + formatPct(ratio, 1) + '%';
|
||||
row.title = 'Top' + (idx + 1) + ':' + pname + '|' + cnt + ' 单|占比 ' + formatPct(ratio, 1) + '%';
|
||||
|
||||
row.appendChild(name);
|
||||
row.appendChild(wrap);
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
class AdminDashboardMiniRankAndShareShouldIncludeNameTooltipsTest 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_js_should_set_title_for_mini_rank_and_share_names(): void
|
||||
{
|
||||
$this->loginAsPlatformAdmin();
|
||||
|
||||
// 页面可访问即可(确保 admin.js 会被加载的整体链路没断)
|
||||
$this->get('/admin')->assertOk();
|
||||
|
||||
$js = (string) file_get_contents(public_path('js/admin.js'));
|
||||
|
||||
// 护栏:mini rank / mini share 的 name 节点应设置 title(用于 ellipsis 后查看完整名称)
|
||||
$this->assertStringContainsString("name.title = mname", $js);
|
||||
$this->assertStringContainsString("name.title = pname", $js);
|
||||
|
||||
// 护栏:排行/占比行 title 应包含名称(让 hover 提示更可读)
|
||||
$this->assertStringContainsString("':' + mname + '|已付 ¥'", $js);
|
||||
$this->assertStringContainsString("':' + pname + '|'", $js);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user