feat:增加闪灵功能
This commit is contained in:
@@ -1,45 +0,0 @@
|
||||
import 'package:flisp_app/widgets/common.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_quill/flutter_quill.dart';
|
||||
|
||||
class FlashPage extends StatefulWidget {
|
||||
const FlashPage({super.key});
|
||||
|
||||
@override
|
||||
_FlashPageState createState() => _FlashPageState();
|
||||
}
|
||||
|
||||
class _FlashPageState extends State<FlashPage> {
|
||||
late QuillController _controller;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_controller = QuillController.basic();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_controller.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return buildBody(
|
||||
child: Column(
|
||||
children: [
|
||||
QuillSimpleToolbar(
|
||||
controller: _controller,
|
||||
config: const QuillSimpleToolbarConfig(),
|
||||
),
|
||||
Expanded(
|
||||
child: QuillEditor.basic(
|
||||
controller: _controller,
|
||||
config: const QuillEditorConfig(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
123
lib/pages/flisp_page.dart
Normal file
123
lib/pages/flisp_page.dart
Normal file
@@ -0,0 +1,123 @@
|
||||
import 'package:flisp_app/models/flisp.dart';
|
||||
import 'package:flisp_app/provider/flisp_provider.dart';
|
||||
import 'package:flisp_app/service/flisp_service.dart';
|
||||
import 'package:flisp_app/utils/flisp_utils.dart';
|
||||
import 'package:flisp_app/widgets/awesome_dialog.dart';
|
||||
import 'package:flisp_app/widgets/flisp_form.dart';
|
||||
import 'package:flisp_app/widgets/flisp_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_form_builder/flutter_form_builder.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:flisp_app/widgets/common.dart';
|
||||
|
||||
class FlispPage extends StatefulWidget {
|
||||
final VoidCallback? onAddPressed;
|
||||
|
||||
const FlispPage({super.key, this.onAddPressed});
|
||||
|
||||
@override
|
||||
State<FlispPage> createState() => FlispPageState();
|
||||
}
|
||||
|
||||
class FlispPageState extends State<FlispPage> {
|
||||
final FlispService flispService = FlispService();
|
||||
|
||||
late List<Flisp> _flisps;
|
||||
FlispTab _currentTab = FlispTab.all;
|
||||
|
||||
// 获取过滤后的待办事项
|
||||
List<Flisp> get _activeFlisps => getActiveFlisps(_currentTab, _flisps);
|
||||
|
||||
void showAddDialog() {
|
||||
_showDialog(false, null);
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_flisps = flispService.getAllFlisps();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return buildBody(
|
||||
child: Column(
|
||||
children: [
|
||||
// 选项卡
|
||||
buildTabs(
|
||||
currentTab: _currentTab,
|
||||
onTabChanged: (value) {
|
||||
setState(() {
|
||||
_currentTab = value;
|
||||
});
|
||||
},
|
||||
),
|
||||
// 待办事项列表
|
||||
Expanded(child: _buildActiveFlispList()),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildActiveFlispList() {
|
||||
return _activeFlisps.isEmpty
|
||||
? buildEmptyState()
|
||||
: buildFlispList(
|
||||
flisps: _activeFlisps,
|
||||
onEdit: (flisp) {
|
||||
_showDialog(true, flisp);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// 显示对话框
|
||||
void _showDialog(bool isEditing, Flisp? flisp) {
|
||||
final flispProvider = Provider.of<FlispProvider>(context, listen: false);
|
||||
|
||||
if (isEditing) {
|
||||
flispProvider.initForm(flisp!);
|
||||
} else {
|
||||
flispProvider.resetForm();
|
||||
}
|
||||
|
||||
final formKey = GlobalKey<FormBuilderState>();
|
||||
|
||||
showAwesomeDialog(
|
||||
context: context,
|
||||
body: FlispForm(
|
||||
formKey: formKey,
|
||||
isEditing: isEditing,
|
||||
initialFlisp: flisp,
|
||||
),
|
||||
onOk: () {
|
||||
if (formKey.currentState!.saveAndValidate()) {
|
||||
Navigator.of(context).pop();
|
||||
_saveFlisp(isEditing, flispProvider.formItem);
|
||||
}
|
||||
},
|
||||
onCancel: () {
|
||||
flispProvider.resetForm();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// 保存待办事项
|
||||
void _saveFlisp(bool isEditing, Flisp flisp) async {
|
||||
late bool isSuccess;
|
||||
if (isEditing) {
|
||||
isSuccess = await flispService.updateFlisp(flisp);
|
||||
} else {
|
||||
isSuccess = await flispService.addFlisp(flisp);
|
||||
}
|
||||
|
||||
setState(() {
|
||||
_flisps = flispService.getAllFlisps();
|
||||
});
|
||||
|
||||
if (isSuccess) {
|
||||
showSuccessDialog(context, isEditing ? '更新成功' : '添加成功');
|
||||
} else {
|
||||
showErrorDialog(context, isEditing ? '更新失败' : '添加失败');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user