提交
This commit is contained in:
@@ -420,6 +420,9 @@ const filteredItems = computed(() => {
|
||||
(it) => it.ts_code.toLowerCase().includes(q) || it.name.toLowerCase().includes(q),
|
||||
);
|
||||
});
|
||||
// 渲染截断:概念板块宽基可到 5555 只成分,全进 DOM 会卡;搜索可收敛,键盘 ↑/↓ 不受影响
|
||||
const ITEM_RENDER_CAP = 300;
|
||||
const shownItems = computed(() => filteredItems.value.slice(0, ITEM_RENDER_CAP));
|
||||
|
||||
const activeItem = computed(
|
||||
() => props.items.find((it) => it.ts_code === active.value) ?? null,
|
||||
@@ -628,7 +631,7 @@ const fmtListDate = (s?: string | null) => (s && s.length === 8 ? `${s.slice(0,
|
||||
</div>
|
||||
<div class="min-h-0 flex-1 overflow-y-auto">
|
||||
<button
|
||||
v-for="it in filteredItems"
|
||||
v-for="it in shownItems"
|
||||
:key="it.ts_code"
|
||||
type="button"
|
||||
class="flex w-full items-center gap-2 border-b border-[#1E2026] px-3 py-2 text-left transition-colors"
|
||||
@@ -647,6 +650,9 @@ const fmtListDate = (s?: string | null) => (s && s.length === 8 ? `${s.slice(0,
|
||||
</span>
|
||||
</button>
|
||||
<div v-if="filteredItems.length === 0" class="px-3 py-8 text-center text-[13px] text-[#9BA3AE]">无匹配</div>
|
||||
<div v-else-if="filteredItems.length > ITEM_RENDER_CAP" class="px-3 py-2 text-center text-[11px] text-[#6B7280]">
|
||||
共 {{ filteredItems.length.toLocaleString() }} 只,仅显示前 {{ ITEM_RENDER_CAP }} · 用上方搜索收敛
|
||||
</div>
|
||||
</div>
|
||||
<div class="border-t border-[#1E2026] px-3 py-2 text-xs text-[#9BA3AE]">共 {{ filteredItems.length }} 只</div>
|
||||
</aside>
|
||||
|
||||
Reference in New Issue
Block a user