From 9f6a0c642be0c2875c024f6baa2a5a038afd70f6 Mon Sep 17 00:00:00 2001 From: clz Date: Tue, 21 Jul 2026 19:46:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=B8=B8=E9=87=8F?= =?UTF-8?q?=E4=B8=BA=E5=8D=95=E7=8B=AC=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/ets/market-ranking/MarketRanking.ets | 17 +++++++++-------- .../ets/market-ranking/MarketRankingModel.ets | 4 ++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/entry/src/main/ets/market-ranking/MarketRanking.ets b/entry/src/main/ets/market-ranking/MarketRanking.ets index 920d9c6..d735f20 100644 --- a/entry/src/main/ets/market-ranking/MarketRanking.ets +++ b/entry/src/main/ets/market-ranking/MarketRanking.ets @@ -1,6 +1,7 @@ import { PeriodRange, RankItem, TabMetric } from './MarketRankingTypes'; import { MarketRankingModel } from './MarketRankingModel'; import { formatGreatNumber, formatPercent, riseFallColor } from '../common/NumberFormat'; +import { PERIOD_RANGES, TAB_METRICS } from './MarketRankingConstant'; const NORMAL_SIZE = 3; const MAX_SIZE = 5; @@ -15,9 +16,9 @@ export struct MarketRanking { // 第三列标题随 Tab 变化 private thirdColumnTitle(): string { - const metric = this.vm.tabMetrics[this.primaryIdx]; + const metric = TAB_METRICS[this.primaryIdx]; if (metric.hasChildren) { - return `${this.vm.periodRanges[this.secondaryIdx].label}${metric.label}`; + return `${PERIOD_RANGES[this.secondaryIdx].label}${metric.label}`; } if (metric.id === 'rise' || metric.id === 'fall') { return '涨跌幅'; @@ -27,13 +28,13 @@ export struct MarketRanking { // 成交额/日增仓列用中性色,其余按涨跌上色 private isNeutralColumn(): boolean { - const id = this.vm.tabMetrics[this.primaryIdx].id; + const id = TAB_METRICS[this.primaryIdx].id; return id === 'turnOver' || id === 'increPosit'; } // 第三列展示值:按当前一级 Tab 从对应原始字段取值并格式化 private thirdColumnValue(item: RankItem): string { - const id = this.vm.tabMetrics[this.primaryIdx].id; + const id = TAB_METRICS[this.primaryIdx].id; if (id === 'turnOver') { return formatGreatNumber(item.turnover); } @@ -51,7 +52,7 @@ export struct MarketRanking { if (this.isNeutralColumn()) { return $r('app.color.text_primary'); } - const id = this.vm.tabMetrics[this.primaryIdx].id; + const id = TAB_METRICS[this.primaryIdx].id; const raw = id === 'riseSpeed' || id === 'fallSpeed' ? item.chg_speed : item.price_chg; return riseFallColor(raw); } @@ -83,7 +84,7 @@ export struct MarketRanking { // 一级 Tab(胶囊按钮,可横向滚动) Scroll() { Row({ space: 8 }) { - ForEach(this.vm.tabMetrics, (metric: TabMetric, index: number) => { + ForEach(TAB_METRICS, (metric: TabMetric, index: number) => { Text(metric.label) .fontSize(14) .fontWeight(this.primaryIdx === index ? FontWeight.Bold : FontWeight.Normal) @@ -108,9 +109,9 @@ export struct MarketRanking { .align(Alignment.Start) // 二级 Tab(仅涨速/跌速出现,右对齐文字 + 分隔线) - if (this.vm.tabMetrics[this.primaryIdx].hasChildren) { + if (TAB_METRICS[this.primaryIdx].hasChildren) { Row() { - ForEach(this.vm.periodRanges, (period: PeriodRange, index: number) => { + ForEach(PERIOD_RANGES, (period: PeriodRange, index: number) => { if (index !== 0) { Divider() .vertical(true) diff --git a/entry/src/main/ets/market-ranking/MarketRankingModel.ets b/entry/src/main/ets/market-ranking/MarketRankingModel.ets index f758853..92edf70 100644 --- a/entry/src/main/ets/market-ranking/MarketRankingModel.ets +++ b/entry/src/main/ets/market-ranking/MarketRankingModel.ets @@ -6,8 +6,8 @@ import { MOCK_RANK_LISTS, MOCK_SPEED_LISTS } from './MarketRankingMock'; // 状态持有 + 编排类; @Observed export class MarketRankingModel { - tabMetrics: TabMetric[] = TAB_METRICS; - periodRanges: PeriodRange[] = PERIOD_RANGES; + private tabMetrics: TabMetric[] = TAB_METRICS; + private periodRanges: PeriodRange[] = PERIOD_RANGES; rankLists: RankItem[][] = MOCK_RANK_LISTS; speedLists: RankItem[][][] = MOCK_SPEED_LISTS;