mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-19 23:54:01 +08:00
@@ -2,6 +2,7 @@ import 'package:PiliPlus/http/dynamics.dart';
|
|||||||
import 'package:PiliPlus/http/fav.dart';
|
import 'package:PiliPlus/http/fav.dart';
|
||||||
import 'package:PiliPlus/http/loading_state.dart';
|
import 'package:PiliPlus/http/loading_state.dart';
|
||||||
import 'package:PiliPlus/http/video.dart';
|
import 'package:PiliPlus/http/video.dart';
|
||||||
|
import 'package:PiliPlus/models/common/image_preview_type.dart';
|
||||||
import 'package:PiliPlus/models/dynamics/article_content_model.dart'
|
import 'package:PiliPlus/models/dynamics/article_content_model.dart'
|
||||||
show ArticleContentModel;
|
show ArticleContentModel;
|
||||||
import 'package:PiliPlus/models/dynamics/result.dart';
|
import 'package:PiliPlus/models/dynamics/result.dart';
|
||||||
@@ -43,6 +44,12 @@ class ArticleController extends CommonDynController {
|
|||||||
List<ArticleContentModel>? get opus =>
|
List<ArticleContentModel>? get opus =>
|
||||||
opusData?.modules.moduleContent ?? articleData?.opus?.content;
|
opusData?.modules.moduleContent ?? articleData?.opus?.content;
|
||||||
|
|
||||||
|
List<SourceModel>? _images;
|
||||||
|
List<SourceModel> images() => _images ??= opus!
|
||||||
|
.where((e) => e.paraType == 2 && e.pic != null)
|
||||||
|
.map((e) => SourceModel(url: e.pic!.pics!.first.url!))
|
||||||
|
.toList();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
|
|||||||
@@ -171,6 +171,7 @@ class _ArticlePageState extends CommonDynPageState<ArticlePage> {
|
|||||||
// if (kDebugMode) debugPrint('json page');
|
// if (kDebugMode) debugPrint('json page');
|
||||||
content = OpusContent(
|
content = OpusContent(
|
||||||
opus: controller.opus!,
|
opus: controller.opus!,
|
||||||
|
images: controller.images,
|
||||||
maxWidth: maxWidth,
|
maxWidth: maxWidth,
|
||||||
);
|
);
|
||||||
} else if (controller.opusData?.modules.moduleBlocked != null) {
|
} else if (controller.opusData?.modules.moduleBlocked != null) {
|
||||||
|
|||||||
@@ -33,11 +33,13 @@ import 'package:re_highlight/styles/github.dart';
|
|||||||
|
|
||||||
class OpusContent extends StatelessWidget {
|
class OpusContent extends StatelessWidget {
|
||||||
final List<ArticleContentModel> opus;
|
final List<ArticleContentModel> opus;
|
||||||
|
final ValueGetter<List<SourceModel>> images;
|
||||||
final double maxWidth;
|
final double maxWidth;
|
||||||
|
|
||||||
const OpusContent({
|
const OpusContent({
|
||||||
super.key,
|
super.key,
|
||||||
required this.opus,
|
required this.opus,
|
||||||
|
required this.images,
|
||||||
required this.maxWidth,
|
required this.maxWidth,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -240,9 +242,11 @@ class OpusContent extends StatelessWidget {
|
|||||||
child: child,
|
child: child,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
final images = this.images();
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () => PageUtils.imageView(
|
onTap: () => PageUtils.imageView(
|
||||||
imgList: [SourceModel(url: pic.url!)],
|
imgList: images,
|
||||||
|
initialPage: images.indexWhere((e) => e.url == pic.url),
|
||||||
quality: 60,
|
quality: 60,
|
||||||
),
|
),
|
||||||
child: child,
|
child: child,
|
||||||
|
|||||||
Reference in New Issue
Block a user