From f6a91760f34010b2881a0f6863200d79a4aa8552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E5=AE=87=E5=AE=81?= Date: Mon, 21 Sep 2026 23:21:09 +0700 Subject: [PATCH] =?UTF-8?q?=E8=A7=92=E6=A0=87=E5=92=8C=E5=8D=A0=E4=BD=8D?= =?UTF-8?q?=E5=9B=BE=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/common/place_holder_logo.webp | Bin 4382 -> 22748 bytes lib/hj_page/drama/drama_list_page.dart | 1 - .../home/home_cell_style/level_mark_chip.dart | 44 ------------------ .../home/home_cell_style/video_hor_cell.dart | 11 ----- .../home_cell_style/video_simple_cell.dart | 14 ------ .../search_video_result_page.dart | 2 - .../widget/common_search_widget.dart | 6 ++- .../col_his_buy_sub_logic.dart | 1 - .../mine_video_cache/video_cache_cell.dart | 1 - lib/hj_utils/free_play_manager.dart | 11 ----- 10 files changed, 5 insertions(+), 86 deletions(-) delete mode 100644 lib/hj_page/home/home_cell_style/level_mark_chip.dart diff --git a/assets/images/common/place_holder_logo.webp b/assets/images/common/place_holder_logo.webp index 2745bd34ad9b3bb47afdde16d169aad0abd38e2e..b4f44127386f88c012413c48ef10404c8f4f7c7d 100644 GIT binary patch literal 22748 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 literal 4382 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 Y0000Q000000001GdS_{7E@N+P0KP;t-~a#s diff --git a/lib/hj_page/drama/drama_list_page.dart b/lib/hj_page/drama/drama_list_page.dart index 7f70c24..1b08e44 100644 --- a/lib/hj_page/drama/drama_list_page.dart +++ b/lib/hj_page/drama/drama_list_page.dart @@ -238,7 +238,6 @@ class _DramaListPageState extends State with UniqueTagMixin { videoModel: model, textLines: 1, coverRightText: model.dramaInfo?.episodeNumberStatus, - showLevelIcon: false, onTap: () => _openDrama(model), onTagTap: (tag) => DramaListPage.toTag(tag), ); diff --git a/lib/hj_page/home/home_cell_style/level_mark_chip.dart b/lib/hj_page/home/home_cell_style/level_mark_chip.dart deleted file mode 100644 index 812cac8..0000000 --- a/lib/hj_page/home/home_cell_style/level_mark_chip.dart +++ /dev/null @@ -1,44 +0,0 @@ -import 'package:flutter/material.dart'; - -import '../../../config/config.dart'; -import '../../../hj_model/video_model.dart'; -import '../../../hj_utils/free_play_manager.dart'; - -/// 封面右上角的售卖角标:免费试看 / 金币 / VIP,三者互斥,都不满足就不占位。 -/// 展不展示还受 ping 下发的 freeMark / coinMark / vipMark 三个开关控制 -class LevelMarkChip extends StatelessWidget { - final VideoModel? videoModel; - - const LevelMarkChip(this.videoModel, {super.key}); - - @override - Widget build(BuildContext context) { - if (videoModel?.freeArea == true) return const SizedBox(); - // 免费试看:ping 免费类角标总开关 freeMark + 实时试看权益(次数用尽即不再展示) - if (Config.freeMark && FreePlayManager().canShowFreeTrialBadge(videoModel)) { - return _chip("免费试看", const Color(0xff141414), const [Color(0xff35DEBC), Color(0xff22BB9C)]); - } - final isCoin = videoModel?.isCoinVideo() == true; - if (isCoin && Config.coinMark) { - return _chip("金币", const Color(0xff8B3E00), const [Color(0xffFFE580), Color(0xffFACC15)]); - } - if (!isCoin && Config.vipMark) { - return _chip("VIP", const Color(0xff141414), const [Color(0xffF8F3AE), Color(0xffDDAC44)]); - } - return const SizedBox(); - } - - Widget _chip(String text, Color textColor, List gradientColors) { - return Container( - padding: const EdgeInsets.symmetric(horizontal: 6), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(2), - gradient: LinearGradient(colors: gradientColors), - ), - child: Text( - text, - style: TextStyle(color: textColor, fontSize: 10, height: 1.6), - ), - ); - } -} diff --git a/lib/hj_page/home/home_cell_style/video_hor_cell.dart b/lib/hj_page/home/home_cell_style/video_hor_cell.dart index ee82437..068d955 100644 --- a/lib/hj_page/home/home_cell_style/video_hor_cell.dart +++ b/lib/hj_page/home/home_cell_style/video_hor_cell.dart @@ -3,10 +3,8 @@ import 'package:tgdj/hj_utils/api_service/common_service.dart'; import 'package:tgdj/hj_utils/screen.dart'; import '../../../hj_model/video_model.dart'; -import '../../../hj_utils/free_play_manager.dart'; import '../../../routers/jump_router.dart'; import '../../../tools_base/widget/net_image_widget.dart'; -import 'level_mark_chip.dart'; import 'package:tgdj/extension/extensions.dart'; /// 横版视频 item:左封面(带售卖角标) + 右标题/收藏数,用在专题的小列表样式 @@ -30,15 +28,6 @@ class VideoHorCell extends StatelessWidget { borderRadius: 4, imageUrl: videoModel?.cover ?? "", ), - Positioned( - right: 6, - top: 6, - // 监听免费次数变化:会话内试看用尽时角标实时刷新,不再残留「免费试看」 - child: ValueListenableBuilder( - valueListenable: FreePlayManager().revision, - builder: (_, __, ___) => LevelMarkChip(videoModel), - ), - ), ], ), 12.sizeBoxW, diff --git a/lib/hj_page/home/home_cell_style/video_simple_cell.dart b/lib/hj_page/home/home_cell_style/video_simple_cell.dart index 3b0bcc5..0df7289 100644 --- a/lib/hj_page/home/home_cell_style/video_simple_cell.dart +++ b/lib/hj_page/home/home_cell_style/video_simple_cell.dart @@ -11,10 +11,8 @@ import 'package:tgdj/tools_base/global_store/store.dart'; import '../../../hj_model/splash/ads_model.dart'; import '../../../hj_model/video_model.dart'; -import '../../../hj_utils/free_play_manager.dart'; import '../../../tools_base/banner/ads_banner_widget.dart'; import '../../../tools_base/widget/net_image_widget.dart'; -import 'level_mark_chip.dart'; /// 竖版视频 item:封面(角标/售卖标/暗网遮罩) + 标题 +(可选)标签/评论数。 /// 命中广告数据时整体换成 [VideoSimpleAdsCell] @@ -29,7 +27,6 @@ class VideoSimpleCell extends StatelessWidget { final double titleFontSize; // 标题字号,小卡场景传小值 final double coverFontSize; // 封面底部播放量/时长字号,小卡场景传小值避免溢出 final String? coverRightText; // 封面右下角文案,默认时长;短剧传「共N集」 - final bool showLevelIcon; // 封面右上角「金币/VIP/免费试看」角标;短剧按集卖,整部剧标一个对不上,传 false final ValueChanged? onTagTap; // 左下角标签点击;短剧跳标签详情 const VideoSimpleCell({ @@ -44,7 +41,6 @@ class VideoSimpleCell extends StatelessWidget { this.titleFontSize = 12, this.coverFontSize = 10, this.coverRightText, - this.showLevelIcon = true, this.onTagTap, }); @@ -134,16 +130,6 @@ class VideoSimpleCell extends StatelessWidget { child: isFromHY ? _buildCoverHYBottom() : _buildCoverNormalBottom(), ), ), - if (showLevelIcon) - Positioned( - right: 6, - top: 6, - // 监听免费次数变化:会话内试看用尽时角标实时刷新,不再残留「免费试看」 - child: ValueListenableBuilder( - valueListenable: FreePlayManager().revision, - builder: (_, __, ___) => LevelMarkChip(videoModel), - ), - ), if (_needVipUnlock) Container( color: Colors.black.withValues(alpha: 0.1), diff --git a/lib/hj_page/home/search_page/search_result_page/search_video_result_page.dart b/lib/hj_page/home/search_page/search_result_page/search_video_result_page.dart index 0805bb6..b186e16 100644 --- a/lib/hj_page/home/search_page/search_result_page/search_video_result_page.dart +++ b/lib/hj_page/home/search_page/search_result_page/search_video_result_page.dart @@ -211,7 +211,6 @@ class _SearchVideoResultPageState extends State { videoModel: model, textLines: 1, coverRightText: model.dramaInfo?.episodeNumberStatus, - showLevelIcon: false, isFromSearch: true, onTap: () => _openDrama(model), ), @@ -299,7 +298,6 @@ class _SearchVideoResultPageState extends State { videoModel: videoModel, textLines: 1, coverRightText: videoModel.dramaInfo?.episodeNumberStatus, - showLevelIcon: false, isFromSearch: true, onTap: () => _openDrama(videoModel), ), diff --git a/lib/hj_page/home/search_page/widget/common_search_widget.dart b/lib/hj_page/home/search_page/widget/common_search_widget.dart index 68fbf68..2a1e86c 100644 --- a/lib/hj_page/home/search_page/widget/common_search_widget.dart +++ b/lib/hj_page/home/search_page/widget/common_search_widget.dart @@ -64,7 +64,11 @@ class _CommonSearchBarViewState extends State { borderRadius: BorderRadius.circular(99), ), child: Config.searchHints.isEmpty - ? Text('请输入关键字', style: _hintStyle) + //父级给的是 36 的紧约束,Text 会撑满高度后从顶部起排,要 Align 压回垂直居中 + ? Align( + alignment: Alignment.centerLeft, + child: Text('请输入关键字', style: _hintStyle), + ) : MarqueeWidget( count: Config.searchHints.length, onIndexChanged: (index) => diff --git a/lib/hj_page/mine/collec_history_buy/col_his_buy_sub_logic.dart b/lib/hj_page/mine/collec_history_buy/col_his_buy_sub_logic.dart index b4fad60..8a42a8e 100644 --- a/lib/hj_page/mine/collec_history_buy/col_his_buy_sub_logic.dart +++ b/lib/hj_page/mine/collec_history_buy/col_his_buy_sub_logic.dart @@ -82,7 +82,6 @@ abstract class ColHisBuySubLogic extends ListBaseLogic { videoModel: model, textLines: 1, coverRightText: (model as VideoModel).dramaInfo?.episodeNumberStatus, - showLevelIcon: false, onTap: () => _openDrama(model), ), }; diff --git a/lib/hj_page/mine/mine_video_cache/video_cache_cell.dart b/lib/hj_page/mine/mine_video_cache/video_cache_cell.dart index 7bbd57a..eecda54 100644 --- a/lib/hj_page/mine/mine_video_cache/video_cache_cell.dart +++ b/lib/hj_page/mine/mine_video_cache/video_cache_cell.dart @@ -149,7 +149,6 @@ class _VideoCacheCellState extends State { //短剧和「热门短剧」橱窗一个样式:标题是剧名,封面右下角标本条是第几集; //按集卖,整部剧标一个金币/VIP 角标对不上,跟橱窗一样关掉 coverRightText: isDrama ? '第${model.episodeNo ?? 1}集' : null, - showLevelIcon: !isDrama, ); } diff --git a/lib/hj_utils/free_play_manager.dart b/lib/hj_utils/free_play_manager.dart index a9bccbc..14fb306 100644 --- a/lib/hj_utils/free_play_manager.dart +++ b/lib/hj_utils/free_play_manager.dart @@ -57,17 +57,6 @@ class FreePlayManager { _bumpRevision(); } - /// 该视频当前是否仍应展示「免费试看」角标(无扣次副作用,供列表实时判断): - /// - 后端未下发该角标:不展示; - /// - 次数未知(remain 未拉到):信任后端下发的角标,避免误隐藏; - /// - 次数已知:仅在还有剩余(>0)时展示,用尽即隐藏(含已试看过的视频,一并回落到真实角标)。 - bool canShowFreeTrialBadge(VideoModel? video) { - if (video?.showFreeTrialBadge != true) return false; - final left = remain?.watchCount; - if (left == null) return true; - return left > 0; - } - /// 尝试消费一次免费观看权益,返回本视频能否免费播放。 /// ⚠️ 有副作用:首次命中会扣次数 + 写本地缓存 + 上报服务端; /// 同一视频再次调用命中 [usedIds] 直接返回 true,不重复扣。