From 4f438d0dc58fda5b4eaf9099286b20561e754987 Mon Sep 17 00:00:00 2001 From: hzm <934585316@qq.com> Date: Fri, 20 Mar 2026 08:20:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8E=92=E5=BA=8F=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=8C=89=E6=98=A8=E6=97=A5=E6=B6=A8=E5=B9=85=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/page.jsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/page.jsx b/app/page.jsx index b6ad52b..e3e0dad 100644 --- a/app/page.jsx +++ b/app/page.jsx @@ -167,6 +167,8 @@ export default function HomePage() { { id: 'default', label: '默认', enabled: true }, // 估值涨幅为原始名称,“涨跌幅”为别名 { id: 'yield', label: '估值涨幅', alias: '涨跌幅', enabled: true }, + // 昨日涨幅排序:默认隐藏 + { id: 'yesterdayIncrease', label: '昨日涨幅', enabled: false }, // 持仓金额排序:默认隐藏 { id: 'holdingAmount', label: '持仓金额', enabled: false }, { id: 'holding', label: '持有收益', enabled: true }, @@ -174,7 +176,7 @@ export default function HomePage() { ]; // 排序状态 - const [sortBy, setSortBy] = useState('default'); // default, name, yield, holding, holdingAmount + const [sortBy, setSortBy] = useState('default'); // default, name, yield, yesterdayIncrease, holding, holdingAmount const [sortOrder, setSortOrder] = useState('desc'); // asc | desc const [isSortLoaded, setIsSortLoaded] = useState(false); const [sortRules, setSortRules] = useState(DEFAULT_SORT_RULES); @@ -686,6 +688,19 @@ export default function HomePage() { const amountB = pb?.amount ?? Number.NEGATIVE_INFINITY; return sortOrder === 'asc' ? amountA - amountB : amountB - amountA; } + if (sortBy === 'yesterdayIncrease') { + const valA = Number(a.zzl); + const valB = Number(b.zzl); + const hasA = Number.isFinite(valA); + const hasB = Number.isFinite(valB); + + // 无昨日涨幅数据(界面展示为 `—`)的基金统一排在最后 + if (!hasA && !hasB) return 0; + if (!hasA) return 1; + if (!hasB) return -1; + + return sortOrder === 'asc' ? valA - valB : valB - valA; + } if (sortBy === 'holding') { const pa = getHoldingProfit(a, holdings[a.code]); const pb = getHoldingProfit(b, holdings[b.code]);