fix: 板块弹窗成分股写死 120 只截断 — 改全量拉取

BoardDialog loadMembers 硬编码 count=120,CPO(205 只)、半导体(185 只)
等大板块的成分股榜永远少一大截。改为 1000(后端单页 80 自动翻页,
拉满后按成员清单自然终止,典型 200 只板块仅 3 个请求);
fetchBoardMembers 缺省值同步对齐。

注:688801 燧原科技 MAC 报价缺前收(pre_close=0),前端已有除零守卫,
属数据源口径而非排序问题。
This commit is contained in:
Justin Gu
2026-09-05 03:41:03 +08:00
parent 7456f81c80
commit 37c732fb30
2 changed files with 8 additions and 3 deletions
+3 -2
View File
@@ -659,10 +659,11 @@ export async function fetchSymbolName(market: string, code: string): Promise<str
}
}
/** 板块成分股(MAC 协议;按涨跌幅排序,列与排行行情同构,做同款归一化)。 */
/** 板块成分股(MAC 协议;按涨跌幅排序,列与排行行情同构,做同款归一化)。
* count 缺省 1000 覆盖最大概念板块(后端单页 80 自动翻页拉满)。 */
export async function fetchBoardMembers(
boardSymbol: string,
count = 100,
count = 1000,
sortOrder: 'DESC' | 'ASC' = 'DESC',
): Promise<RankRow[]> {
const params = new URLSearchParams({
+5 -1
View File
@@ -135,11 +135,15 @@ const memberOrder = ref<'DESC' | 'ASC'>('DESC')
const membersError = ref('')
const membersLoading = ref(false)
// 全量拉取成分股(此前写死 120,大板块如 CPO 205 只/半导体 185 只被截断)。
// 后端单页 80 自动翻页,1000 覆盖最大概念板块,拉满后按成员清单自然终止。
const MEMBER_FETCH_COUNT = 1000
async function loadMembers() {
membersLoading.value = true
membersError.value = ''
try {
members.value = await fetchBoardMembers(props.code, 120, memberOrder.value)
members.value = await fetchBoardMembers(props.code, MEMBER_FETCH_COUNT, memberOrder.value)
} catch (e) {
members.value = []
membersError.value = formatError(e)