parent
6821622f48
commit
bd8ea17214
|
After Width: | Height: | Size: 6.9 KiB |
@ -0,0 +1,104 @@
|
||||
import 'package:timemanagerapp/entity/ScheduleForm.dart';
|
||||
|
||||
import '../database/dao/WorkDao.dart';
|
||||
import '../entity/Work.dart';
|
||||
import '../setting/Setting.dart';
|
||||
import '../util/dataUtil.dart';
|
||||
import 'NetWorkController.dart';
|
||||
|
||||
class WorkController {
|
||||
IdGenerator idGenerator = IdGenerator();
|
||||
List<Work> WorkList = []; //实时维护的courseList缓存
|
||||
NetWorkController netWorkController = NetWorkController();
|
||||
|
||||
DateTime termstartdate = Setting.startdate; //Setting.getStartDate();
|
||||
|
||||
Future<List<Work>> getWorks() async {
|
||||
//todo http获取
|
||||
// List<Map<String, dynamic>> WorkMaps = await WorkDao().getWorks();
|
||||
// List<Work> Works = []; // 用于存储转换后的Work对象列表
|
||||
//
|
||||
// for (var WorkMap in WorkMaps) {
|
||||
// // 使用Work类的构造函数从Map创建Work对象
|
||||
// Work work = Work(
|
||||
// id: WorkMap['id'],
|
||||
// userId: WorkMap['userId'],
|
||||
// content: WorkMap['content'],
|
||||
// WorkId: WorkMap['WorkId'],
|
||||
// name: WorkMap['name'],
|
||||
// startTime: DateTime.parse(WorkMap['startTime']),
|
||||
// endTime: DateTime.parse(WorkMap['endTime']),
|
||||
// );
|
||||
// Works.add(Work);
|
||||
// }
|
||||
// WorkList = Works; // 将Work对象添加到列表中
|
||||
return WorkList;
|
||||
}
|
||||
|
||||
//addscheduleForm
|
||||
Future<void> addScheduleForm(ScheduleForm scheduleForm,int teamId) async {
|
||||
List<Work> WorkListToInsert = [];
|
||||
for (int week = scheduleForm.getStartWeek; week <= scheduleForm.getEndWeek; week++) {
|
||||
for (int day in scheduleForm.selectedDays) {
|
||||
// 计算具体的日期和时间
|
||||
final startDate = termstartdate.add(Duration(
|
||||
days: (7 * (week - 1) + day! - 1),
|
||||
hours: scheduleForm.getStartTime.hour,
|
||||
minutes: scheduleForm.getStartTime.minute
|
||||
));
|
||||
|
||||
final endDate = termstartdate.add(Duration(
|
||||
days: (7 * (week - 1) + day! - 1),
|
||||
hours: scheduleForm.getEndTime.hour,
|
||||
minutes: scheduleForm.getEndTime.minute,
|
||||
));
|
||||
Work work = Work(
|
||||
id: await idGenerator.generateId(),
|
||||
workId: await idGenerator.generateId(),
|
||||
userId: Setting.user!.getId!,
|
||||
status: "未完成",
|
||||
workContent: scheduleForm.getContent,
|
||||
teamId: teamId,
|
||||
functionaryId: 0, //???
|
||||
endTime: endDate,
|
||||
startTime: startDate,
|
||||
);
|
||||
|
||||
WorkListToInsert.add(work);
|
||||
}
|
||||
await insertWorkList(WorkListToInsert);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Future<int> insertWork(Work Work) async {
|
||||
// return await WorkDao().insertWork(Work);
|
||||
// }
|
||||
//
|
||||
Future<int> insertWorkList(List<Work> WorkList) async {
|
||||
int result = 0;
|
||||
// for (Work Work in WorkList) {
|
||||
// result += await WorkDao().insertWork(Work);
|
||||
// }
|
||||
return result;
|
||||
}
|
||||
//
|
||||
// //delete
|
||||
// Future<int> deleteWorkByid(int id) async {
|
||||
// return await WorkDao().deleteWorkByid(id);
|
||||
// }
|
||||
//
|
||||
// Future<int> deleteWorkByWorkid(int Workid) async {
|
||||
// return await WorkDao().deleteWorkByWorkid(Workid);
|
||||
// }
|
||||
//
|
||||
// Future<int> deleteAllWorks() async {
|
||||
// return await WorkDao().deleteAllWorks();
|
||||
// }
|
||||
//
|
||||
// //update
|
||||
// Future<int> updateWork(Work Work) async {
|
||||
// return await WorkDao().updateWork(Work);
|
||||
// }
|
||||
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../widgets/AddTeamWidget.dart';
|
||||
|
||||
class AddTeamRoute extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('添加团队'),
|
||||
),
|
||||
body: AddTeamWidget(),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../widgets/ManageUserTeamWidget.dart';
|
||||
|
||||
class ManageUserTeamRoute extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('团队成员管理'),
|
||||
),
|
||||
body: ManageUserTeamWidget(),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../setting/Setting.dart';
|
||||
import '../widgets/AddTeamWidget.dart';
|
||||
import '../widgets/TeamWidgt.dart';
|
||||
|
||||
class TeamRoute extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if(Setting.user!.getId == -1){
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('我的团队'),
|
||||
),
|
||||
body: Center(
|
||||
child: Text('请先登录'),
|
||||
),
|
||||
);
|
||||
}
|
||||
else {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('我的团队'),
|
||||
),
|
||||
body: TeamWidget(),
|
||||
floatingActionButton: FloatingActionButton(
|
||||
onPressed: () async {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) {
|
||||
return AddTeamWidget();
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
child: Icon(Icons.add),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:timemanagerapp/widgets/AddCourseFormWidget.dart';
|
||||
import 'package:timemanagerapp/widgets/TimetableWidget.dart';
|
||||
|
||||
class TimetableRoute extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('时间表'),
|
||||
),
|
||||
body: TimetableWidget(),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class AddTeamWidget extends StatelessWidget {
|
||||
TextEditingController teamNameController = TextEditingController();
|
||||
TextEditingController teamDescriptionController = TextEditingController();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('创建团队'),
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
children: [
|
||||
TextField(
|
||||
controller: teamNameController,
|
||||
decoration: InputDecoration(
|
||||
labelText: '团队名称',
|
||||
),
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
TextField(
|
||||
controller: teamDescriptionController,
|
||||
decoration: InputDecoration(
|
||||
labelText: '团队描述',
|
||||
),
|
||||
),
|
||||
SizedBox(height: 20),
|
||||
ElevatedButton(
|
||||
onPressed: () {
|
||||
String teamName = teamNameController.text;
|
||||
String teamDescription = teamDescriptionController.text;
|
||||
//todo
|
||||
Navigator.pop(context);
|
||||
},
|
||||
child: Text('确定'),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ManageUserTeamWidget extends StatefulWidget {
|
||||
const ManageUserTeamWidget({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_AddTeamWidgetState createState() => _AddTeamWidgetState();
|
||||
}
|
||||
|
||||
class _AddTeamWidgetState extends State<ManageUserTeamWidget> {
|
||||
TextEditingController memberIdController = TextEditingController();
|
||||
|
||||
void handleInviteButton() {
|
||||
String memberId = memberIdController.text;
|
||||
// 这里可以实现将成员加入团队的逻辑
|
||||
|
||||
// 弹出成功发送邀请的提示框
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: Text('成功发送邀请'),
|
||||
content: Text('已成功发送邀请给成员ID: $memberId'),
|
||||
actions: [
|
||||
TextButton(
|
||||
child: Text('确定'),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop(); // 关闭对话框
|
||||
},
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('添加团队成员'),
|
||||
),
|
||||
body: Padding(
|
||||
padding: EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
children: [
|
||||
TextField(
|
||||
controller: memberIdController,
|
||||
decoration: InputDecoration(labelText: '成员ID'),
|
||||
),
|
||||
SizedBox(height: 20),
|
||||
ElevatedButton(
|
||||
onPressed: handleInviteButton,
|
||||
child: Text('邀请'),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,89 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:timemanagerapp/controller/TeamController.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';
|
||||
|
||||
class TeamWidget extends StatefulWidget {
|
||||
const TeamWidget({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_TeamWidgetState createState() => _TeamWidgetState();
|
||||
}
|
||||
|
||||
class _TeamWidgetState extends State<TeamWidget> {
|
||||
List<Team> teamList = [
|
||||
Team(teamName: 'Team 1', leaderId: 1, maxNumber: 10),
|
||||
Team(teamName: 'Team 2', leaderId: 1, maxNumber: 10),
|
||||
Team(teamName: 'Team 3', leaderId: 1, maxNumber: 10)
|
||||
];
|
||||
|
||||
TeamController teamController = TeamController();
|
||||
|
||||
@override
|
||||
initState(){
|
||||
super.initState();
|
||||
//todo: get teamList from database
|
||||
}
|
||||
|
||||
@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,
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue