From dbd487808758027aefa9d6da5d817dbbedda3d98 Mon Sep 17 00:00:00 2001 From: LRC <991971966@qq.com> Date: Sat, 14 Oct 2023 16:41:38 +0800 Subject: [PATCH] tmp --- .../lib/ruters/AddScheduleRoute.dart | 15 + src/timemanagerapp/lib/ruters/TestRoute.dart | 16 + .../lib/ruters/UserSettingRoute.dart | 17 + .../lib/tests/Addcoursewidget_test.dart | 2 +- .../lib/wighets/AddScheduleFormWighet.dart | 215 +++++++++ .../lib/wighets/HomeWighet.dart | 93 ++-- ...eWighet.dart => ManageUserTeamWighet.dart} | 0 src/timemanagerapp/lib/wighets/TeamWight.dart | 0 .../lib/wighets/TestWidget.dart | 410 ++++++++---------- .../lib/wighets/UserSettingWighet.dart | 17 + 10 files changed, 511 insertions(+), 274 deletions(-) create mode 100644 src/timemanagerapp/lib/ruters/AddScheduleRoute.dart create mode 100644 src/timemanagerapp/lib/ruters/TestRoute.dart create mode 100644 src/timemanagerapp/lib/ruters/UserSettingRoute.dart create mode 100644 src/timemanagerapp/lib/wighets/AddScheduleFormWighet.dart rename src/timemanagerapp/lib/wighets/{AddScheduleWighet.dart => ManageUserTeamWighet.dart} (100%) create mode 100644 src/timemanagerapp/lib/wighets/TeamWight.dart create mode 100644 src/timemanagerapp/lib/wighets/UserSettingWighet.dart diff --git a/src/timemanagerapp/lib/ruters/AddScheduleRoute.dart b/src/timemanagerapp/lib/ruters/AddScheduleRoute.dart new file mode 100644 index 0000000..4be2f53 --- /dev/null +++ b/src/timemanagerapp/lib/ruters/AddScheduleRoute.dart @@ -0,0 +1,15 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:timemanagerapp/wighets/AddScheduleFormWighet.dart'; + +class AddScheduleRoute extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('添加自定义个人计划'), + ), + body: AddScheduleFormWidget(), + ); + } +} \ No newline at end of file diff --git a/src/timemanagerapp/lib/ruters/TestRoute.dart b/src/timemanagerapp/lib/ruters/TestRoute.dart new file mode 100644 index 0000000..403b866 --- /dev/null +++ b/src/timemanagerapp/lib/ruters/TestRoute.dart @@ -0,0 +1,16 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +import '../tests/TestWidget.dart'; + +class TestRoute extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('开发者测试'), + ), + body: TestWidget(), + ); + } +} \ No newline at end of file diff --git a/src/timemanagerapp/lib/ruters/UserSettingRoute.dart b/src/timemanagerapp/lib/ruters/UserSettingRoute.dart new file mode 100644 index 0000000..166319d --- /dev/null +++ b/src/timemanagerapp/lib/ruters/UserSettingRoute.dart @@ -0,0 +1,17 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:timemanagerapp/wighets/UserSettingWighet.dart'; + +import '../tests/TestWidget.dart'; + +class UserSettingRoute extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('设置'), + ), + body: UserSettingWight(), + ); + } +} \ No newline at end of file diff --git a/src/timemanagerapp/lib/tests/Addcoursewidget_test.dart b/src/timemanagerapp/lib/tests/Addcoursewidget_test.dart index 42fbde5..d62116e 100644 --- a/src/timemanagerapp/lib/tests/Addcoursewidget_test.dart +++ b/src/timemanagerapp/lib/tests/Addcoursewidget_test.dart @@ -27,7 +27,7 @@ class MyApp extends StatelessWidget { return MaterialApp( home: Scaffold( appBar: AppBar( - title: Text('课表'), + title: Text('添加课程'), ), body: AddCourseFormWidget(), ), diff --git a/src/timemanagerapp/lib/wighets/AddScheduleFormWighet.dart b/src/timemanagerapp/lib/wighets/AddScheduleFormWighet.dart new file mode 100644 index 0000000..4a455f8 --- /dev/null +++ b/src/timemanagerapp/lib/wighets/AddScheduleFormWighet.dart @@ -0,0 +1,215 @@ +import 'package:flutter/material.dart'; +import 'package:multi_select_flutter/dialog/multi_select_dialog_field.dart'; +import 'package:multi_select_flutter/util/multi_select_item.dart'; +import 'package:timemanagerapp/controller/CourseController.dart'; +import 'package:timemanagerapp/entity/CourseForm.dart'; +class AddScheduleFormWidget extends StatefulWidget { + const AddScheduleFormWidget({Key? key}) : super(key: key); + + @override + _AddScheduleFormWidgetState createState() => _AddScheduleFormWidgetState(); +} + +class _AddScheduleFormWidgetState extends State { + + CourseController courseController = CourseController(); + final GlobalKey _formKey = GlobalKey(); + CourseForm courseForm = CourseForm(); + String course = ''; + String credit = ''; + String note = ''; + String startWeek = '1'; + String endWeek = '12'; + String startTime = '1'; + String endTime = '2'; + String teacher = ''; + String location = ''; + + List selectedDays = []; + + List> daysList = [ + MultiSelectItem('周一', '一'), + MultiSelectItem('周二', '二'), + MultiSelectItem('周三', '三'), + MultiSelectItem('周四', '四'), + MultiSelectItem('周五', '五'), + MultiSelectItem('周六', '六'), + MultiSelectItem('周日', '日'), + ]; + + final weekdayMap = { + '周一': 1, + '周二': 2, + '周三': 3, + '周四': 4, + '周五': 5, + '周六': 6, + '周日': 7, + }; + + + @override + Widget build(BuildContext context) { + return SingleChildScrollView( + child: Padding( // 为了给表单添加内边距 + padding: const EdgeInsets.all(16.0), // 四周添加16像素补白 + child: Form( // 表单 + key: _formKey, // 设置globalKey,用于后面获取FormState + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, // 水平方向占满 + children: [ + TextFormField( // 课程输入框 + decoration: InputDecoration(labelText: '课程*'), // 输入框前面的提示文字 + onSaved: (value) => course = value ?? '', // 当用户确定已经完成编辑时触发 + validator: (value) { // 验证表单 + if (value == null || value.isEmpty) { + return '课程名为必填项'; + } + return null; + }, + ), + SizedBox(height: 16.0),// 间隔 + TextFormField( + decoration: InputDecoration(labelText: '学分'), + onSaved: (value) => credit = value ?? '', + ), + SizedBox(height: 16.0), + TextFormField( + decoration: InputDecoration(labelText: '备注'), + onSaved: (value) => note = value ?? '', + ), + SizedBox(height: 16.0), + MultiSelectDialogField( + items: daysList, + title: Text('上课日*'), + validator: (values) { + if (values == null || values.isEmpty) { + return '上课日为必填项'; + } + return null; + }, + onConfirm: (values) { + setState(() { + selectedDays = values; + }); + }, + ), + SizedBox(height: 16.0), + TextFormField( + decoration: InputDecoration(labelText: '开始周'), + onSaved: (value) => startWeek = value ?? '', + validator: (value) { + if (value == null || value.isEmpty) { + return '开始周为必填项'; + } + return null; + }, + ), + SizedBox(height: 16.0), + TextFormField( + decoration: InputDecoration(labelText: '结束周'), + onSaved: (value) => endWeek = value ?? '', + validator: (value) { + if (value == null || value.isEmpty) { + return '结束周为必填项'; + } + return null; + }, + ), + SizedBox(height: 16.0), + DropdownButtonFormField( + value: startTime, + onChanged: (newValue) { + setState(() { + startTime = newValue ?? ''; + }); + }, + items: List.generate(12, (index) => (index + 1).toString()) + .map((time) => DropdownMenuItem( + value: time, + child: Text(time), + )) + .toList(), + decoration: InputDecoration(labelText: '上课时间'), + validator: (value) { + if (value == null || value.isEmpty) { + return '上课时间为必填项'; + } + return null; + }, + ), + SizedBox(height: 16.0), + DropdownButtonFormField( + value: endTime, + onChanged: (newValue) { + setState(() { + endTime = newValue ?? ''; + }); + }, + items: List.generate(12, (index) => (index + 1).toString()) + .map((time) => DropdownMenuItem( + value: time, + child: Text(time), + )) + .toList(), + decoration: InputDecoration(labelText: '下课时间*'), + validator: (value) { + if (value == null || value.isEmpty) { + return '下课时间为必填项'; + } + return null; + }, + ), + SizedBox(height: 16.0), + TextFormField( + decoration: InputDecoration(labelText: '老师'), + onSaved: (value) => teacher = value ?? '', + ), + SizedBox(height: 16.0), + TextFormField( + decoration: InputDecoration(labelText: '地点'), + onSaved: (value) => location = value ?? '', + ), + SizedBox(height: 24.0), + Row( // 按钮组 + mainAxisAlignment: MainAxisAlignment.spaceAround, // 水平方向均匀排列每个元素 + children: [ + ElevatedButton( + onPressed: () { + // 点击取消按钮后的操作 + Navigator.pop(context); // 关闭当前界面 + }, + child: Text('取消'), + ), + ElevatedButton( + onPressed: () { + // 点击确定按钮后的操作 + if (_formKey.currentState!.validate()) { + _formKey.currentState!.save(); + // 在这里执行表单提交操作 + courseForm.course = course; + courseForm.credit = double.parse(credit); + courseForm.note = note; + courseForm.location = location; + courseForm.selectedDays = selectedDays.map((e) => weekdayMap[e]!).toList(); + courseForm.startWeek = int.parse(startWeek); + courseForm.endWeek = int.parse(endWeek); + courseForm.startTime = int.parse(startTime); + courseForm.endTime = int.parse(endTime); + courseForm.teacher = teacher; + courseController.addCourseForm(courseForm).then((value) => Navigator.pop(context)); // 关闭当前界面 + + } + }, + child: Text('确定'), + ), + ], + ), + ], + ), + ), + ), + ); + } + +} \ No newline at end of file diff --git a/src/timemanagerapp/lib/wighets/HomeWighet.dart b/src/timemanagerapp/lib/wighets/HomeWighet.dart index e278dde..0dc31fb 100644 --- a/src/timemanagerapp/lib/wighets/HomeWighet.dart +++ b/src/timemanagerapp/lib/wighets/HomeWighet.dart @@ -4,11 +4,14 @@ import 'package:timemanagerapp/controller/UserController.dart'; import 'package:timemanagerapp/entity/Course.dart'; import 'package:timemanagerapp/entity/User.dart'; import 'package:timemanagerapp/database/MyDatebase.dart'; +import 'package:timemanagerapp/ruters/AddScheduleRoute.dart'; +import 'package:timemanagerapp/ruters/TestRoute.dart'; import 'package:timemanagerapp/tests/TestWidget.dart'; import 'package:timemanagerapp/wighets/TimetableWighet.dart'; import '../ruters/AddCourseRoute.dart'; import '../ruters/TimetableRoute.dart'; +import '../ruters/UserSettingRoute.dart'; class HomeWidget extends StatefulWidget { @@ -95,7 +98,7 @@ class _HomePageState extends State { MaterialPageRoute( builder: (context) { //todo 改成任务 - return AddCourseRoute(); //改成任务 + return AddScheduleRoute(); //改成任务 }, ), ); @@ -111,12 +114,24 @@ class _HomePageState extends State { }, ), IconButton( + //todo 使用番茄时钟 icon: const Icon(Icons.more), onPressed: () {}, ), IconButton( icon: const Icon(Icons.group_add), - onPressed: () {}, + onPressed: () { + //跳转到团队管理界面 + Navigator.push( + context, + MaterialPageRoute( + builder: (context) { + //todo + return Container(); + }, + ), + ); + }, ), Builder( builder: (context) => IconButton( //菜单按钮 @@ -133,83 +148,55 @@ class _HomePageState extends State { child: Column( children: [ UserAccountsDrawerHeader( + //todo 未登录时显示未登录,点击可以跳转到登录界面,登录后显示用户名 accountName: Text('Username'), accountEmail: Text('user@example.com'), ), ListTile( - title: Text('开发者测试'), + title: Text('用户设置'), onTap: () { - // 导航到TestWidget页面 + //todo + // 导航到deng页面 Navigator.push( context, MaterialPageRoute( builder: (context) { - return TestWidget(); + return UserSettingRoute(); }, ), ); }, ), - - ListTile( - title: Text('删除课程'), - onTap: courseController.deleteAllCourses, - ), - ListTile( - title: Text('导入课程(待开发)'), - onTap: () => courseController.autoImportCours(1, "1", 1, 1), - ), - ListTile( - title: Text('插入课程'), - onTap: () => courseController.insertCourse(Course( - userId: 1, - courseId: 2, - name: "测试课", - credit: 3, - teacher: "嘉豪", - location: "638", - remark: "happy", - start: DateTime.now(), - end: DateTime.now().add(Duration(hours: 2)), - )), - ), ListTile( - title: Text('获取课程列表'), + title: Text('登录'), onTap: () { - courseController.getCourses().then((courses) { - print(courses.length); - }); - courseController.getCourses().then((courses) { - showDialog( - context: context, + //todo + // 导航到UserSettingWight页面 + Navigator.push( + context, + MaterialPageRoute( builder: (context) { - return AlertDialog( - title: Text('课程列表'), - content: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.min, - children: courses - .map((course) => ListTile( - title: Text(course.getName), - subtitle: Text(course.toString()), - )) - .toList(), - ), - ), - ); + return UserSettingRoute(); }, - ); - }); + ), + ); }, ), ListTile( - title: Text('查看时间表'), + title: Text('退出登录'), onTap: () { + //todo action + }, + ), + ListTile( + title: Text('开发者测试'), + onTap: () { + // 导航到TestWidget页面 Navigator.push( context, MaterialPageRoute( builder: (context) { - return TimetableRoute(); + return TestRoute(); }, ), ); diff --git a/src/timemanagerapp/lib/wighets/AddScheduleWighet.dart b/src/timemanagerapp/lib/wighets/ManageUserTeamWighet.dart similarity index 100% rename from src/timemanagerapp/lib/wighets/AddScheduleWighet.dart rename to src/timemanagerapp/lib/wighets/ManageUserTeamWighet.dart diff --git a/src/timemanagerapp/lib/wighets/TeamWight.dart b/src/timemanagerapp/lib/wighets/TeamWight.dart new file mode 100644 index 0000000..e69de29 diff --git a/src/timemanagerapp/lib/wighets/TestWidget.dart b/src/timemanagerapp/lib/wighets/TestWidget.dart index aafd177..651a91b 100644 --- a/src/timemanagerapp/lib/wighets/TestWidget.dart +++ b/src/timemanagerapp/lib/wighets/TestWidget.dart @@ -1,3 +1,25 @@ +/* +import 'package:flutter/material.dart'; +import 'package:timemanagerapp/wighets/AddCourseFormWidget.dart'; + +void main() { + runApp(MyApp()); +} + +class MyApp extends StatelessWidget { + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + appBar: AppBar( + title: Text('添加课程'), + ), + body: AddCourseFormWidget(), + ), + ); + } +} +*/ import 'package:flutter/material.dart'; import 'package:sqflite/sqflite.dart'; import 'package:timemanagerapp/controller/CourseController.dart'; @@ -14,20 +36,16 @@ import '../tests/database_test.dart'; import 'AddCourseFormWidget.dart'; class TestWidget extends StatefulWidget { - - const TestWidget({Key? key}) : super(key: key); @override - _TestPageState createState() => _TestPageState(); + _HomePageState createState() => _HomePageState(); } -class _TestPageState extends State { - +class _HomePageState extends State { late UserController userController; late CourseController courseController; - @override void initState() { super.initState(); @@ -36,165 +54,57 @@ class _TestPageState extends State { courseController = CourseController.getInstance(); } - void handleAddCourse() { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) { - return AddCourseRoute(); - }, - ), - ); - } - - void handleAddTask() { - // Implement the functionality for adding a task here - } - - void handleAddTeam() { - // Implement the functionality for adding a team here - } - - void handleMenu() { - // Implement the functionality for the menu here - } - @override Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - backgroundColor: Colors.blue, - actions: [ - IconButton( - icon: const Icon(Icons.add), + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ElevatedButton( + onPressed: userController.deleteAllUsers, + child: Text('删除所有用户'), + ), + ElevatedButton( + onPressed: () => userController.insertUser(User( + teamId: 3231, username: "测试用户", password: "23243", role: 1)), + child: Text('插入一个测试用户'), + ), + ElevatedButton( onPressed: () { - showDialog( - context: context, - builder: (BuildContext context) { - return AlertDialog( - title: const Text('+功能'), - content: Column( - mainAxisSize: MainAxisSize.min, - children: [ - ElevatedButton( - onPressed: () { - // 导航到AddCourseFormWidget页面 - Navigator.push( - context, - MaterialPageRoute( - builder: (context) { - return AddCourseRoute(); - }, - ), - ); - }, - child: Text('添加课程'), - ), - ElevatedButton( - onPressed: () { - // 导航到AddCourseFormWidget页面 - Navigator.push( - context, - MaterialPageRoute( - builder: (context) { - return AddCourseRoute(); //改成任务 - }, - ), - ); - }, - child: Text('添加任务'), + userController.getUsers().then((users) { + showDialog( + context: context, + builder: (context) { + return AlertDialog( + title: Text('用户列表'), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: users + .map((user) => ListTile( + title: Text(user['username']), + subtitle: Text(user.toString()), + )) + .toList(), ), - const SizedBox(height: 10), - ], - ), - ); - }, - ); + ), + ); + }, + ); + }); }, + child: Text('显示用户列表'), ), - IconButton( - icon: const Icon(Icons.more), - onPressed: () {}, - ), - IconButton( - icon: const Icon(Icons.group_add), - onPressed: () {}, - ), - Builder( - builder: (context) => IconButton( - icon: const Icon(Icons.more_horiz), - onPressed: () { - Scaffold.of(context).openEndDrawer(); // Open the right drawer - }, - ), + ElevatedButton( + onPressed: courseController.deleteAllCourses, + child: Text('删除所有课程'), ), - ], - ), - endDrawer: Drawer( - // Use endDrawer to place the drawer on the right side - child: Column( - children: [ - UserAccountsDrawerHeader( - accountName: Text('Username'), - accountEmail: Text('user@example.com'), - ), - ListTile( - title: Text('删除用户'), - onTap: () { - Navigator.pop(context); // Close the drawer - userController.deleteAllUsers(); - }, - ), - ListTile( - title: Text('插入用户'), - onTap: () { - Navigator.pop(context); // Close the drawer - userController.insertUser(User( - teamId: 3231, - username: "嘉豪急啊急啊", - password: "23243", - role: 2341, - )); - }, - ), - ListTile( - title: Text('获取用户列表'), - onTap: () { - Navigator.pop(context); // Close the drawer - userController.getUsers().then((users) { - showDialog( - context: context, - builder: (context) { - return AlertDialog( - title: Text('用户列表'), - content: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.min, - children: users - .map((user) => ListTile( - title: Text(user['username']), - subtitle: Text(user.toString()), - )) - .toList(), - ), - ), - ); - }, - ); - }); - }, - ), - ListTile( - title: Text('删除课程'), - onTap: courseController.deleteAllCourses, - ), - ListTile( - title: Text('导入课程(待开发)'), - onTap: () => courseController.autoImportCours(1, "1", 1, 1), - ), - ListTile( - title: Text('插入课程'), - onTap: () => courseController.insertCourse(Course( + // ElevatedButton( + // onPressed: () => courseController.autoImportCours(jsonstr), + // child: Text('导入课程(待开发)'), + // ), + ElevatedButton( + onPressed: () => courseController.insertCourse(Course( userId: 1, courseId: 2, name: "测试课", @@ -203,75 +113,135 @@ class _TestPageState extends State { location: "638", remark: "happy", start: DateTime.now(), - end: DateTime.now().add(Duration(hours: 2)), - )), - ), - ListTile( - title: Text('获取课程列表'), - onTap: () { - courseController.getCourses().then((courses) { - print(courses.length); - }); - courseController.getCourses().then((courses) { - showDialog( - context: context, - builder: (context) { - return AlertDialog( - title: Text('课程列表'), - content: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.min, - children: courses - .map((course) => ListTile( - title: Text(course.getName), - subtitle: Text(course.toString()), - )) - .toList(), - ), + end: DateTime.now().add(Duration(hours: 2)))), + child: Text('插入一个测试课程'), + ), + ElevatedButton( + onPressed: () { + // 导航到AddCourseFormWidget页面 + Navigator.push( + context, + MaterialPageRoute( + builder: (context) { + return AddCourseRoute(); + }, + ), + ); + }, + child: Text('添加自定义课程'), + ), + ElevatedButton( + onPressed: () { + courseController.getCourses().then((courses) { + showDialog( + context: context, + builder: (context) { + return AlertDialog( + title: Text('课程列表'), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: courses + .map((course) => ListTile( + title: Text(course.getName), + subtitle: Text(course.toString()), + )) + .toList(), ), - ); - }, - ); - }); - }, - ), - ListTile( - title: Text('查看时间表'), - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) { - return TimetableRoute(); - }, - ), + ), + ); + }, ); + }); + }, + child: Text('显示课程列表'), + ), + ElevatedButton( + onPressed: () { + // 导航到AddCourseFormWidget页面 + Navigator.push( + context, + MaterialPageRoute( + builder: (context) { + return TimetableRoute(); + }, + ), + ); + }, + child: Text('查看时间表'), + ), + AddCourseButton( + onCourseAdded: (jsonstr) { + // 在这里执行添加课程的逻辑,可以将课程名传递给你的 addCourse() 函数 + // courseController.autoImportCours(jsonstr); + } + ) + ], + ), + ); + } +} + +//string导入测试 + +class AddCourseButton extends StatefulWidget { + final Function(String jsonstr) onCourseAdded; + + AddCourseButton({required this.onCourseAdded}); + + @override + _AddCourseButtonState createState() => _AddCourseButtonState(); +} + +class _AddCourseButtonState extends State { + TextEditingController _jsonstrController = TextEditingController(); + + void _showAddCourseDialog(BuildContext context) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: Text('json导入课程'), + content: TextField( + controller: _jsonstrController, + decoration: InputDecoration(labelText: '请输入json字符串'), + ), + actions: [ + TextButton( + child: Text('取消'), + onPressed: () { + Navigator.of(context).pop(); }, ), - ], - ), - ), - body: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ElevatedButton( + TextButton( + child: Text('确定'), onPressed: () { - Navigator.push( - // 使用 pushReplacement 代替 push - context, - MaterialPageRoute( - builder: (context) { - return TimetableRoute(); - }, - ), - ); + final jsonstr = _jsonstrController.text; + if (jsonstr.isNotEmpty) { + widget.onCourseAdded(jsonstr); + Navigator.of(context).pop(); + } }, - child: Text('直接显示 TimetableRoute()'), // 可以将按钮文本改成适当的描述 - ) + ), ], - ), - ), + ); + }, ); } + + @override + Widget build(BuildContext context) { + return ElevatedButton( + onPressed: () { + _showAddCourseDialog(context); + }, + child: Text('json导入课程'), + ); + } + + @override + void dispose() { + _jsonstrController.dispose(); + super.dispose(); + } } diff --git a/src/timemanagerapp/lib/wighets/UserSettingWighet.dart b/src/timemanagerapp/lib/wighets/UserSettingWighet.dart new file mode 100644 index 0000000..9579058 --- /dev/null +++ b/src/timemanagerapp/lib/wighets/UserSettingWighet.dart @@ -0,0 +1,17 @@ +//用户设置Wight +import 'package:flutter/cupertino.dart'; + +class UserSettingWight extends StatefulWidget { + @override + _UserSettingWightState createState() => _UserSettingWightState(); +} +//用户设置Wight状态 +//todo:实现用户设置Wight +class _UserSettingWightState extends State { + @override + Widget build(BuildContext context) { + return Container( + + ); + } +} \ No newline at end of file