fix:修改常量为单独文件
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import { PeriodRange, RankItem, TabMetric } from './MarketRankingTypes';
|
import { PeriodRange, RankItem, TabMetric } from './MarketRankingTypes';
|
||||||
import { MarketRankingModel } from './MarketRankingModel';
|
import { MarketRankingModel } from './MarketRankingModel';
|
||||||
import { formatGreatNumber, formatPercent, riseFallColor } from '../common/NumberFormat';
|
import { formatGreatNumber, formatPercent, riseFallColor } from '../common/NumberFormat';
|
||||||
|
import { PERIOD_RANGES, TAB_METRICS } from './MarketRankingConstant';
|
||||||
|
|
||||||
const NORMAL_SIZE = 3;
|
const NORMAL_SIZE = 3;
|
||||||
const MAX_SIZE = 5;
|
const MAX_SIZE = 5;
|
||||||
@@ -15,9 +16,9 @@ export struct MarketRanking {
|
|||||||
|
|
||||||
// 第三列标题随 Tab 变化
|
// 第三列标题随 Tab 变化
|
||||||
private thirdColumnTitle(): string {
|
private thirdColumnTitle(): string {
|
||||||
const metric = this.vm.tabMetrics[this.primaryIdx];
|
const metric = TAB_METRICS[this.primaryIdx];
|
||||||
if (metric.hasChildren) {
|
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') {
|
if (metric.id === 'rise' || metric.id === 'fall') {
|
||||||
return '涨跌幅';
|
return '涨跌幅';
|
||||||
@@ -27,13 +28,13 @@ export struct MarketRanking {
|
|||||||
|
|
||||||
// 成交额/日增仓列用中性色,其余按涨跌上色
|
// 成交额/日增仓列用中性色,其余按涨跌上色
|
||||||
private isNeutralColumn(): boolean {
|
private isNeutralColumn(): boolean {
|
||||||
const id = this.vm.tabMetrics[this.primaryIdx].id;
|
const id = TAB_METRICS[this.primaryIdx].id;
|
||||||
return id === 'turnOver' || id === 'increPosit';
|
return id === 'turnOver' || id === 'increPosit';
|
||||||
}
|
}
|
||||||
|
|
||||||
// 第三列展示值:按当前一级 Tab 从对应原始字段取值并格式化
|
// 第三列展示值:按当前一级 Tab 从对应原始字段取值并格式化
|
||||||
private thirdColumnValue(item: RankItem): string {
|
private thirdColumnValue(item: RankItem): string {
|
||||||
const id = this.vm.tabMetrics[this.primaryIdx].id;
|
const id = TAB_METRICS[this.primaryIdx].id;
|
||||||
if (id === 'turnOver') {
|
if (id === 'turnOver') {
|
||||||
return formatGreatNumber(item.turnover);
|
return formatGreatNumber(item.turnover);
|
||||||
}
|
}
|
||||||
@@ -51,7 +52,7 @@ export struct MarketRanking {
|
|||||||
if (this.isNeutralColumn()) {
|
if (this.isNeutralColumn()) {
|
||||||
return $r('app.color.text_primary');
|
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;
|
const raw = id === 'riseSpeed' || id === 'fallSpeed' ? item.chg_speed : item.price_chg;
|
||||||
return riseFallColor(raw);
|
return riseFallColor(raw);
|
||||||
}
|
}
|
||||||
@@ -83,7 +84,7 @@ export struct MarketRanking {
|
|||||||
// 一级 Tab(胶囊按钮,可横向滚动)
|
// 一级 Tab(胶囊按钮,可横向滚动)
|
||||||
Scroll() {
|
Scroll() {
|
||||||
Row({ space: 8 }) {
|
Row({ space: 8 }) {
|
||||||
ForEach(this.vm.tabMetrics, (metric: TabMetric, index: number) => {
|
ForEach(TAB_METRICS, (metric: TabMetric, index: number) => {
|
||||||
Text(metric.label)
|
Text(metric.label)
|
||||||
.fontSize(14)
|
.fontSize(14)
|
||||||
.fontWeight(this.primaryIdx === index ? FontWeight.Bold : FontWeight.Normal)
|
.fontWeight(this.primaryIdx === index ? FontWeight.Bold : FontWeight.Normal)
|
||||||
@@ -108,9 +109,9 @@ export struct MarketRanking {
|
|||||||
.align(Alignment.Start)
|
.align(Alignment.Start)
|
||||||
|
|
||||||
// 二级 Tab(仅涨速/跌速出现,右对齐文字 + 分隔线)
|
// 二级 Tab(仅涨速/跌速出现,右对齐文字 + 分隔线)
|
||||||
if (this.vm.tabMetrics[this.primaryIdx].hasChildren) {
|
if (TAB_METRICS[this.primaryIdx].hasChildren) {
|
||||||
Row() {
|
Row() {
|
||||||
ForEach(this.vm.periodRanges, (period: PeriodRange, index: number) => {
|
ForEach(PERIOD_RANGES, (period: PeriodRange, index: number) => {
|
||||||
if (index !== 0) {
|
if (index !== 0) {
|
||||||
Divider()
|
Divider()
|
||||||
.vertical(true)
|
.vertical(true)
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import { MOCK_RANK_LISTS, MOCK_SPEED_LISTS } from './MarketRankingMock';
|
|||||||
// 状态持有 + 编排类;
|
// 状态持有 + 编排类;
|
||||||
@Observed
|
@Observed
|
||||||
export class MarketRankingModel {
|
export class MarketRankingModel {
|
||||||
tabMetrics: TabMetric[] = TAB_METRICS;
|
private tabMetrics: TabMetric[] = TAB_METRICS;
|
||||||
periodRanges: PeriodRange[] = PERIOD_RANGES;
|
private periodRanges: PeriodRange[] = PERIOD_RANGES;
|
||||||
rankLists: RankItem[][] = MOCK_RANK_LISTS;
|
rankLists: RankItem[][] = MOCK_RANK_LISTS;
|
||||||
speedLists: RankItem[][][] = MOCK_SPEED_LISTS;
|
speedLists: RankItem[][][] = MOCK_SPEED_LISTS;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user