23 Commits

Author SHA1 Message Date
clz 7b123ec5f9 refactor: reorganize first page card modules 2026-07-30 16:35:47 +08:00
clz f75936a9bf fix 2026-07-30 13:21:06 +08:00
clz fa28d090aa fix(ai-pick): derive tab count from detail list 2026-07-30 12:40:33 +08:00
clz 6521888224 refactor: reuse shared number formatter for ai pick 2026-07-29 19:25:05 +08:00
clz f905dfef60 refactor(ai-pick): 统一管理页面地址资源 2026-07-28 19:00:38 +08:00
clz f6e6edd367 fix(ai-pick): 补充末行底部分隔线 2026-07-28 16:52:13 +08:00
clz 7419e0ed71 fix(market-ranking): 持久化展开状态 2026-07-28 15:39:44 +08:00
clz 31571e4727 fix(ai-pick): 长表头单行自适应 2026-07-28 15:06:04 +08:00
clz 499b0846d7 fix(market-ranking): 行点击增加item.market null guard,防止undefined时crash 2026-07-28 13:47:05 +08:00
clz 3ed8218f71 fix(ai-pick): 不足3条时表格高度自适应,去掉固定height约束 2026-07-28 13:41:58 +08:00
clz 305fcb9a7c refactor(ai-pick): 主标签背景改用自建色bg_hotlist_orange,与CardHarmoyos/Vue一致 2026-07-28 13:34:55 +08:00
clz c03b17ef98 refactor: 移除冗余transparent_white,统一使用tab_gradient_start 2026-07-28 13:26:28 +08:00
clz 5714291d5b fix(ai-pick): 合约名称去掉layoutWeight,对齐Vue自然宽度策略,让主标签紧跟名称 2026-07-28 11:26:52 +08:00
clz 3dc83c4a3f revert: ai-pick主合约标签间距恢复space:5(Vue ml-10rpx@750设计宽度等价于5vp) 2026-07-28 11:24:05 +08:00
clz b2b203920f fix(ai-pick): 主合约标签间距对齐Vue——space:5改为margin({left:10}) 2026-07-28 11:19:52 +08:00
clz d5ca2ba23f fix(market-ranking): 最新价格式化与涨跌色对齐商品期权
- 去掉 formatPrice 的 .toFixed(2),改为直接显示原始数值
- 平盘/无值颜色从 price_even 改为 elements_text_primary_02,与商品期权 getPriceColor 逻辑一致
2026-07-28 11:16:43 +08:00
clz da66f7233d fix(ai-pick): complete quote handling and component organization 2026-07-27 20:53:52 +08:00
clz 0e5a82c518 remove localized AI Pick strings from HAR
Keep AI Pick and card explanation strings only in the base resource bundle so the HAR does not maintain locale-specific copies that belong to the host application.
2026-07-27 19:51:54 +08:00
clz f57a0c3ebb fix card gradients and AI Pick tag alignment
Use a theme-qualified tab gradient start color in both AI Pick and market ranking so the fade no longer introduces a white tint in dark mode.

Add light and dark resource variants, and wrap AI Pick strategy tags in a fixed-height centered container while preserving single-line ellipsis behavior.
2026-07-27 19:34:13 +08:00
clz 10dc2787df add AI pick card 2026-07-27 17:22:29 +08:00
clz 30d9154086 fix market ranking state and quote rendering 2026-07-27 15:19:28 +08:00
clz 5af37bfa51 fix market ranking display fallbacks 2026-07-27 10:31:22 +08:00
clz af0025ce38 Initial commit: @b2c/first_page HarmonyOS stage-mode HAR
## Repository
- HarmonyOS stage-mode HAR module, consumed by host app
- No standalone build — hvigorw, oh_modules, and ../biz_quote absent here

## Architecture
### Feed Cards
- FirstPage.createNodeView dispatches cards by FirstPageConstant.KEY_*
- Card config from first_page_cards_config.json loaded by FirstPageCardsConfigLoader
- Public entrypoint: Index.ets

### Market Ranking (src/main/ets/market-ranking/)
- HTTP: MarketRankingDataFetcher fetches recommend_futures contracts
- HQ: MarketRankingHqRequestClient subscribes via 4106/frame 2201/scenario qht_qihuo_sort
- TCP reconnect rebuilds subscription from original HTTP contract list
- Async callbacks guarded by request/subscription versions

### Other Cards
- HotList, CommodityOptions, AiDiagnosis, AiRiseFall, SelfSelectedStock, CustomEntryList, FourEntryList
- Each has DataFetcher + HQ request client + NodeComponent

## Key Changes (from CardHarmonyOS reference)
- Added MetricId, PeriodId, SortOrder enums (MarketRankingModels.ets)
- Replaced string comparisons with enum switches in thirdColumnTitle/Value/Color
- Removed redundant undefined guards in thirdColumnColor/priceColor, delegated to riseFallColor
- Inlined priceColor(), use riseFallColor directly
- Tab bar Stack.height(30), Alignment.End (reverted from 46/TopEnd)
- Name column fontWeight removed (default regular)
2026-07-26 01:13:28 +08:00