From 3804164cfd6e4734469c9b155a91da7e30ad5fef Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Tue, 28 Apr 2026 19:59:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0hive=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/models/{Schedule.dart => schedule.dart} | 4 +- lib/models/task.dart | 48 ++- lib/pages/schedule_page.dart | 2 +- lib/pages/task_page.dart | 3 +- lib/widgets/common.dart | 36 +- lib/widgets/schedule_dialog.dart | 12 +- lib/widgets/task_dialog.dart | 10 +- lib/widgets/task_item.dart | 6 +- pubspec.lock | 418 +++++++++++++++++++- pubspec.yaml | 2 +- windows/flutter/generated_plugins.cmake | 1 + 11 files changed, 490 insertions(+), 52 deletions(-) rename lib/models/{Schedule.dart => schedule.dart} (87%) diff --git a/lib/models/Schedule.dart b/lib/models/schedule.dart similarity index 87% rename from lib/models/Schedule.dart rename to lib/models/schedule.dart index 817e991..bc4d26f 100644 --- a/lib/models/Schedule.dart +++ b/lib/models/schedule.dart @@ -3,7 +3,7 @@ class Schedule { String title; DateTime startTime; DateTime endTime; - DateTime? scheduleDate; + DateTime? scheduleTime; DateTime createTime; Schedule({ @@ -11,7 +11,7 @@ class Schedule { required this.title, required this.startTime, required this.endTime, - this.scheduleDate, + this.scheduleTime, DateTime? createTime, }) : id = id ?? DateTime.timestamp().microsecond, createTime = DateTime.now(); diff --git a/lib/models/task.dart b/lib/models/task.dart index fd44320..de46c3f 100644 --- a/lib/models/task.dart +++ b/lib/models/task.dart @@ -1,26 +1,54 @@ -class Task { - final int id; +import 'package:hive/hive.dart'; + +// flutter packages pub run build_runner build +// part 'todo.g.dart'; + +@HiveType(typeId: 0) +class Task extends HiveObject { + @HiveField(0) + int id; + + @HiveField(1) String title; + + @HiveField(2) String? desc; + + @HiveField(3) DateTime? dueDate; - DateTime? scheduleDate; + + @HiveField(4) + DateTime? scheduleTime; + + @HiveField(5) bool isCompleted; - Priority priority; - String? category; + + @HiveField(6) + int priorityIndex; + + @HiveField(7) DateTime createTime; + @HiveField(8) + DateTime updateTime; + + Priority get priority => Priority.values[priorityIndex]; + + set priority(Priority value) => priorityIndex = value.index; + Task({ int? id, required this.title, this.desc, this.dueDate, - this.scheduleDate, + this.scheduleTime, this.isCompleted = false, - this.priority = Priority.medium, - this.category, + Priority priority = Priority.medium, DateTime? createTime, }) : id = id ?? DateTime.timestamp().microsecond, - createTime = DateTime.now(); + this.priorityIndex = priority.index, + createTime = DateTime.now(), + updateTime = DateTime.now(); } -enum Priority { low, medium, high } \ No newline at end of file +enum Priority { low, medium, high } diff --git a/lib/pages/schedule_page.dart b/lib/pages/schedule_page.dart index 6cec940..26c62d5 100644 --- a/lib/pages/schedule_page.dart +++ b/lib/pages/schedule_page.dart @@ -1,7 +1,7 @@ import 'package:fluent_ui/fluent_ui.dart'; import 'package:flutter/material.dart' show ButtonSegment, SegmentedButton; import 'package:syncfusion_flutter_calendar/calendar.dart' as calendar; -import 'package:task_hub/models/Schedule.dart'; +import 'package:task_hub/models/schedule.dart'; import 'package:task_hub/widgets/schedule_dialog.dart'; class AppointmentDataSource extends calendar.CalendarDataSource { diff --git a/lib/pages/task_page.dart b/lib/pages/task_page.dart index ab4749d..000f1d2 100644 --- a/lib/pages/task_page.dart +++ b/lib/pages/task_page.dart @@ -91,8 +91,7 @@ class _TaskPageState extends State { createTime: task.createTime, dueDate: task.dueDate, isCompleted: !task.isCompleted, - priority: task.priority, - category: task.category, + priority: task.priority ); } }); diff --git a/lib/widgets/common.dart b/lib/widgets/common.dart index d7c5d1a..479c345 100644 --- a/lib/widgets/common.dart +++ b/lib/widgets/common.dart @@ -12,29 +12,23 @@ Widget buildFormItem({ children: [ SizedBox( width: 80, - child: Padding( - padding: const EdgeInsets.only(top: 8), - child: Row( - mainAxisSize: MainAxisSize.min, - children: [ - if (required) - Padding( - padding: EdgeInsets.only(right: 4), - child: Text( - '*', - style: TextStyle(color: Colors.red, fontSize: 16), - ), - ), - Text( - label, - style: const TextStyle( - fontSize: 14, - fontWeight: FontWeight.w500, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + if (required) + Padding( + padding: EdgeInsets.only(right: 4), + child: Text( + '*', + style: TextStyle(color: Colors.red, fontSize: 16), ), ), - const Text(':', style: TextStyle(fontSize: 14)), - ], - ), + Text( + label, + style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500), + ), + const Text(':', style: TextStyle(fontSize: 14)), + ], ), ), const SizedBox(width: 12), diff --git a/lib/widgets/schedule_dialog.dart b/lib/widgets/schedule_dialog.dart index 41c08e1..233eefd 100644 --- a/lib/widgets/schedule_dialog.dart +++ b/lib/widgets/schedule_dialog.dart @@ -1,6 +1,6 @@ import 'package:fluent_ui/fluent_ui.dart'; import 'package:omni_datetime_picker/omni_datetime_picker.dart'; -import 'package:task_hub/models/Schedule.dart'; +import 'package:task_hub/models/schedule.dart'; import 'package:task_hub/widgets/common.dart'; class ScheduleDialog extends StatefulWidget { @@ -17,7 +17,7 @@ class _ScheduleDialogState extends State { late TextEditingController _titleController; DateTime? _selectedStartTime; DateTime? _selectedEndTime; - DateTime? _selectedScheduleDate; + DateTime? _selectedScheduleTime; final _formKey = GlobalKey(); @override @@ -28,7 +28,7 @@ class _ScheduleDialogState extends State { ); _selectedStartTime = widget.schedule?.startTime; _selectedEndTime = widget.schedule?.endTime; - _selectedScheduleDate = widget.schedule?.scheduleDate; + _selectedScheduleTime = widget.schedule?.scheduleTime; } @override @@ -83,7 +83,7 @@ class _ScheduleDialogState extends State { title: _titleController.text, startTime: _selectedStartTime!, endTime: _selectedEndTime!, - scheduleDate: _selectedScheduleDate, + scheduleTime: _selectedScheduleTime, ); widget.onSave(schedule); Navigator.pop(context); @@ -169,12 +169,12 @@ class _ScheduleDialogState extends State { label: '提醒日期', child: buildOmniDateButton( context: context, - selectedDate: _selectedScheduleDate, + selectedDate: _selectedScheduleTime, placeholder: '请选择提醒日期', type: OmniDateTimePickerType.dateAndTime, onChanged: (date) { setState(() { - _selectedScheduleDate = date; + _selectedScheduleTime = date; }); }, ), diff --git a/lib/widgets/task_dialog.dart b/lib/widgets/task_dialog.dart index 2d798b9..72405dd 100644 --- a/lib/widgets/task_dialog.dart +++ b/lib/widgets/task_dialog.dart @@ -18,7 +18,7 @@ class _TaskDialogState extends State { late TextEditingController _descController; late Priority _selectedPriority; DateTime? _selectedDueDate; - DateTime? _selectedScheduleDate; + DateTime? _selectedScheduleTime; final _formKey = GlobalKey(); @override @@ -28,7 +28,7 @@ class _TaskDialogState extends State { _descController = TextEditingController(text: widget.task?.desc ?? ''); _selectedPriority = widget.task?.priority ?? Priority.medium; _selectedDueDate = widget.task?.dueDate; - _selectedScheduleDate = widget.task?.scheduleDate; + _selectedScheduleTime = widget.task?.scheduleTime; } @override @@ -45,7 +45,7 @@ class _TaskDialogState extends State { title: _titleController.text, desc: _descController.text.isEmpty ? null : _descController.text, dueDate: _selectedDueDate, - scheduleDate: _selectedScheduleDate, + scheduleTime: _selectedScheduleTime, priority: _selectedPriority, isCompleted: widget.task?.isCompleted ?? false, ); @@ -159,12 +159,12 @@ class _TaskDialogState extends State { label: '提醒日期', child: buildOmniDateButton( context: context, - selectedDate: _selectedScheduleDate, + selectedDate: _selectedScheduleTime, placeholder: '请选择提醒日期', type: OmniDateTimePickerType.dateAndTime, onChanged: (date) { setState(() { - _selectedScheduleDate = date; + _selectedScheduleTime = date; }); }, ), diff --git a/lib/widgets/task_item.dart b/lib/widgets/task_item.dart index 9dd5826..df530fb 100644 --- a/lib/widgets/task_item.dart +++ b/lib/widgets/task_item.dart @@ -42,7 +42,7 @@ class TaskItem extends StatelessWidget { const SizedBox(height: 4), if (task.desc != null && task.desc!.isNotEmpty) _buildDesc(), const SizedBox(height: 4), - if (task.dueDate != null || task.scheduleDate != null) + if (task.dueDate != null || task.scheduleTime != null) _buildDate(), ], ), @@ -97,11 +97,11 @@ class TaskItem extends StatelessWidget { ), const SizedBox(width: 4), ], - if (task.scheduleDate != null) ...[ + if (task.scheduleTime != null) ...[ Icon(FluentIcons.clock, size: 12, color: Colors.grey), const SizedBox(width: 4), Text( - '提醒日期: ${_formatDate(task.scheduleDate!)}', + '提醒日期: ${_formatDate(task.scheduleTime!)}', style: TextStyle(color: Colors.grey, fontSize: 12), ), ], diff --git a/pubspec.lock b/pubspec.lock index 1a66c52..7c081bc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,22 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + url: "https://pub.flutter-io.cn" + source: hosted + version: "67.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.4.1" args: dependency: transitive description: @@ -33,6 +49,70 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.2" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957 + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.1.1" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.13" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + url: "https://pub.flutter-io.cn" + source: hosted + version: "7.3.2" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.flutter-io.cn" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: "0730c18c770d05636a8f945c32a4d7d81cb6e0f0148c8db4ad12e7748f7e49af" + url: "https://pub.flutter-io.cn" + source: hosted + version: "8.12.5" characters: dependency: transitive description: @@ -41,6 +121,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.4" clock: dependency: transitive description: @@ -49,6 +137,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.1.2" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d" + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.11.1" collection: dependency: transitive description: @@ -57,6 +153,22 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.2" + crypto: + dependency: transitive + description: + name: crypto + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.7" cupertino_icons: dependency: "direct main" description: @@ -65,6 +177,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.0.8" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.3.6" dbus: dependency: transitive description: @@ -97,6 +217,22 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.2.0" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.flutter-io.cn" + source: hosted + version: "7.0.1" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.1" fluent_ui: dependency: "direct main" description: @@ -168,6 +304,54 @@ packages: description: flutter source: sdk version: "0.0.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.3" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.3.2" + hive: + dependency: "direct main" + description: + name: hive + sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.3" + hive_flutter: + dependency: "direct main" + description: + name: hive_flutter + sha256: dca1da446b1d808a51689fb5d0c6c9510c0a2ba01e22805d492c73b68e33eecc + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.1.0" + hive_generator: + dependency: "direct dev" + description: + name: hive_generator + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.1" http: dependency: transitive description: @@ -176,6 +360,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.6.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.2.2" http_parser: dependency: transitive description: @@ -192,6 +384,46 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "0.20.2" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.5" + jni: + dependency: transitive + description: + name: jni + sha256: c2230682d5bc2362c1c9e8d3c7f406d9cbba23ab3f2e203a025dd47e0fb2e68f + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.0" + jni_flutter: + dependency: transitive + description: + name: jni_flutter + sha256: "8b59e590786050b1cd866677dddaf76b1ade5e7bc751abe04b86e84d379d3ba6" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.1" + js: + dependency: transitive + description: + name: js + sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.7.2" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8 + url: "https://pub.flutter-io.cn" + source: hosted + version: "4.11.0" leak_tracker: dependency: transitive description: @@ -224,6 +456,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "5.1.1" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.0" matcher: dependency: transitive description: @@ -256,6 +496,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.17.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.0" nested: dependency: transitive description: @@ -272,6 +520,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.3.1" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.0" path: dependency: transitive description: @@ -280,6 +536,54 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.9.1" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.3.1" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "6d13aece7b3f5c5a9731eaf553ff9dcbc2eff41087fd2df587fd0fed9a3eb0c4" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.5.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.3.0" petitparser: dependency: transitive description: @@ -288,6 +592,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "7.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.6" plugin_platform_interface: dependency: transitive description: @@ -296,6 +608,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.1.8" + pool: + dependency: transitive + description: + name: pool + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.5.2" provider: dependency: transitive description: @@ -304,6 +624,22 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "6.1.5+1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.5.0" recase: dependency: transitive description: @@ -328,11 +664,43 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "0.5.0" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.4.2" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.1" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.0" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.5.0" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.3.5" source_span: dependency: transitive description: @@ -357,6 +725,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.1.1" string_scanner: dependency: transitive description: @@ -421,6 +797,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "0.10.1" + timing: + dependency: transitive + description: + name: timing + sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.2" typed_data: dependency: transitive description: @@ -445,6 +829,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "14.3.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.2.1" web: dependency: transitive description: @@ -453,6 +845,22 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.0.3" window_size: dependency: "direct main" description: @@ -477,6 +885,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "6.6.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.3" sdks: dart: ">=3.10.0 <4.0.0" - flutter: ">=3.32.0" + flutter: ">=3.35.6" diff --git a/pubspec.yaml b/pubspec.yaml index 1633c95..1c2afee 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1 +1 @@ -name: task_hub description: "待办事项、日程安排" # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 # followed by an optional build number separated by a +. # Both the version and the builder number may be overridden in flutter # build by specifying --build-name and --build-number, respectively. # In Android, build-name is used as versionName while build-number used as versionCode. # Read more about Android versioning at https://developer.android.com/studio/publish/versioning # In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. version: 1.0.0+1 environment: sdk: ^3.10.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions # consider running `flutter pub upgrade --major-versions`. Alternatively, # dependencies can be manually updated by changing the version numbers below to # the latest version available on pub.dev. To see which dependencies have newer # versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 flutter_local_notifications: ^19.5.0 syncfusion_flutter_calendar: ^30.1.37 fluent_ui: ^4.15.0 omni_datetime_picker: ^2.3.1 intl: ^0.20.2 window_size: ^0.1.0 dev_dependencies: flutter_test: sdk: flutter # The "flutter_lints" package below contains a set of recommended lints to # encourage good coding practices. The lint set provided by the package is # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. flutter_lints: ^5.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec # The following section is specific to Flutter packages. flutter: uses-material-design: true assets: - assets/icons/ fonts: - family: CustomFont fonts: - asset: fonts/custom.ttf \ No newline at end of file +name: task_hub description: "待办事项、日程安排" publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: sdk: ^3.10.0 dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 flutter_local_notifications: ^19.5.0 syncfusion_flutter_calendar: ^30.1.37 fluent_ui: ^4.15.0 omni_datetime_picker: ^2.3.1 intl: ^0.20.2 window_size: ^0.1.0 hive: ^2.2.3 hive_flutter: ^1.1.0 dev_dependencies: flutter_test: sdk: flutter hive_generator: ^2.0.1 build_runner: ^2.4.6 flutter_lints: ^5.0.0 flutter: uses-material-design: true assets: - assets/icons/ fonts: - family: CustomFont fonts: - asset: fonts/custom.ttf \ No newline at end of file diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 2f5dad0..8d33b0b 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -8,6 +8,7 @@ list(APPEND FLUTTER_PLUGIN_LIST list(APPEND FLUTTER_FFI_PLUGIN_LIST flutter_local_notifications_windows + jni ) set(PLUGIN_BUNDLED_LIBRARIES)