reason

显示我的作品

import 'dart:convert';
import 'package:Parlando/generated/json/base/json_field.dart';
import 'package:Parlando/generated/json/my_videos_entity.g.dart';
@JsonSerializable()
class MyVideosEntity {
String? status;
int? code;
String? message;
List<MyVideosData>? data;
MyVideosError? error;
MyVideosEntity();
factory MyVideosEntity.fromJson(Map<String, dynamic> json) =>
$MyVideosEntityFromJson(json);
Map<String, dynamic> toJson() => $MyVideosEntityToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MyVideosData {
int? id;
@JSONField(name: "user_id")
int? userId;
String? title;
String? content;
String? url;
int? type;
String? duration;
String? size;
@JSONField(name: "poem_id")
int? poemId;
@JSONField(name: "temp_id")
int? tempId;
String? thumbnail;
dynamic bgm;
String? praise;
String? view;
String? collect;
String? share;
String? comment;
String? state;
@JSONField(name: "is_publish")
String? isPublish;
@JSONField(name: "is_check")
String? isCheck;
@JSONField(name: "created_at")
String? createdAt;
@JSONField(name: "updated_at")
String? updatedAt;
MyVideosData();
factory MyVideosData.fromJson(Map<String, dynamic> json) =>
$MyVideosDataFromJson(json);
Map<String, dynamic> toJson() => $MyVideosDataToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class MyVideosError {
MyVideosError();
factory MyVideosError.fromJson(Map<String, dynamic> json) =>
$MyVideosErrorFromJson(json);
Map<String, dynamic> toJson() => $MyVideosErrorToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
import 'package:Parlando/account/models/my_videos_entity.dart';
import 'package:Parlando/account/models/user_entity.dart';
import 'package:Parlando/account/view_models/account_view_model.dart';
import 'package:Parlando/apis/api_response.dart';
import 'package:Parlando/login/login_router.dart';
import 'package:Parlando/net/dio_utils.dart';
import 'package:Parlando/net/http_api.dart';
import 'package:Parlando/res/constant.dart';
import 'package:Parlando/routers/routers.dart';
import 'package:cached_network_image/cached_network_image.dart';
......@@ -12,6 +15,7 @@ import 'package:Parlando/poem/poem_router.dart';
import 'package:Parlando/routers/fluro_navigator.dart';
import 'package:Parlando/setting/setting_router.dart';
import 'package:Parlando/tiktok/style/style.dart';
import 'package:getwidget/getwidget.dart';
import 'package:provider/provider.dart';
import 'package:tapped/tapped.dart';
import 'package:flutter_gen/gen_l10n/Parlando_localizations.dart';
......@@ -35,10 +39,13 @@ class AccountPage extends StatefulWidget {
final Function? onSwitch;
@override
_AccountPageState createState() => _AccountPageState();
AccountPageState createState() => AccountPageState();
}
class _AccountPageState extends State<AccountPage> {
class AccountPageState extends State<AccountPage> {
bool isLoadMyVideos = false;
List<Widget> videos = <Widget>[];
@override
void initState() {
super.initState();
......@@ -48,6 +55,24 @@ class _AccountPageState extends State<AccountPage> {
.setSelectedAccount(null);
Provider.of<AccountViewProvider>(context, listen: false)
.fetchAccountData('0');
isLoadMyVideos = true;
// 加载作品
DioUtils.instance.asyncRequestNetwork<MyVideosEntity>(
Method.get,
HttpApi.myVideos,
params: [],
onSuccess: (data) {
for (MyVideosData each in data!.data!) {
videos.add(_SmallVideo());
}
isLoadMyVideos = false;
setState(() {});
},
onError: (code, msg) {
isLoadMyVideos = false;
},
);
} else {
NavigatorUtils.push(context, LoginRouter.loginPage, replace: true);
}
......@@ -61,7 +86,7 @@ class _AccountPageState extends State<AccountPage> {
case Status.LOADING:
return const Center(child: CircularProgressIndicator());
case Status.COMPLETED:
UserData _user = apiResponse.data as UserData;
UserData user = apiResponse.data as UserData;
Widget likeButton = Container(
color: ColorPlate.white,
child: Row(
......@@ -105,16 +130,13 @@ class _AccountPageState extends State<AccountPage> {
placeholder: (context, url) =>
const CircularProgressIndicator(),
errorWidget: (context, url, error) => const Icon(Icons.error),
imageUrl: _user.avatar!,
imageUrl: user.avatar!,
),
),
),
),
);
Widget body = ListView(
physics: const BouncingScrollPhysics(
parent: AlwaysScrollableScrollPhysics(),
),
children: <Widget>[
Stack(
alignment: Alignment.bottomLeft,
......@@ -140,6 +162,30 @@ class _AccountPageState extends State<AccountPage> {
},
),
),
Positioned(
right: 5.px,
top: 10.px,
child: Container(
alignment: Alignment.centerRight,
height: 64.px,
width: 64.px,
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
IconButton(
icon: const Icon(
Icons.settings_outlined,
color: Colors.black54,
),
onPressed: () {
NavigatorUtils.push(
context, SettingRouter.settingPage);
},
),
],
),
),
),
],
),
Container(
......@@ -153,7 +199,7 @@ class _AccountPageState extends State<AccountPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
_user.email ?? '@唐宋八大家TOP8',
user.email ?? '@唐宋八大家TOP8',
style: StandardTextStyle.big,
),
Container(height: 8.px),
......@@ -203,7 +249,20 @@ class _AccountPageState extends State<AccountPage> {
),
),
),
const _UserVideoTable(),
SizedBox(
width: double.infinity,
height: 500,
child: isLoadMyVideos
? const GFLoader()
: GridView(
gridDelegate:
const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3, //横轴三个子widget
childAspectRatio: 1.0 //宽高比为1时,子widget
),
children: videos,
),
),
],
),
),
......@@ -211,44 +270,7 @@ class _AccountPageState extends State<AccountPage> {
);
return Scaffold(
body: Container(
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/images/poem/poem_background.png"),
fit: BoxFit.fill,
),
),
child: Stack(
alignment: Alignment.topCenter,
children: <Widget>[
Container(
margin: const EdgeInsets.only(top: 500),
height: double.infinity,
width: double.infinity,
color: ColorPlate.white,
),
body,
Container(
alignment: Alignment.centerRight,
height: 64.px,
width: double.infinity,
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
IconButton(
icon: const Icon(
Icons.settings_outlined,
color: Colors.black54,
),
onPressed: () {
NavigatorUtils.push(
context, SettingRouter.settingPage);
},
),
],
),
),
],
),
child: body,
),
bottomNavigationBar: Consumer(
builder: (_, provider, __) {
......@@ -298,7 +320,7 @@ class _AccountPageState extends State<AccountPage> {
);
case Status.ERROR:
return Center(
child: Text('暂时无法获取数据,请稍候再试!' + apiResponse.message.toString()),
child: Text('暂时无法获取数据,请稍候再试!${apiResponse.message}'),
);
case Status.INITIAL:
default:
......@@ -326,14 +348,14 @@ class _MembershipButton extends StatelessWidget {
),
margin: EdgeInsets.all(8.px),
alignment: Alignment.center,
child: Text(
title,
style: const TextStyle(color: ColorPlate.orange),
),
decoration: BoxDecoration(
border: Border.all(color: ColorPlate.orange),
borderRadius: BorderRadius.circular(4.px),
),
child: Text(
title,
style: const TextStyle(color: ColorPlate.orange),
),
);
}
}
......@@ -466,12 +488,11 @@ class _PointSelectTextButton extends StatelessWidget {
final String title;
final Function? onTap;
const _PointSelectTextButton(
this.isSelect,
this.title, {
Key? key,
this.onTap,
}) : super(key: key);
const _PointSelectTextButton(this.isSelect,
this.title, {
Key? key,
this.onTap,
}) : super(key: key);
@override
Widget build(BuildContext context) {
......@@ -481,13 +502,13 @@ class _PointSelectTextButton extends StatelessWidget {
children: <Widget>[
isSelect
? Container(
width: 6.px,
height: 6.px,
decoration: BoxDecoration(
color: ColorPlate.orange,
borderRadius: BorderRadius.circular(3),
),
)
width: 6.px,
height: 6.px,
decoration: BoxDecoration(
color: ColorPlate.orange,
borderRadius: BorderRadius.circular(3),
),
)
: Container(),
Container(
padding: const EdgeInsets.only(left: 2),
......@@ -506,12 +527,11 @@ class TextGroup extends StatelessWidget {
final String title, tag;
final Color? color;
const TextGroup(
this.title,
this.tag, {
Key? key,
this.color,
}) : super(key: key);
const TextGroup(this.title,
this.tag, {
Key? key,
this.color,
}) : super(key: key);
@override
Widget build(BuildContext context) {
......
......@@ -4,6 +4,7 @@
// This file is automatically generated. DO NOT EDIT, all your changes would be lost.
import 'package:flutter/material.dart';
import 'package:Parlando/account/models/my_videos_entity.dart';
import 'package:Parlando/account/models/upload_avatar_entity.dart';
import 'package:Parlando/account/models/user_entity.dart';
import 'package:Parlando/category/models/category_entity.dart';
......@@ -21,6 +22,9 @@ typedef JsonConvertFunction<T> = T Function(Map<String, dynamic> json);
class JsonConvert {
static final Map<String, JsonConvertFunction> _convertFuncMap = {
(MyVideosEntity).toString(): MyVideosEntity.fromJson,
(MyVideosData).toString(): MyVideosData.fromJson,
(MyVideosError).toString(): MyVideosError.fromJson,
(UploadAvatarEntity).toString(): UploadAvatarEntity.fromJson,
(UploadAvatarData).toString(): UploadAvatarData.fromJson,
(UploadAvatarError).toString(): UploadAvatarError.fromJson,
......@@ -38,9 +42,6 @@ class JsonConvert {
(CategoryItemEntity).toString(): CategoryItemEntity.fromJson,
(HomeEntity).toString(): HomeEntity.fromJson,
(HomeData).toString(): HomeData.fromJson,
(HomeDataData).toString(): HomeDataData.fromJson,
(HomeDataMeta).toString(): HomeDataMeta.fromJson,
(HomeDataMetaPagination).toString(): HomeDataMetaPagination.fromJson,
(HomeError).toString(): HomeError.fromJson,
(SettingEntity).toString(): SettingEntity.fromJson,
(SettingData).toString(): SettingData.fromJson,
......@@ -134,6 +135,24 @@ class JsonConvert {
//list is returned by type
static M? _getListChildType<M>(List<Map<String, dynamic>> data) {
if (<MyVideosEntity>[] is M) {
return data
.map<MyVideosEntity>(
(Map<String, dynamic> e) => MyVideosEntity.fromJson(e))
.toList() as M;
}
if (<MyVideosData>[] is M) {
return data
.map<MyVideosData>(
(Map<String, dynamic> e) => MyVideosData.fromJson(e))
.toList() as M;
}
if (<MyVideosError>[] is M) {
return data
.map<MyVideosError>(
(Map<String, dynamic> e) => MyVideosError.fromJson(e))
.toList() as M;
}
if (<UploadAvatarEntity>[] is M) {
return data
.map<UploadAvatarEntity>(
......@@ -225,24 +244,6 @@ class JsonConvert {
.map<HomeData>((Map<String, dynamic> e) => HomeData.fromJson(e))
.toList() as M;
}
if (<HomeDataData>[] is M) {
return data
.map<HomeDataData>(
(Map<String, dynamic> e) => HomeDataData.fromJson(e))
.toList() as M;
}
if (<HomeDataMeta>[] is M) {
return data
.map<HomeDataMeta>(
(Map<String, dynamic> e) => HomeDataMeta.fromJson(e))
.toList() as M;
}
if (<HomeDataMetaPagination>[] is M) {
return data
.map<HomeDataMetaPagination>(
(Map<String, dynamic> e) => HomeDataMetaPagination.fromJson(e))
.toList() as M;
}
if (<HomeError>[] is M) {
return data
.map<HomeError>((Map<String, dynamic> e) => HomeError.fromJson(e))
......
......@@ -15,7 +15,8 @@ HomeEntity $HomeEntityFromJson(Map<String, dynamic> json) {
if (message != null) {
homeEntity.message = message;
}
final HomeData? data = jsonConvert.convert<HomeData>(json['data']);
final List<HomeData>? data =
jsonConvert.convertListNotNull<HomeData>(json['data']);
if (data != null) {
homeEntity.data = data;
}
......@@ -31,126 +32,69 @@ Map<String, dynamic> $HomeEntityToJson(HomeEntity entity) {
data['status'] = entity.status;
data['code'] = entity.code;
data['message'] = entity.message;
data['data'] = entity.data?.toJson();
data['data'] = entity.data?.map((v) => v.toJson()).toList();
data['error'] = entity.error?.toJson();
return data;
}
HomeData $HomeDataFromJson(Map<String, dynamic> json) {
final HomeData homeData = HomeData();
final List<HomeDataData>? data =
jsonConvert.convertListNotNull<HomeDataData>(json['data']);
if (data != null) {
homeData.data = data;
}
final HomeDataMeta? meta = jsonConvert.convert<HomeDataMeta>(json['meta']);
if (meta != null) {
homeData.meta = meta;
}
return homeData;
}
Map<String, dynamic> $HomeDataToJson(HomeData entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['data'] = entity.data?.map((v) => v.toJson()).toList();
data['meta'] = entity.meta?.toJson();
return data;
}
HomeDataData $HomeDataDataFromJson(Map<String, dynamic> json) {
final HomeDataData homeDataData = HomeDataData();
final int? id = jsonConvert.convert<int>(json['id']);
if (id != null) {
homeDataData.id = id;
homeData.id = id;
}
final String? userId = jsonConvert.convert<String>(json['user_id']);
final int? userId = jsonConvert.convert<int>(json['user_id']);
if (userId != null) {
homeDataData.userId = userId;
homeData.userId = userId;
}
final String? title = jsonConvert.convert<String>(json['title']);
if (title != null) {
homeDataData.title = title;
homeData.title = title;
}
final String? content = jsonConvert.convert<String>(json['content']);
if (content != null) {
homeDataData.content = content;
homeData.content = content;
}
final String? url = jsonConvert.convert<String>(json['url']);
if (url != null) {
homeDataData.url = url;
homeData.url = url;
}
final String? type = jsonConvert.convert<String>(json['type']);
final int? type = jsonConvert.convert<int>(json['type']);
if (type != null) {
homeDataData.type = type;
}
final String? duration = jsonConvert.convert<String>(json['duration']);
if (duration != null) {
homeDataData.duration = duration;
}
final String? size = jsonConvert.convert<String>(json['size']);
if (size != null) {
homeDataData.size = size;
homeData.type = type;
}
final String? poemId = jsonConvert.convert<String>(json['poem_id']);
final int? poemId = jsonConvert.convert<int>(json['poem_id']);
if (poemId != null) {
homeDataData.poemId = poemId;
homeData.poemId = poemId;
}
final String? tempId = jsonConvert.convert<String>(json['temp_id']);
final int? tempId = jsonConvert.convert<int>(json['temp_id']);
if (tempId != null) {
homeDataData.tempId = tempId;
}
final String? thumbnail = jsonConvert.convert<String>(json['thumbnail']);
if (thumbnail != null) {
homeDataData.thumbnail = thumbnail;
homeData.tempId = tempId;
}
final String? bgm = jsonConvert.convert<String>(json['bgm']);
if (bgm != null) {
homeDataData.bgm = bgm;
homeData.bgm = bgm;
}
final String? praise = jsonConvert.convert<String>(json['praise']);
if (praise != null) {
homeDataData.praise = praise;
homeData.praise = praise;
}
final String? view = jsonConvert.convert<String>(json['view']);
if (view != null) {
homeDataData.view = view;
homeData.view = view;
}
final String? collect = jsonConvert.convert<String>(json['collect']);
if (collect != null) {
homeDataData.collect = collect;
homeData.collect = collect;
}
final String? share = jsonConvert.convert<String>(json['share']);
if (share != null) {
homeDataData.share = share;
}
final String? comment = jsonConvert.convert<String>(json['comment']);
if (comment != null) {
homeDataData.comment = comment;
}
final String? state = jsonConvert.convert<String>(json['state']);
if (state != null) {
homeDataData.state = state;
}
final String? isPublish = jsonConvert.convert<String>(json['is_publish']);
if (isPublish != null) {
homeDataData.isPublish = isPublish;
homeData.share = share;
}
final String? isCheck = jsonConvert.convert<String>(json['is_check']);
if (isCheck != null) {
homeDataData.isCheck = isCheck;
}
final String? createdAt = jsonConvert.convert<String>(json['created_at']);
if (createdAt != null) {
homeDataData.createdAt = createdAt;
}
final String? updatedAt = jsonConvert.convert<String>(json['updated_at']);
if (updatedAt != null) {
homeDataData.updatedAt = updatedAt;
}
return homeDataData;
return homeData;
}
Map<String, dynamic> $HomeDataDataToJson(HomeDataData entity) {
Map<String, dynamic> $HomeDataToJson(HomeData entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['user_id'] = entity.userId;
......@@ -158,71 +102,13 @@ Map<String, dynamic> $HomeDataDataToJson(HomeDataData entity) {
data['content'] = entity.content;
data['url'] = entity.url;
data['type'] = entity.type;
data['duration'] = entity.duration;
data['size'] = entity.size;
data['poem_id'] = entity.poemId;
data['temp_id'] = entity.tempId;
data['thumbnail'] = entity.thumbnail;
data['bgm'] = entity.bgm;
data['praise'] = entity.praise;
data['view'] = entity.view;
data['collect'] = entity.collect;
data['share'] = entity.share;
data['comment'] = entity.comment;
data['state'] = entity.state;
data['is_publish'] = entity.isPublish;
data['is_check'] = entity.isCheck;
data['created_at'] = entity.createdAt;
data['updated_at'] = entity.updatedAt;
return data;
}
HomeDataMeta $HomeDataMetaFromJson(Map<String, dynamic> json) {
final HomeDataMeta homeDataMeta = HomeDataMeta();
final HomeDataMetaPagination? pagination =
jsonConvert.convert<HomeDataMetaPagination>(json['pagination']);
if (pagination != null) {
homeDataMeta.pagination = pagination;
}
return homeDataMeta;
}
Map<String, dynamic> $HomeDataMetaToJson(HomeDataMeta entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['pagination'] = entity.pagination?.toJson();
return data;
}
HomeDataMetaPagination $HomeDataMetaPaginationFromJson(
Map<String, dynamic> json) {
final HomeDataMetaPagination homeDataMetaPagination =
HomeDataMetaPagination();
final int? total = jsonConvert.convert<int>(json['total']);
if (total != null) {
homeDataMetaPagination.total = total;
}
final int? count = jsonConvert.convert<int>(json['count']);
if (count != null) {
homeDataMetaPagination.count = count;
}
final int? perPage = jsonConvert.convert<int>(json['per_page']);
if (perPage != null) {
homeDataMetaPagination.perPage = perPage;
}
final int? currentPage = jsonConvert.convert<int>(json['current_page']);
if (currentPage != null) {
homeDataMetaPagination.currentPage = currentPage;
}
return homeDataMetaPagination;
}
Map<String, dynamic> $HomeDataMetaPaginationToJson(
HomeDataMetaPagination entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['total'] = entity.total;
data['count'] = entity.count;
data['per_page'] = entity.perPage;
data['current_page'] = entity.currentPage;
return data;
}
......@@ -234,4 +120,4 @@ HomeError $HomeErrorFromJson(Map<String, dynamic> json) {
Map<String, dynamic> $HomeErrorToJson(HomeError entity) {
final Map<String, dynamic> data = <String, dynamic>{};
return data;
}
}
\ No newline at end of file
......
import 'package:Parlando/generated/json/base/json_convert_content.dart';
import 'package:Parlando/account/models/my_videos_entity.dart';
MyVideosEntity $MyVideosEntityFromJson(Map<String, dynamic> json) {
final MyVideosEntity myVideosEntity = MyVideosEntity();
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
myVideosEntity.status = status;
}
final int? code = jsonConvert.convert<int>(json['code']);
if (code != null) {
myVideosEntity.code = code;
}
final String? message = jsonConvert.convert<String>(json['message']);
if (message != null) {
myVideosEntity.message = message;
}
final List<MyVideosData>? data =
jsonConvert.convertListNotNull<MyVideosData>(json['data']);
if (data != null) {
myVideosEntity.data = data;
}
final MyVideosError? error =
jsonConvert.convert<MyVideosError>(json['error']);
if (error != null) {
myVideosEntity.error = error;
}
return myVideosEntity;
}
Map<String, dynamic> $MyVideosEntityToJson(MyVideosEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['status'] = entity.status;
data['code'] = entity.code;
data['message'] = entity.message;
data['data'] = entity.data?.map((v) => v.toJson()).toList();
data['error'] = entity.error?.toJson();
return data;
}
MyVideosData $MyVideosDataFromJson(Map<String, dynamic> json) {
final MyVideosData myVideosData = MyVideosData();
final int? id = jsonConvert.convert<int>(json['id']);
if (id != null) {
myVideosData.id = id;
}
final int? userId = jsonConvert.convert<int>(json['user_id']);
if (userId != null) {
myVideosData.userId = userId;
}
final String? title = jsonConvert.convert<String>(json['title']);
if (title != null) {
myVideosData.title = title;
}
final String? content = jsonConvert.convert<String>(json['content']);
if (content != null) {
myVideosData.content = content;
}
final String? url = jsonConvert.convert<String>(json['url']);
if (url != null) {
myVideosData.url = url;
}
final int? type = jsonConvert.convert<int>(json['type']);
if (type != null) {
myVideosData.type = type;
}
final String? duration = jsonConvert.convert<String>(json['duration']);
if (duration != null) {
myVideosData.duration = duration;
}
final String? size = jsonConvert.convert<String>(json['size']);
if (size != null) {
myVideosData.size = size;
}
final int? poemId = jsonConvert.convert<int>(json['poem_id']);
if (poemId != null) {
myVideosData.poemId = poemId;
}
final int? tempId = jsonConvert.convert<int>(json['temp_id']);
if (tempId != null) {
myVideosData.tempId = tempId;
}
final String? thumbnail = jsonConvert.convert<String>(json['thumbnail']);
if (thumbnail != null) {
myVideosData.thumbnail = thumbnail;
}
final dynamic? bgm = jsonConvert.convert<dynamic>(json['bgm']);
if (bgm != null) {
myVideosData.bgm = bgm;
}
final String? praise = jsonConvert.convert<String>(json['praise']);
if (praise != null) {
myVideosData.praise = praise;
}
final String? view = jsonConvert.convert<String>(json['view']);
if (view != null) {
myVideosData.view = view;
}
final String? collect = jsonConvert.convert<String>(json['collect']);
if (collect != null) {
myVideosData.collect = collect;
}
final String? share = jsonConvert.convert<String>(json['share']);
if (share != null) {
myVideosData.share = share;
}
final String? comment = jsonConvert.convert<String>(json['comment']);
if (comment != null) {
myVideosData.comment = comment;
}
final String? state = jsonConvert.convert<String>(json['state']);
if (state != null) {
myVideosData.state = state;
}
final String? isPublish = jsonConvert.convert<String>(json['is_publish']);
if (isPublish != null) {
myVideosData.isPublish = isPublish;
}
final String? isCheck = jsonConvert.convert<String>(json['is_check']);
if (isCheck != null) {
myVideosData.isCheck = isCheck;
}
final String? createdAt = jsonConvert.convert<String>(json['created_at']);
if (createdAt != null) {
myVideosData.createdAt = createdAt;
}
final String? updatedAt = jsonConvert.convert<String>(json['updated_at']);
if (updatedAt != null) {
myVideosData.updatedAt = updatedAt;
}
return myVideosData;
}
Map<String, dynamic> $MyVideosDataToJson(MyVideosData entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['user_id'] = entity.userId;
data['title'] = entity.title;
data['content'] = entity.content;
data['url'] = entity.url;
data['type'] = entity.type;
data['duration'] = entity.duration;
data['size'] = entity.size;
data['poem_id'] = entity.poemId;
data['temp_id'] = entity.tempId;
data['thumbnail'] = entity.thumbnail;
data['bgm'] = entity.bgm;
data['praise'] = entity.praise;
data['view'] = entity.view;
data['collect'] = entity.collect;
data['share'] = entity.share;
data['comment'] = entity.comment;
data['state'] = entity.state;
data['is_publish'] = entity.isPublish;
data['is_check'] = entity.isCheck;
data['created_at'] = entity.createdAt;
data['updated_at'] = entity.updatedAt;
return data;
}
MyVideosError $MyVideosErrorFromJson(Map<String, dynamic> json) {
final MyVideosError myVideosError = MyVideosError();
return myVideosError;
}
Map<String, dynamic> $MyVideosErrorToJson(MyVideosError entity) {
final Map<String, dynamic> data = <String, dynamic>{};
return data;
}
......@@ -7,7 +7,7 @@ class HomeEntity {
String? status;
int? code;
String? message;
HomeData? data;
List<HomeData>? data;
HomeError? error;
HomeEntity();
......@@ -25,99 +25,29 @@ class HomeEntity {
@JsonSerializable()
class HomeData {
List<HomeDataData>? data;
HomeDataMeta? meta;
HomeData();
factory HomeData.fromJson(Map<String, dynamic> json) =>
$HomeDataFromJson(json);
Map<String, dynamic> toJson() => $HomeDataToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class HomeDataData {
int? id;
@JSONField(name: "user_id")
String? userId;
int? userId;
String? title;
String? content;
String? url;
String? type;
String? duration;
String? size;
int? type;
@JSONField(name: "poem_id")
String? poemId;
int? poemId;
@JSONField(name: "temp_id")
String? tempId;
String? thumbnail;
int? tempId;
String? bgm;
String? praise;
String? view;
String? collect;
String? share;
String? comment;
String? state;
@JSONField(name: "is_publish")
String? isPublish;
@JSONField(name: "is_check")
String? isCheck;
@JSONField(name: "created_at")
String? createdAt;
@JSONField(name: "updated_at")
String? updatedAt;
HomeDataData();
factory HomeDataData.fromJson(Map<String, dynamic> json) =>
$HomeDataDataFromJson(json);
Map<String, dynamic> toJson() => $HomeDataDataToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class HomeDataMeta {
HomeDataMetaPagination? pagination;
HomeDataMeta();
factory HomeDataMeta.fromJson(Map<String, dynamic> json) =>
$HomeDataMetaFromJson(json);
Map<String, dynamic> toJson() => $HomeDataMetaToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class HomeDataMetaPagination {
int? total;
int? count;
@JSONField(name: "per_page")
int? perPage;
@JSONField(name: "current_page")
int? currentPage;
HomeDataMetaPagination();
HomeData();
factory HomeDataMetaPagination.fromJson(Map<String, dynamic> json) =>
$HomeDataMetaPaginationFromJson(json);
factory HomeData.fromJson(Map<String, dynamic> json) =>
$HomeDataFromJson(json);
Map<String, dynamic> toJson() => $HomeDataMetaPaginationToJson(this);
Map<String, dynamic> toJson() => $HomeDataToJson(this);
@override
String toString() {
......@@ -138,4 +68,4 @@ class HomeError {
String toString() {
return jsonEncode(this);
}
}
}
\ No newline at end of file
......
......@@ -10,6 +10,7 @@ class HttpApi {
static const String avatar = 'avatar';
static const String user = 'user';
static const String home = 'home';
static const String myVideos = '/my/videos';
static const String search = 'search/repositories';
static const String subscriptions = 'users/simplezhli/subscriptions';
static const String upload = 'uuc/upload-inco';
......
......@@ -73,12 +73,12 @@ class PoemPageState extends State<PoemPage> with WidgetsBindingObserver {
DioUtils.instance.asyncRequestNetwork<HomeEntity>(
Method.get,
HttpApi.home,
params: [],
params: {'page_size': 80},
onSuccess: (data) {
isLoading = false;
setState(() {});
List<UserVideo> videoDataList = <UserVideo>[];
for (HomeDataData data in data!.data!.data!) {
for (HomeData data in data!.data!) {
videoDataList.add(
UserVideo(
image: '',
......@@ -224,7 +224,7 @@ class PoemPageState extends State<PoemPage> with WidgetsBindingObserver {
Widget poem = TikTokVidePoem(
title: "每日一言",
poem:
"清晨入古寺,初日照高林。\n曲径通幽处,禅房花木深。\n山光悦鸟性,潭影空人心。\n万籁此都寂,但余钟磬音。\n",
"清晨入古寺,初日照高林。\n曲径通幽处,禅房花木深。\n山光悦鸟性,潭影空人心。\n万籁此都寂,但余钟磬音。\n",
author: "----《题破山寺后禅院》常建",
onShowDetail: () {
tkController.animateToPage(TikTokPagePosition.right);
......