fix fan/follow params

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-11-07 19:40:32 +08:00
parent 3d1199363b
commit d5bb4bc149
12 changed files with 94 additions and 30 deletions

View File

@@ -14,12 +14,13 @@ class FansController extends FollowTypeController {
@override @override
void init() { void init() {
final Map? args = Get.arguments;
final ownerMid = Accounts.main.mid; final ownerMid = Accounts.main.mid;
final mid = Get.parameters['mid']; final int? mid = args?['mid'];
this.mid = mid != null ? int.parse(mid) : ownerMid; this.mid = mid ?? ownerMid;
isOwner = ownerMid == this.mid; isOwner = ownerMid == this.mid;
if (showName && !isOwner) { if (showName && !isOwner) {
final name = Get.parameters['name']; final String? name = args?['name'];
this.name = RxnString(name); this.name = RxnString(name);
if (name == null) { if (name == null) {
queryUserName(); queryUserName();

View File

@@ -20,13 +20,26 @@ class FansPage extends StatefulWidget {
@override @override
State<FansPage> createState() => _FansPageState(); State<FansPage> createState() => _FansPageState();
static void toFansPage({dynamic mid, String? name}) {
if (mid == null) {
return;
}
Get.toNamed(
'/fan',
arguments: {
'mid': Utils.safeToInt(mid),
'name': name,
},
);
}
} }
class _FansPageState extends FollowTypePageState<FansPage> { class _FansPageState extends FollowTypePageState<FansPage> {
@override @override
late final FansController controller = Get.put( late final FansController controller = Get.put(
FansController(widget.showName), FansController(widget.showName),
tag: Get.parameters['mid'], tag: Get.arguments?['mid']?.toString() ?? Utils.generateRandomString(8),
); );
late final flag = widget.onSelect == null && controller.isOwner; late final flag = widget.onSelect == null && controller.isOwner;

View File

@@ -8,6 +8,7 @@ import 'package:PiliPlus/models_new/follow/list.dart';
import 'package:PiliPlus/pages/follow/child/child_controller.dart'; import 'package:PiliPlus/pages/follow/child/child_controller.dart';
import 'package:PiliPlus/pages/follow/controller.dart'; import 'package:PiliPlus/pages/follow/controller.dart';
import 'package:PiliPlus/pages/follow/widgets/follow_item.dart'; import 'package:PiliPlus/pages/follow/widgets/follow_item.dart';
import 'package:PiliPlus/pages/follow_type/follow_same/view.dart';
import 'package:PiliPlus/pages/share/view.dart' show UserModel; import 'package:PiliPlus/pages/share/view.dart' show UserModel;
import 'package:PiliPlus/utils/utils.dart'; import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -164,8 +165,9 @@ class _FollowChildPageState extends State<FollowChildPage>
), ),
), ),
moreTextButton( moreTextButton(
onTap: () => Get.toNamed( onTap: () => FollowSamePage.toFollowSamePage(
'/sameFollowing?mid=${_followController.mid}&name=${widget.controller?.name.value}', mid: _followController.mid,
name: widget.controller?.name.value,
), ),
color: colorScheme.outline, color: colorScheme.outline,
), ),

View File

@@ -18,14 +18,15 @@ class FollowController extends GetxController with GetTickerProviderStateMixin {
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
final Map? args = Get.arguments;
final ownerMid = Accounts.main.mid; final ownerMid = Accounts.main.mid;
final mid = Get.parameters['mid']; final int? mid = args?['mid'];
this.mid = mid != null ? int.parse(mid) : ownerMid; this.mid = mid ?? ownerMid;
isOwner = ownerMid == this.mid; isOwner = ownerMid == this.mid;
if (isOwner) { if (isOwner) {
queryFollowUpTags(); queryFollowUpTags();
} else { } else {
final name = Get.parameters['name']; final String? name = args?['name'];
this.name = RxnString(name); this.name = RxnString(name);
if (name == null) { if (name == null) {
_queryUserName(); _queryUserName();

View File

@@ -17,6 +17,17 @@ class FollowPage extends StatefulWidget {
@override @override
State<FollowPage> createState() => _FollowPageState(); State<FollowPage> createState() => _FollowPageState();
static void toFollowPage({dynamic mid, String? name}) {
if (mid == null) return;
Get.toNamed(
'/follow',
arguments: {
'mid': Utils.safeToInt(mid),
'name': name,
},
);
}
} }
class _FollowPageState extends State<FollowPage> { class _FollowPageState extends State<FollowPage> {

View File

@@ -20,9 +20,9 @@ abstract class FollowTypeController
void init() { void init() {
final ownerMid = Accounts.main.mid; final ownerMid = Accounts.main.mid;
final mid = Get.parameters['mid']; final Map? args = Get.arguments;
this.mid = mid != null ? int.parse(mid) : ownerMid; mid = args?['mid'] ?? ownerMid;
final name = Get.parameters['name']; final String? name = args?['name'];
this.name = RxnString(name); this.name = RxnString(name);
if (name == null) { if (name == null) {
queryUserName(); queryUserName();

View File

@@ -1,6 +1,7 @@
import 'package:PiliPlus/pages/follow_type/follow_same/controller.dart'; import 'package:PiliPlus/pages/follow_type/follow_same/controller.dart';
import 'package:PiliPlus/pages/follow_type/view.dart'; import 'package:PiliPlus/pages/follow_type/view.dart';
import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -9,13 +10,24 @@ class FollowSamePage extends StatefulWidget {
@override @override
State<FollowSamePage> createState() => _FollowSamePageState(); State<FollowSamePage> createState() => _FollowSamePageState();
static void toFollowSamePage({dynamic mid, String? name}) {
if (mid == null) return;
Get.toNamed(
'/sameFollowing',
arguments: {
'mid': Utils.safeToInt(mid),
'name': name,
},
);
}
} }
class _FollowSamePageState extends FollowTypePageState<FollowSamePage> { class _FollowSamePageState extends FollowTypePageState<FollowSamePage> {
@override @override
final controller = Get.putOrFind( final controller = Get.putOrFind(
FollowSameController.new, FollowSameController.new,
tag: Get.parameters['mid'], tag: Get.arguments?['mid']?.toString() ?? Utils.generateRandomString(8),
); );
@override @override

View File

@@ -1,6 +1,7 @@
import 'package:PiliPlus/pages/follow_type/followed/controller.dart'; import 'package:PiliPlus/pages/follow_type/followed/controller.dart';
import 'package:PiliPlus/pages/follow_type/view.dart'; import 'package:PiliPlus/pages/follow_type/view.dart';
import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -9,13 +10,24 @@ class FollowedPage extends StatefulWidget {
@override @override
State<FollowedPage> createState() => _FollowedPageState(); State<FollowedPage> createState() => _FollowedPageState();
static void toFollowedPage({dynamic mid, String? name}) {
if (mid == null) return;
Get.toNamed(
'/followed',
arguments: {
'mid': Utils.safeToInt(mid),
'name': name,
},
);
}
} }
class _FollowedPageState extends FollowTypePageState<FollowedPage> { class _FollowedPageState extends FollowTypePageState<FollowedPage> {
@override @override
final controller = Get.putOrFind( final controller = Get.putOrFind(
FollowedController.new, FollowedController.new,
tag: Get.parameters['mid'], tag: Get.arguments?['mid']?.toString() ?? Utils.generateRandomString(8),
); );
@override @override

View File

@@ -9,6 +9,9 @@ import 'package:PiliPlus/models_new/space/space/followings_followed_upper.dart';
import 'package:PiliPlus/models_new/space/space/images.dart'; import 'package:PiliPlus/models_new/space/space/images.dart';
import 'package:PiliPlus/models_new/space/space/live.dart'; import 'package:PiliPlus/models_new/space/space/live.dart';
import 'package:PiliPlus/models_new/space/space/pr_info.dart'; import 'package:PiliPlus/models_new/space/space/pr_info.dart';
import 'package:PiliPlus/pages/fan/view.dart';
import 'package:PiliPlus/pages/follow/view.dart';
import 'package:PiliPlus/pages/follow_type/followed/view.dart';
import 'package:PiliPlus/utils/accounts.dart'; import 'package:PiliPlus/utils/accounts.dart';
import 'package:PiliPlus/utils/app_scheme.dart'; import 'package:PiliPlus/utils/app_scheme.dart';
import 'package:PiliPlus/utils/context_ext.dart'; import 'package:PiliPlus/utils/context_ext.dart';
@@ -330,9 +333,9 @@ class UserInfoCard extends StatelessWidget {
: card.likes?.likeNum, : card.likes?.likeNum,
onTap: () { onTap: () {
if (index == 0) { if (index == 0) {
Get.toNamed('/fan?mid=${card.mid}&name=${card.name}'); FansPage.toFansPage(mid: card.mid, name: card.name);
} else if (index == 2) { } else if (index == 2) {
Get.toNamed('/follow?mid=${card.mid}&name=${card.name}'); FollowPage.toFollowPage(mid: card.mid, name: card.name);
} }
}, },
) )
@@ -653,7 +656,7 @@ class UserInfoCard extends StatelessWidget {
], ],
); );
return GestureDetector( return GestureDetector(
onTap: () => Get.toNamed('/followed?mid=${card.mid}&name=${card.name}'), onTap: () => FollowedPage.toFollowedPage(mid: card.mid, name: card.name),
child: child, child: child,
); );
} }

View File

@@ -11,6 +11,8 @@ import 'package:PiliPlus/models/common/image_type.dart';
import 'package:PiliPlus/models/member/info.dart'; import 'package:PiliPlus/models/member/info.dart';
import 'package:PiliPlus/models_new/space/space_archive/item.dart'; import 'package:PiliPlus/models_new/space/space_archive/item.dart';
import 'package:PiliPlus/models_new/video/video_detail/episode.dart'; import 'package:PiliPlus/models_new/video/video_detail/episode.dart';
import 'package:PiliPlus/pages/fan/view.dart';
import 'package:PiliPlus/pages/follow/view.dart';
import 'package:PiliPlus/pages/member_video/widgets/video_card_h_member_video.dart'; import 'package:PiliPlus/pages/member_video/widgets/video_card_h_member_video.dart';
import 'package:PiliPlus/pages/video/controller.dart'; import 'package:PiliPlus/pages/video/controller.dart';
import 'package:PiliPlus/pages/video/introduction/ugc/controller.dart'; import 'package:PiliPlus/pages/video/introduction/ugc/controller.dart';
@@ -289,12 +291,14 @@ class _HorizontalMemberPageState extends State<HorizontalMemberPage> {
: '', : '',
onTap: () { onTap: () {
if (index == 0) { if (index == 0) {
Get.toNamed( FansPage.toFansPage(
'/fan?mid=${widget.mid}&name=${memberInfoModel.name}', mid: widget.mid,
name: memberInfoModel.name,
); );
} else if (index == 2) { } else if (index == 2) {
Get.toNamed( FollowPage.toFollowPage(
'/follow?mid=${widget.mid}&name=${memberInfoModel.name}', mid: widget.mid,
name: memberInfoModel.name,
); );
} }
}, },

View File

@@ -7,6 +7,9 @@ import 'package:PiliPlus/http/search.dart';
import 'package:PiliPlus/models/common/fav_type.dart'; import 'package:PiliPlus/models/common/fav_type.dart';
import 'package:PiliPlus/models/common/video/source_type.dart'; import 'package:PiliPlus/models/common/video/source_type.dart';
import 'package:PiliPlus/pages/audio/view.dart'; import 'package:PiliPlus/pages/audio/view.dart';
import 'package:PiliPlus/pages/fan/view.dart';
import 'package:PiliPlus/pages/follow/view.dart';
import 'package:PiliPlus/pages/follow_type/followed/view.dart';
import 'package:PiliPlus/pages/live/view.dart'; import 'package:PiliPlus/pages/live/view.dart';
import 'package:PiliPlus/pages/rank/view.dart'; import 'package:PiliPlus/pages/rank/view.dart';
import 'package:PiliPlus/pages/subscription_detail/view.dart'; import 'package:PiliPlus/pages/subscription_detail/view.dart';
@@ -486,13 +489,13 @@ abstract final class PiliScheme {
}) { }) {
switch (type) { switch (type) {
case 'follow': case 'follow':
Get.toNamed('/follow?mid=$mid'); FollowPage.toFollowPage(mid: mid);
break; break;
case 'fans': case 'fans':
Get.toNamed('/fan?mid=$mid'); FansPage.toFansPage(mid: mid);
break; break;
case 'followed': case 'followed':
Get.toNamed('/followed?mid=$mid'); FollowedPage.toFollowedPage(mid: mid);
break; break;
default: default:
PageUtils.toDupNamed('/member?mid=$mid', off: off); PageUtils.toDupNamed('/member?mid=$mid', off: off);

View File

@@ -92,15 +92,17 @@ abstract class LoginUtils {
} catch (_) {} } catch (_) {}
try { try {
Get.find<PgcController>( Get.find<PgcController>(tag: HomeTabType.bangumi.name)
tag: HomeTabType.bangumi.name, ..followPage = 1
).queryPgcFollow(); ..followEnd = false
..queryPgcFollow();
} catch (_) {} } catch (_) {}
try { try {
Get.find<PgcController>( Get.find<PgcController>(tag: HomeTabType.cinema.name)
tag: HomeTabType.cinema.name, ..followPage = 1
).queryPgcFollow(); ..followEnd = false
..queryPgcFollow();
} catch (_) {} } catch (_) {}
} }
} else { } else {