first commit

This commit is contained in:
编码猿
2024-09-27 01:31:25 +08:00
commit 07c46ac300
558 changed files with 37414 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';
import 'package:peach/config/_.dart';
import 'package:peach/entity/_.dart';
import 'package:peach/service/_.dart';
import 'package:peach/widget/_.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:toast/toast.dart';
/*
* 横向菜单除首页外的布局
*/
class ClassList extends StatefulWidget {
int id;
int totalPage = 0;
List<ItemList> result = [];
EasyRefreshController _controller; // EasyRefresh控制器
ClassList({Key key, @required this.id }) : super(key: key);
@override
State<StatefulWidget> createState() => _ClassList();
}
class _ClassList extends State<ClassList> with AutomaticKeepAliveClientMixin {
int page = 1;
@override
void initState() {
super.initState();
widget._controller = EasyRefreshController();
new Future.delayed(Duration(milliseconds: 500), () async {
getClassListData();
});
}
/// 请求数据类型是根据ajax生成的数据实体类
Future<AgentClassListData> getClassListData() async {
AgentClassListData res = await HomeService.GetClassListData(params: {
'id': widget.id,
'page': page
});
setState(() {
widget.result.addAll(res.list);
widget.totalPage = int.parse(res.total);
page = int.parse(res.page);
});
}
@override
Widget build(BuildContext context) {
super.build(context);
return EasyRefresh(
header: BezierCircleHeader(backgroundColor: ColorConfig.ThemeColor),
footer: BezierBounceFooter(backgroundColor: ColorConfig.ThemeColor),
onRefresh: () async {
// widget.page = 0;
// widget.result = [];
// await getClassListData();
},
onLoad: () async {
page += 1;
if (page > widget.totalPage) {
Toast.show("没有数据", context, duration: Toast.LENGTH_SHORT, gravity: Toast.BOTTOM);
} else {
await getClassListData();
widget._controller.finishRefresh();
}
},
child: ItemWidget(
data: widget.result,
title: '',
longPress: () {}
),
);
}
@override
bool get wantKeepAlive => true;
}