feat: 搜索专栏

This commit is contained in:
guozhigq
2023-09-19 00:06:00 +08:00
parent 9f4b928257
commit 97fa047c60
5 changed files with 18 additions and 7 deletions

View File

@ -89,9 +89,9 @@ class SearchHttp {
case SearchType.media_bangumi:
data = SearchMBangumiModel.fromJson(res.data['data']);
break;
// case SearchType.article:
// data = SearchArticleModel.fromJson(res.data['data']);
// break;
case SearchType.article:
data = SearchArticleModel.fromJson(res.data['data']);
break;
}
return {
'status': true,

View File

@ -17,7 +17,7 @@ enum SearchType {
// 用户bili_user
bili_user,
// 专栏article
// article,
article,
// 相簿photo
// photo
}

View File

@ -397,6 +397,7 @@ class SearchArticleItemModel {
this.pubTime,
this.like,
this.title,
this.subTitle,
this.rankOffset,
this.mid,
this.imageUrls,
@ -414,6 +415,7 @@ class SearchArticleItemModel {
int? pubTime;
int? like;
List? title;
String? subTitle;
int? rankOffset;
int? mid;
List? imageUrls;
@ -431,6 +433,7 @@ class SearchArticleItemModel {
pubTime = json['pub_time'];
like = json['like'];
title = Em.regTitle(json['title']);
subTitle = json['title'].replaceAll(RegExp(r'<[^>]*>'), '');
rankOffset = json['rank_offset'];
mid = json['mid'];
imageUrls = json['image_urls'];

View File

@ -91,8 +91,8 @@ class _SearchPanelState extends State<SearchPanel>
return searchUserPanel(context, ctr, list);
case SearchType.live_room:
return searchLivePanel(context, ctr, list);
// case SearchType.article:
// return searchArticlePanel(context, ctr, list);
case SearchType.article:
return searchArticlePanel(context, ctr, list);
default:
return const SizedBox();
}

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:pilipala/common/constants.dart';
import 'package:pilipala/common/widgets/network_img_layer.dart';
import 'package:pilipala/utils/utils.dart';
@ -12,7 +13,14 @@ Widget searchArticlePanel(BuildContext context, ctr, list) {
itemCount: list.length,
itemBuilder: (context, index) {
return InkWell(
onTap: () {},
onTap: () {
Get.toNamed('/htmlRender', parameters: {
'url': 'www.bilibili.com/read/cv${list[index].id}',
'title': list[index].subTitle,
'id': 'cv${list[index].id}',
'dynamicType': 'read'
});
},
child: Padding(
padding: const EdgeInsets.fromLTRB(
StyleString.safeSpace, 5, StyleString.safeSpace, 5),