• erio's avatar
    feat(channels): aggregate by channel with platform sections + rowspan table · 3cdd5754
    erio authored
    Switch the user-facing 'Available Channels' view from "one row per
    platform" to "one channel row-group with N platform sections".
    
    Backend: userAvailableChannel now holds Platforms []section instead
    of being exploded. buildPlatformSections replaces
    explodeChannelByPlatform with the same per-platform grouping logic.
    
    Frontend: drop the DataTable wrapper for this view and write a
    four-column grid table (渠道名 / 平台 / 分组 / 支持模型) where the
    channel name only renders on the first platform row of each channel —
    visual rowspan without hacking DataTable.
    
    - api/channels.ts: UserChannelPlatformSection + platforms[]
    - AvailableChannelsTable: rewritten as native grid (header + per-
      channel section with hover row highlight)
    - AvailableChannelsView: search now filters platforms sub-array;
      channel-name / description hits still keep the whole channel
    - i18n: add availableChannels.columns.platform (zh/en)
    3cdd5754
channels.ts 1.96 KB