fix: all music achievement (#2363)

* fix: all music achievement

* remove empty space [skip ci]

---------

Co-authored-by: dom <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2026-06-09 02:04:09 +00:00
committed by GitHub
parent 22fc256d8a
commit 75bbe5ab5a
3 changed files with 29 additions and 31 deletions

View File

@@ -82,26 +82,21 @@ class PBadge extends StatelessWidget {
color = theme.onSurfaceVariant;
}
late EdgeInsets paddingStyle = const EdgeInsets.symmetric(
vertical: 2,
horizontal: 3,
);
BorderRadius br = size == PBadgeSize.small
? const BorderRadius.all(Radius.circular(3))
: const BorderRadius.all(Radius.circular(4));
late EdgeInsets paddingStyle = const .symmetric(vertical: 2, horizontal: 3);
final BorderRadius br = size == .small
? const .all(.circular(3))
: const .all(.circular(4));
Widget content = Container(
padding: padding ?? paddingStyle,
decoration: BoxDecoration(
borderRadius: br,
color: bgColor,
border: Border.all(color: borderColor),
border: .all(color: borderColor),
),
child: Text(
text!,
textScaler: textScaleFactor != null
? TextScaler.linear(textScaleFactor!)
: null,
textScaler: textScaleFactor != null ? .linear(textScaleFactor!) : null,
style: TextStyle(
height: 1,
fontSize: fontSize,

View File

@@ -15,7 +15,7 @@ class MusicDetail {
required this.album,
required this.artistsList,
required this.listenPv,
required this.musicRank,
required this.achievement,
required this.hotSongHeat,
required this.musicComment,
required this.musicRelation,
@@ -26,7 +26,7 @@ class MusicDetail {
final String? originArtist;
final String? originArtistList;
final int? mvAid;
final int? mvCid;
final int mvCid;
final String? mvBvid;
final String? mvCover;
bool? wishListen;
@@ -35,7 +35,7 @@ class MusicDetail {
final String? album;
final List<Artist>? artistsList;
final int? listenPv;
final String? musicRank;
final List<String> achievement;
final HotSongHeat? hotSongHeat;
final MusicComment? musicComment;
final int? musicRelation;
@@ -47,7 +47,7 @@ class MusicDetail {
originArtist: json["origin_artist"],
originArtistList: json["origin_artist_list"],
mvAid: json["mv_aid"],
mvCid: json["mv_cid"],
mvCid: json["mv_cid"] ?? 0,
mvBvid: json["mv_bvid"],
mvCover: json["mv_cover"],
wishListen: json["wish_listen"],
@@ -58,7 +58,11 @@ class MusicDetail {
?.map((x) => Artist.fromJson(x))
.toList(),
listenPv: json["listen_pv"],
musicRank: json["music_rank"],
achievement: [
...?json["achievement"],
?json["music_rank"],
?json["recreation_rank"],
],
hotSongHeat: json["hot_song_heat"] == null
? null
: HotSongHeat.fromJson(json["hot_song_heat"]),

View File

@@ -9,7 +9,6 @@ import 'package:PiliPlus/common/widgets/image_viewer/hero.dart';
import 'package:PiliPlus/common/widgets/marquee.dart';
import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/music.dart';
import 'package:PiliPlus/models/common/badge_type.dart';
import 'package:PiliPlus/models/common/image_preview_type.dart';
import 'package:PiliPlus/models/common/image_type.dart';
import 'package:PiliPlus/models_new/music/bgm_detail.dart';
@@ -489,35 +488,35 @@ class _MusicDetailPageState extends CommonDynPageState<MusicDetailPage> {
Wrap(
spacing: 16,
children: [
if (!item.musicRank.isNullOrEmpty)
PBadge(
text: item.musicRank,
type: PBadgeType.secondary,
isStack: false,
fontSize: 11,
),
if (item.mvCid != null && item.mvCid != 0)
if (item.achievement.isNotEmpty)
for (var i in item.achievement)
if (i.isNotEmpty)
PBadge(
text: i,
type: .secondary,
isStack: false,
fontSize: 11,
),
if (item.mvCid != 0)
GestureDetector(
onTap: () => PageUtils.toVideoPage(
bvid: item.mvBvid,
cid: item.mvCid!,
cid: item.mvCid,
aid: item.mvAid,
),
child: DecoratedBox(
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(
Radius.circular(4),
),
borderRadius: const .all(.circular(4)),
color: theme.colorScheme.secondaryContainer
.withValues(alpha: 0.5),
),
child: Padding(
padding: const EdgeInsets.symmetric(
padding: const .symmetric(
vertical: 3,
horizontal: 4,
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisSize: .min,
children: [
Icon(
Icons.play_circle_outline,