reason

clear

import 'dart:convert';
import 'package:Parlando/generated/json/base/json_field.dart';
import 'package:Parlando/generated/json/category_entity.g.dart';
@JsonSerializable()
class CategoryEntity {
String? status;
int? code;
String? message;
CategoryData? data;
CategoryError? error;
CategoryEntity();
factory CategoryEntity.fromJson(Map<String, dynamic> json) =>
$CategoryEntityFromJson(json);
Map<String, dynamic> toJson() => $CategoryEntityToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class CategoryData {
List<CategoryDataData>? data;
CategoryDataMeta? meta;
CategoryData();
factory CategoryData.fromJson(Map<String, dynamic> json) =>
$CategoryDataFromJson(json);
Map<String, dynamic> toJson() => $CategoryDataToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class CategoryDataData {
int? id;
String? title;
String? subtitle;
@JSONField(name: "left_text")
String? leftText;
@JSONField(name: "right_text")
String? rightText;
@JSONField(name: "poem_id")
String? poemId;
String? state;
@JSONField(name: "created_at")
String? createdAt;
@JSONField(name: "updated_at")
String? updatedAt;
CategoryDataDataPoem? poem;
CategoryDataData();
factory CategoryDataData.fromJson(Map<String, dynamic> json) =>
$CategoryDataDataFromJson(json);
Map<String, dynamic> toJson() => $CategoryDataDataToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class CategoryDataDataPoem {
int? id;
String? title;
String? author;
String? content;
String? annotate;
String? spelling;
String? en;
String? state;
@JSONField(name: "created_at")
String? createdAt;
@JSONField(name: "updated_at")
String? updatedAt;
CategoryDataDataPoem();
factory CategoryDataDataPoem.fromJson(Map<String, dynamic> json) =>
$CategoryDataDataPoemFromJson(json);
Map<String, dynamic> toJson() => $CategoryDataDataPoemToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class CategoryDataMeta {
CategoryDataMetaPagination? pagination;
CategoryDataMeta();
factory CategoryDataMeta.fromJson(Map<String, dynamic> json) =>
$CategoryDataMetaFromJson(json);
Map<String, dynamic> toJson() => $CategoryDataMetaToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class CategoryDataMetaPagination {
int? total;
int? count;
@JSONField(name: "per_page")
int? perPage;
@JSONField(name: "current_page")
int? currentPage;
CategoryDataMetaPagination();
factory CategoryDataMetaPagination.fromJson(Map<String, dynamic> json) =>
$CategoryDataMetaPaginationFromJson(json);
Map<String, dynamic> toJson() => $CategoryDataMetaPaginationToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
@JsonSerializable()
class CategoryError {
CategoryError();
factory CategoryError.fromJson(Map<String, dynamic> json) =>
$CategoryErrorFromJson(json);
Map<String, dynamic> toJson() => $CategoryErrorToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
import 'package:Parlando/category/models/category_entity.dart';
import 'package:Parlando/net/dio_utils.dart';
import 'package:Parlando/net/http_api.dart';
import 'package:Parlando/util/toast_utils.dart';
import 'package:flutter/material.dart';
import 'package:Parlando/category/models/category_item_entity.dart';
import 'package:Parlando/category/provider/categories_page_provider.dart';
......@@ -33,71 +37,64 @@ class _CategoryListPageState extends State<CategoryListPage> {
}
Future _onRefresh() async {
await Future.delayed(const Duration(seconds: 2), () {
setState(() {
_page = 1;
_list = [
_list = [];
DioUtils.instance.asyncRequestNetwork<CategoryEntity>(
Method.get,
HttpApi.packPoem,
params: {'page': _page},
onSuccess: (data) {
List<CategoryDataData> list = data!.data!.data!;
for (CategoryDataData each in list) {
_list.add(
CategoryItemEntity(
flag: "此时",
timeLunar: "辛丑牛年 庚子月 乙卯日 辰时",
timeSolar: "2022年01月02日 09点22分",
period: "冬",
poem: "绿蚁新醅酒,红泥小火炉。\n晚来天欲雪,能饮一杯无?",
author: "[唐]白居易《问刘十九》",
flag: each.leftText,
timeLunar: each.title,
timeSolar: each.subtitle,
period: each.rightText,
poem: each.poem!.content,
author: each.poem!.author,
bgImage: "assets/images/category/category_item_bg.jpeg",
),
CategoryItemEntity(
flag: "此地",
timeLunar: "北京 海淀 万泉庄",
period: "京",
poem: "前不见古人,后不见来者。\n念天地之悠悠,独怆然而涕下!",
author: "[唐]陈子昂《登幽州台歌》",
bgImage: "",
),
CategoryItemEntity(
flag: "此乐",
period: "茶",
poem: "坐酌泠泠水,看煎瑟瑟尘。\n无由持一碗,寄与爱茶人。",
author: "[唐]白居易《山泉煎茶有怀》",
bgImage: "",
),
CategoryItemEntity(
flag: "此景",
timeLunar: "辛丑牛年 庚子月 乙卯日 辰时",
timeSolar: "2022年01月02日 09点22分",
period: "天空",
poem:
"夏木多好鸟,偏知反舌名。\n林幽仍共宿,时过即无声。\n竹外天空晓,谿头雨自晴。\n居人宜寂寞,深院益凄清。\n入雾暗相失,当风闲易惊。\n来年上林苑,知尔最先鸣。",
author: "[唐]张籍《徐州试反舌无声》",
bgImage: "",
),
];
});
);
}
_setCategoriesCount(_list.length);
});
setState(() {});
},
onError: (code, msg) {
Toast.show("获取数据失败!");
},
);
}
Future _loadMore() async {
await Future.delayed(const Duration(seconds: 2), () {
setState(() {
_list.addAll(
List.generate(
10,
(i) => CategoryItemEntity(
flag: "此时",
timeLunar: "辛丑牛年 庚子月 乙卯日 辰时",
timeSolar: "2022年01月02日 09点22分",
period: "冬",
poem: "绿蚁新醅酒,红泥小火炉。\n晚来天欲雪,能饮一杯无?",
author: "[唐]白居易《问刘十九》",
bgImage: "",
),
_page++;
DioUtils.instance.asyncRequestNetwork<CategoryEntity>(
Method.get,
HttpApi.packPoem,
params: {'page': _page},
onSuccess: (data) {
List<CategoryDataData> list = data!.data!.data!;
for (CategoryDataData each in list) {
_list.add(
CategoryItemEntity(
flag: each.leftText,
timeLunar: each.title,
timeSolar: each.subtitle,
period: each.rightText,
poem: each.poem!.content,
author: each.poem!.author,
bgImage: "assets/images/category/category_item_bg.jpeg",
),
);
_page++;
});
}
_setCategoriesCount(_list.length);
});
setState(() {});
},
onError: (code, msg) {
Toast.show("获取数据失败!");
},
);
}
void _setCategoriesCount(int count) {
......
......@@ -6,6 +6,7 @@
import 'package:flutter/material.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';
import 'package:Parlando/category/models/category_item_entity.dart';
import 'package:Parlando/home/models/setting_entity.dart';
import 'package:Parlando/login/models/auth_entity.dart';
......@@ -25,6 +26,14 @@ class JsonConvert {
(UserEntity).toString(): UserEntity.fromJson,
(UserData).toString(): UserData.fromJson,
(UserError).toString(): UserError.fromJson,
(CategoryEntity).toString(): CategoryEntity.fromJson,
(CategoryData).toString(): CategoryData.fromJson,
(CategoryDataData).toString(): CategoryDataData.fromJson,
(CategoryDataDataPoem).toString(): CategoryDataDataPoem.fromJson,
(CategoryDataMeta).toString(): CategoryDataMeta.fromJson,
(CategoryDataMetaPagination).toString():
CategoryDataMetaPagination.fromJson,
(CategoryError).toString(): CategoryError.fromJson,
(CategoryItemEntity).toString(): CategoryItemEntity.fromJson,
(SettingEntity).toString(): SettingEntity.fromJson,
(SettingData).toString(): SettingData.fromJson,
......@@ -151,65 +160,153 @@ class JsonConvert {
.map<UserError>((Map<String, dynamic> e) => UserError.fromJson(e))
.toList() as M;
}
if (<CategoryEntity>[] is M) {
return data
.map<CategoryEntity>(
(Map<String, dynamic> e) => CategoryEntity.fromJson(e))
.toList() as M;
}
if (<CategoryData>[] is M) {
return data
.map<CategoryData>(
(Map<String, dynamic> e) => CategoryData.fromJson(e))
.toList() as M;
}
if (<CategoryDataData>[] is M) {
return data
.map<CategoryDataData>(
(Map<String, dynamic> e) => CategoryDataData.fromJson(e))
.toList() as M;
}
if (<CategoryDataDataPoem>[] is M) {
return data
.map<CategoryDataDataPoem>(
(Map<String, dynamic> e) => CategoryDataDataPoem.fromJson(e))
.toList() as M;
}
if (<CategoryDataMeta>[] is M) {
return data
.map<CategoryDataMeta>(
(Map<String, dynamic> e) => CategoryDataMeta.fromJson(e))
.toList() as M;
}
if (<CategoryDataMetaPagination>[] is M) {
return data
.map<CategoryDataMetaPagination>((Map<String, dynamic> e) =>
CategoryDataMetaPagination.fromJson(e))
.toList() as M;
}
if (<CategoryError>[] is M) {
return data
.map<CategoryError>(
(Map<String, dynamic> e) => CategoryError.fromJson(e))
.toList() as M;
}
if (<CategoryItemEntity>[] is M) {
return data.map<CategoryItemEntity>((Map<String, dynamic> e) => CategoryItemEntity.fromJson(e)).toList() as M;
return data
.map<CategoryItemEntity>(
(Map<String, dynamic> e) => CategoryItemEntity.fromJson(e))
.toList() as M;
}
if(<SettingEntity>[] is M){
return data.map<SettingEntity>((Map<String, dynamic> e) => SettingEntity.fromJson(e)).toList() as M;
if (<SettingEntity>[] is M) {
return data
.map<SettingEntity>(
(Map<String, dynamic> e) => SettingEntity.fromJson(e))
.toList() as M;
}
if(<SettingData>[] is M){
return data.map<SettingData>((Map<String, dynamic> e) => SettingData.fromJson(e)).toList() as M;
if (<SettingData>[] is M) {
return data
.map<SettingData>((Map<String, dynamic> e) => SettingData.fromJson(e))
.toList() as M;
}
if(<SettingDataLoginSetting>[] is M){
return data.map<SettingDataLoginSetting>((Map<String, dynamic> e) => SettingDataLoginSetting.fromJson(e)).toList() as M;
if (<SettingDataLoginSetting>[] is M) {
return data
.map<SettingDataLoginSetting>(
(Map<String, dynamic> e) => SettingDataLoginSetting.fromJson(e))
.toList() as M;
}
if(<SettingError>[] is M){
return data.map<SettingError>((Map<String, dynamic> e) => SettingError.fromJson(e)).toList() as M;
if (<SettingError>[] is M) {
return data
.map<SettingError>(
(Map<String, dynamic> e) => SettingError.fromJson(e))
.toList() as M;
}
if(<AuthEntity>[] is M){
return data.map<AuthEntity>((Map<String, dynamic> e) => AuthEntity.fromJson(e)).toList() as M;
if (<AuthEntity>[] is M) {
return data
.map<AuthEntity>((Map<String, dynamic> e) => AuthEntity.fromJson(e))
.toList() as M;
}
if(<AuthData>[] is M){
return data.map<AuthData>((Map<String, dynamic> e) => AuthData.fromJson(e)).toList() as M;
if (<AuthData>[] is M) {
return data
.map<AuthData>((Map<String, dynamic> e) => AuthData.fromJson(e))
.toList() as M;
}
if(<AuthError>[] is M){
return data.map<AuthError>((Map<String, dynamic> e) => AuthError.fromJson(e)).toList() as M;
if (<AuthError>[] is M) {
return data
.map<AuthError>((Map<String, dynamic> e) => AuthError.fromJson(e))
.toList() as M;
}
if(<UploadEntity>[] is M){
return data.map<UploadEntity>((Map<String, dynamic> e) => UploadEntity.fromJson(e)).toList() as M;
if (<UploadEntity>[] is M) {
return data
.map<UploadEntity>(
(Map<String, dynamic> e) => UploadEntity.fromJson(e))
.toList() as M;
}
if(<UploadData>[] is M){
return data.map<UploadData>((Map<String, dynamic> e) => UploadData.fromJson(e)).toList() as M;
if (<UploadData>[] is M) {
return data
.map<UploadData>((Map<String, dynamic> e) => UploadData.fromJson(e))
.toList() as M;
}
if(<UploadError>[] is M){
return data.map<UploadError>((Map<String, dynamic> e) => UploadError.fromJson(e)).toList() as M;
if (<UploadError>[] is M) {
return data
.map<UploadError>((Map<String, dynamic> e) => UploadError.fromJson(e))
.toList() as M;
}
if(<LangSortEntity>[] is M){
return data.map<LangSortEntity>((Map<String, dynamic> e) => LangSortEntity.fromJson(e)).toList() as M;
if (<LangSortEntity>[] is M) {
return data
.map<LangSortEntity>(
(Map<String, dynamic> e) => LangSortEntity.fromJson(e))
.toList() as M;
}
if(<SearchEntity>[] is M){
return data.map<SearchEntity>((Map<String, dynamic> e) => SearchEntity.fromJson(e)).toList() as M;
if (<SearchEntity>[] is M) {
return data
.map<SearchEntity>(
(Map<String, dynamic> e) => SearchEntity.fromJson(e))
.toList() as M;
}
if(<SearchItems>[] is M){
return data.map<SearchItems>((Map<String, dynamic> e) => SearchItems.fromJson(e)).toList() as M;
if (<SearchItems>[] is M) {
return data
.map<SearchItems>((Map<String, dynamic> e) => SearchItems.fromJson(e))
.toList() as M;
}
if(<SearchItemsOwner>[] is M){
return data.map<SearchItemsOwner>((Map<String, dynamic> e) => SearchItemsOwner.fromJson(e)).toList() as M;
if (<SearchItemsOwner>[] is M) {
return data
.map<SearchItemsOwner>(
(Map<String, dynamic> e) => SearchItemsOwner.fromJson(e))
.toList() as M;
}
if(<SearchItemsLicense>[] is M){
return data.map<SearchItemsLicense>((Map<String, dynamic> e) => SearchItemsLicense.fromJson(e)).toList() as M;
if (<SearchItemsLicense>[] is M) {
return data
.map<SearchItemsLicense>(
(Map<String, dynamic> e) => SearchItemsLicense.fromJson(e))
.toList() as M;
}
if(<FriendEntity>[] is M){
return data.map<FriendEntity>((Map<String, dynamic> e) => FriendEntity.fromJson(e)).toList() as M;
if (<FriendEntity>[] is M) {
return data
.map<FriendEntity>(
(Map<String, dynamic> e) => FriendEntity.fromJson(e))
.toList() as M;
}
if(<FriendData>[] is M){
return data.map<FriendData>((Map<String, dynamic> e) => FriendData.fromJson(e)).toList() as M;
if (<FriendData>[] is M) {
return data
.map<FriendData>((Map<String, dynamic> e) => FriendData.fromJson(e))
.toList() as M;
}
debugPrint("${M.toString()} not found");
return null;
}
}
static M? fromJsonAsT<M>(dynamic json) {
if (json is List) {
......
import 'package:Parlando/generated/json/base/json_convert_content.dart';
import 'package:Parlando/category/models/category_entity.dart';
CategoryEntity $CategoryEntityFromJson(Map<String, dynamic> json) {
final CategoryEntity categoryEntity = CategoryEntity();
final String? status = jsonConvert.convert<String>(json['status']);
if (status != null) {
categoryEntity.status = status;
}
final int? code = jsonConvert.convert<int>(json['code']);
if (code != null) {
categoryEntity.code = code;
}
final String? message = jsonConvert.convert<String>(json['message']);
if (message != null) {
categoryEntity.message = message;
}
final CategoryData? data = jsonConvert.convert<CategoryData>(json['data']);
if (data != null) {
categoryEntity.data = data;
}
final CategoryError? error =
jsonConvert.convert<CategoryError>(json['error']);
if (error != null) {
categoryEntity.error = error;
}
return categoryEntity;
}
Map<String, dynamic> $CategoryEntityToJson(CategoryEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['status'] = entity.status;
data['code'] = entity.code;
data['message'] = entity.message;
data['data'] = entity.data?.toJson();
data['error'] = entity.error?.toJson();
return data;
}
CategoryData $CategoryDataFromJson(Map<String, dynamic> json) {
final CategoryData categoryData = CategoryData();
final List<CategoryDataData>? data =
jsonConvert.convertListNotNull<CategoryDataData>(json['data']);
if (data != null) {
categoryData.data = data;
}
final CategoryDataMeta? meta =
jsonConvert.convert<CategoryDataMeta>(json['meta']);
if (meta != null) {
categoryData.meta = meta;
}
return categoryData;
}
Map<String, dynamic> $CategoryDataToJson(CategoryData entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['data'] = entity.data?.map((v) => v.toJson()).toList();
data['meta'] = entity.meta?.toJson();
return data;
}
CategoryDataData $CategoryDataDataFromJson(Map<String, dynamic> json) {
final CategoryDataData categoryDataData = CategoryDataData();
final int? id = jsonConvert.convert<int>(json['id']);
if (id != null) {
categoryDataData.id = id;
}
final String? title = jsonConvert.convert<String>(json['title']);
if (title != null) {
categoryDataData.title = title;
}
final String? subtitle = jsonConvert.convert<String>(json['subtitle']);
if (subtitle != null) {
categoryDataData.subtitle = subtitle;
}
final String? leftText = jsonConvert.convert<String>(json['left_text']);
if (leftText != null) {
categoryDataData.leftText = leftText;
}
final String? rightText = jsonConvert.convert<String>(json['right_text']);
if (rightText != null) {
categoryDataData.rightText = rightText;
}
final String? poemId = jsonConvert.convert<String>(json['poem_id']);
if (poemId != null) {
categoryDataData.poemId = poemId;
}
final String? state = jsonConvert.convert<String>(json['state']);
if (state != null) {
categoryDataData.state = state;
}
final String? createdAt = jsonConvert.convert<String>(json['created_at']);
if (createdAt != null) {
categoryDataData.createdAt = createdAt;
}
final String? updatedAt = jsonConvert.convert<String>(json['updated_at']);
if (updatedAt != null) {
categoryDataData.updatedAt = updatedAt;
}
final CategoryDataDataPoem? poem =
jsonConvert.convert<CategoryDataDataPoem>(json['poem']);
if (poem != null) {
categoryDataData.poem = poem;
}
return categoryDataData;
}
Map<String, dynamic> $CategoryDataDataToJson(CategoryDataData entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['title'] = entity.title;
data['subtitle'] = entity.subtitle;
data['left_text'] = entity.leftText;
data['right_text'] = entity.rightText;
data['poem_id'] = entity.poemId;
data['state'] = entity.state;
data['created_at'] = entity.createdAt;
data['updated_at'] = entity.updatedAt;
data['poem'] = entity.poem?.toJson();
return data;
}
CategoryDataDataPoem $CategoryDataDataPoemFromJson(Map<String, dynamic> json) {
final CategoryDataDataPoem categoryDataDataPoem = CategoryDataDataPoem();
final int? id = jsonConvert.convert<int>(json['id']);
if (id != null) {
categoryDataDataPoem.id = id;
}
final String? title = jsonConvert.convert<String>(json['title']);
if (title != null) {
categoryDataDataPoem.title = title;
}
final String? author = jsonConvert.convert<String>(json['author']);
if (author != null) {
categoryDataDataPoem.author = author;
}
final String? content = jsonConvert.convert<String>(json['content']);
if (content != null) {
categoryDataDataPoem.content = content;
}
final String? annotate = jsonConvert.convert<String>(json['annotate']);
if (annotate != null) {
categoryDataDataPoem.annotate = annotate;
}
final String? spelling = jsonConvert.convert<String>(json['spelling']);
if (spelling != null) {
categoryDataDataPoem.spelling = spelling;
}
final String? en = jsonConvert.convert<String>(json['en']);
if (en != null) {
categoryDataDataPoem.en = en;
}
final String? state = jsonConvert.convert<String>(json['state']);
if (state != null) {
categoryDataDataPoem.state = state;
}
final String? createdAt = jsonConvert.convert<String>(json['created_at']);
if (createdAt != null) {
categoryDataDataPoem.createdAt = createdAt;
}
final String? updatedAt = jsonConvert.convert<String>(json['updated_at']);
if (updatedAt != null) {
categoryDataDataPoem.updatedAt = updatedAt;
}
return categoryDataDataPoem;
}
Map<String, dynamic> $CategoryDataDataPoemToJson(CategoryDataDataPoem entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['title'] = entity.title;
data['author'] = entity.author;
data['content'] = entity.content;
data['annotate'] = entity.annotate;
data['spelling'] = entity.spelling;
data['en'] = entity.en;
data['state'] = entity.state;
data['created_at'] = entity.createdAt;
data['updated_at'] = entity.updatedAt;
return data;
}
CategoryDataMeta $CategoryDataMetaFromJson(Map<String, dynamic> json) {
final CategoryDataMeta categoryDataMeta = CategoryDataMeta();
final CategoryDataMetaPagination? pagination =
jsonConvert.convert<CategoryDataMetaPagination>(json['pagination']);
if (pagination != null) {
categoryDataMeta.pagination = pagination;
}
return categoryDataMeta;
}
Map<String, dynamic> $CategoryDataMetaToJson(CategoryDataMeta entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['pagination'] = entity.pagination?.toJson();
return data;
}
CategoryDataMetaPagination $CategoryDataMetaPaginationFromJson(
Map<String, dynamic> json) {
final CategoryDataMetaPagination categoryDataMetaPagination =
CategoryDataMetaPagination();
final int? total = jsonConvert.convert<int>(json['total']);
if (total != null) {
categoryDataMetaPagination.total = total;
}
final int? count = jsonConvert.convert<int>(json['count']);
if (count != null) {
categoryDataMetaPagination.count = count;
}
final int? perPage = jsonConvert.convert<int>(json['per_page']);
if (perPage != null) {
categoryDataMetaPagination.perPage = perPage;
}
final int? currentPage = jsonConvert.convert<int>(json['current_page']);
if (currentPage != null) {
categoryDataMetaPagination.currentPage = currentPage;
}
return categoryDataMetaPagination;
}
Map<String, dynamic> $CategoryDataMetaPaginationToJson(
CategoryDataMetaPagination 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;
}
CategoryError $CategoryErrorFromJson(Map<String, dynamic> json) {
final CategoryError categoryError = CategoryError();
return categoryError;
}
Map<String, dynamic> $CategoryErrorToJson(CategoryError entity) {
final Map<String, dynamic> data = <String, dynamic>{};
return data;
}
class HttpApi {
static const String setting = 'setting';
static const String packPoem = 'packpoem';
static const String register = 'register';
static const String verify = 'verify';
static const String login = 'login';
......