|
|
|
|
@ -1,12 +1,8 @@
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
import 'package:timemanagerapp/controller/TeamController.dart';
|
|
|
|
|
import 'package:timemanagerapp/provider/TeamUserProvider.dart';
|
|
|
|
|
import 'package:timemanagerapp/ruters/AddScheduleRoute.dart';
|
|
|
|
|
import 'package:timemanagerapp/ruters/AddTeamRoute.dart';
|
|
|
|
|
import 'package:timemanagerapp/widgets/AddScheduleFormWidget.dart';
|
|
|
|
|
import 'package:timemanagerapp/widgets/AddTeamWidget.dart';
|
|
|
|
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:timemanagerapp/widgets/AddTeamWidget.dart';
|
|
|
|
|
import 'package:timemanagerapp/widgets/ManageUserTeamWidget.dart';
|
|
|
|
|
|
|
|
|
|
import '../entity/Team.dart';
|
|
|
|
|
@ -19,11 +15,15 @@ class TeamWidget extends StatefulWidget {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _TeamWidgetState extends State<TeamWidget> {
|
|
|
|
|
List<Team> teamList = [
|
|
|
|
|
// Team(id:1, teamName: 'Team 1', leaderId: 1, maxNumber: 10),
|
|
|
|
|
// Team(id:2, teamName: 'Team 2', leaderId: 1, maxNumber: 10),
|
|
|
|
|
// Team(id:3, teamName: 'Team 3', leaderId: 1, maxNumber: 10)
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
int firstInit = 0;
|
|
|
|
|
|
|
|
|
|
List<Team> teamList = [];
|
|
|
|
|
// [
|
|
|
|
|
// Team(id:1, teamName: 'Team 1', leaderId: 1, maxNumber: 10),
|
|
|
|
|
// Team(id:2, teamName: 'Team 2', leaderId: 1, maxNumber: 10),
|
|
|
|
|
// Team(id:3, teamName: 'Team 3', leaderId: 1, maxNumber: 10)
|
|
|
|
|
// ];
|
|
|
|
|
|
|
|
|
|
TeamController teamController = TeamController();
|
|
|
|
|
|
|
|
|
|
@ -35,6 +35,14 @@ class _TeamWidgetState extends State<TeamWidget> {
|
|
|
|
|
teamList = await teamController.getTeamList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dataInitAfterFutherDo() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
updateAfterFutherDo() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
initState(){
|
|
|
|
|
super.initState();
|
|
|
|
|
@ -43,55 +51,91 @@ class _TeamWidgetState extends State<TeamWidget> {
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
return Center(
|
|
|
|
|
child: ListView.builder(
|
|
|
|
|
itemCount: teamList.length,
|
|
|
|
|
itemBuilder: (BuildContext context, int index) {
|
|
|
|
|
Team team = teamList[index];
|
|
|
|
|
return Column(
|
|
|
|
|
children: [
|
|
|
|
|
ListTile(
|
|
|
|
|
leading: Icon(Icons.group), // 团队的icon
|
|
|
|
|
title: Text(team.teamName), // 团队名称
|
|
|
|
|
trailing: Row(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [
|
|
|
|
|
IconButton(
|
|
|
|
|
icon: Icon(Icons.person_add), // 添加成员的功能按键
|
|
|
|
|
onPressed: () {
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
MaterialPageRoute(
|
|
|
|
|
builder: (context) {
|
|
|
|
|
return ManageUserTeamWidget();
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
IconButton(
|
|
|
|
|
icon: Icon(Icons.assignment), // 团队任务的功能按键
|
|
|
|
|
onPressed: () {
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
MaterialPageRoute(
|
|
|
|
|
builder: (context) {
|
|
|
|
|
return AddScheduleRoute(
|
|
|
|
|
scheduleType: "work",
|
|
|
|
|
teamId: 1,
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
return Consumer<TeamUserProvider>(builder: (ctx, teamUserPro, child) {
|
|
|
|
|
print('Rebuild teamUserPro');
|
|
|
|
|
return FutureBuilder<void>(
|
|
|
|
|
future: futureDo(),
|
|
|
|
|
builder: (BuildContext context, AsyncSnapshot snapshot) {
|
|
|
|
|
// 请求已结束
|
|
|
|
|
if (snapshot.connectionState == ConnectionState.done) {
|
|
|
|
|
if (firstInit == 0) {
|
|
|
|
|
//第一次初始化
|
|
|
|
|
dataInitAfterFutherDo();
|
|
|
|
|
firstInit = 1;
|
|
|
|
|
} else {
|
|
|
|
|
//更新
|
|
|
|
|
updateAfterFutherDo();
|
|
|
|
|
}
|
|
|
|
|
return RefreshIndicator(
|
|
|
|
|
onRefresh: () {
|
|
|
|
|
print('下拉refresh');
|
|
|
|
|
return futureDo().then((value) => setState(() {}));
|
|
|
|
|
},
|
|
|
|
|
child: Center(
|
|
|
|
|
child: ListView.builder(
|
|
|
|
|
itemCount: teamList.length,
|
|
|
|
|
itemBuilder: (BuildContext context, int index) {
|
|
|
|
|
Team team = teamList[index];
|
|
|
|
|
return Column(
|
|
|
|
|
children: [
|
|
|
|
|
ListTile(
|
|
|
|
|
leading: Icon(Icons.group), // 团队的icon
|
|
|
|
|
title: Text(team.teamName), // 团队名称
|
|
|
|
|
trailing: Row(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [
|
|
|
|
|
IconButton(
|
|
|
|
|
icon: Icon(Icons.person_add), // 添加成员的功能按键
|
|
|
|
|
onPressed: () {
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
MaterialPageRoute(
|
|
|
|
|
builder: (context) {
|
|
|
|
|
return ManageUserTeamWidget(team: team);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
IconButton(
|
|
|
|
|
icon: Icon(Icons.assignment), // 添加团队任务的功能按键
|
|
|
|
|
onPressed: () {
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
MaterialPageRoute(
|
|
|
|
|
builder: (context) {
|
|
|
|
|
return AddScheduleRoute(
|
|
|
|
|
scheduleType: "work",
|
|
|
|
|
teamId: 1,
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
IconButton(
|
|
|
|
|
icon: Icon(Icons.remove),
|
|
|
|
|
onPressed: () {
|
|
|
|
|
setState(() {
|
|
|
|
|
teamController.deleteTeam(team.id!);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
);
|
|
|
|
|
} else {
|
|
|
|
|
return Center(
|
|
|
|
|
child: CircularProgressIndicator(),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|