fix: 搜索结果类型为课堂时渲染异常

This commit is contained in:
guozhigq
2024-03-09 01:18:26 +08:00
committed by orz12
parent a093ab7eec
commit 538b7031a5
3 changed files with 32 additions and 8 deletions

View File

@@ -37,6 +37,10 @@ class VideoCardH extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final int aid = videoItem.aid; final int aid = videoItem.aid;
final String bvid = videoItem.bvid; final String bvid = videoItem.bvid;
String type = 'video';
try {
type = videoItem.type;
} catch (_) {}
final String heroTag = Utils.makeHeroTag(aid); final String heroTag = Utils.makeHeroTag(aid);
return Stack(children: [ return Stack(children: [
Semantics( Semantics(
@@ -55,6 +59,10 @@ class VideoCardH extends StatelessWidget {
// }, // },
child: InkWell( child: InkWell(
onTap: () async { onTap: () async {
if (type == 'ketang') {
SmartDialog.showToast('课堂视频暂不支持播放');
return;
}
try { try {
final int cid = videoItem.cid ?? final int cid = videoItem.cid ??
await SearchHttp.ab2c(aid: aid, bvid: bvid); await SearchHttp.ab2c(aid: aid, bvid: bvid);
@@ -100,13 +108,20 @@ class VideoCardH extends StatelessWidget {
height: maxHeight, height: maxHeight,
), ),
), ),
PBadge( if (videoItem.duration != 0)
text: PBadge(
Utils.timeFormat(videoItem.duration!), text: Utils.timeFormat(videoItem.duration!),
right: 6.0, right: 6.0,
bottom: 6.0, bottom: 6.0,
type: 'gray', type: 'gray',
), ),
if (type != 'video')
PBadge(
text: type,
left: 6.0,
bottom: 6.0,
type: 'primary',
),
// if (videoItem.rcmdReason != null && // if (videoItem.rcmdReason != null &&
// videoItem.rcmdReason.content != '') // videoItem.rcmdReason.content != '')
// pBadge(videoItem.rcmdReason.content, context, // pBadge(videoItem.rcmdReason.content, context,

View File

@@ -85,7 +85,9 @@ class SearchVideoItemModel {
// title = json['title'].replaceAll(RegExp(r'<.*?>'), ''); // title = json['title'].replaceAll(RegExp(r'<.*?>'), '');
title = Em.regTitle(json['title']); title = Em.regTitle(json['title']);
description = json['description']; description = json['description'];
pic = 'https:${json['pic']}'; pic = json['pic'] != null && json['pic'].startsWith('//')
? 'https:${json['pic']}'
: json['pic'] ?? '';
videoReview = json['video_review']; videoReview = json['video_review'];
pubdate = json['pubdate']; pubdate = json['pubdate'];
senddate = json['senddate']; senddate = json['senddate'];

View File

@@ -130,6 +130,9 @@ class Utils {
return time; return time;
} }
if (time < 3600) { if (time < 3600) {
if (time == 0) {
return time;
}
final int minute = time ~/ 60; final int minute = time ~/ 60;
final double res = time / 60; final double res = time / 60;
if (minute != res) { if (minute != res) {
@@ -167,6 +170,9 @@ class Utils {
// 时间显示刚刚x分钟前 // 时间显示刚刚x分钟前
static String dateFormat(timeStamp, {formatType = 'list'}) { static String dateFormat(timeStamp, {formatType = 'list'}) {
if (timeStamp == 0 || timeStamp == null || timeStamp == '') {
return '';
}
// 当前时间 // 当前时间
int time = (DateTime.now().millisecondsSinceEpoch / 1000).round(); int time = (DateTime.now().millisecondsSinceEpoch / 1000).round();
// 对比 // 对比
@@ -193,6 +199,7 @@ class Utils {
toInt: true, toInt: true,
); );
} }
print('distance: $distance');
if (distance <= 60) { if (distance <= 60) {
return '刚刚'; return '刚刚';
} else if (distance <= 3600) { } else if (distance <= 3600) {