This commit is contained in:
DelLevin-Home
2026-06-18 18:52:01 +08:00
parent ba2612fef8
commit 8c7631b252
23 changed files with 906 additions and 599 deletions

View File

@@ -1806,6 +1806,7 @@ class _MovieFormPageState extends State<MovieFormPage> {
return;
}
try {
// 收集所有多值字段输入框中的未提交内容
_collectUnsubmittedValues();
@@ -1869,6 +1870,10 @@ class _MovieFormPageState extends State<MovieFormPage> {
ToastUtil.show(context, widget.movie == null ? '添加成功' : '更新成功');
Navigator.pop(context);
} catch (e) {
if (!mounted) return;
ToastUtil.show(context, '保存失败: $e');
}
}
/// 将海报从临时ID目录移动到新的影视ID目录

View File

@@ -303,6 +303,7 @@ class _MovieReviewFormPageState extends State<MovieReviewFormPage> {
Future<void> _saveReview() async {
if (!_formKey.currentState!.validate()) return;
try {
final now = DateTime.now();
if (widget.review == null) {
@@ -331,5 +332,9 @@ class _MovieReviewFormPageState extends State<MovieReviewFormPage> {
if (!mounted) return;
ToastUtil.show(context, widget.review == null ? '添加成功' : '更新成功');
Navigator.pop(context);
} catch (e) {
if (!mounted) return;
ToastUtil.show(context, '保存失败: $e');
}
}
}

View File

@@ -28,6 +28,7 @@ class _MovieTabPageState extends State<MovieTabPage> {
int _lastDataCount = -1;
DateTime? _lastUpdatedAt;
late ScrollController _scrollController;
AppProvider? _provider;
static const _statusMap = {0: 'watched', 1: 'watching', 2: 'want_to_watch'};
@@ -38,6 +39,7 @@ class _MovieTabPageState extends State<MovieTabPage> {
_scrollController = ScrollController()..addListener(_onScroll);
WidgetsBinding.instance.addPostFrameCallback((_) {
final provider = context.read<AppProvider>();
_provider = provider;
provider.addListener(_onDataChanged);
_lastDataCount = provider.movies.length;
if (provider.movies.isNotEmpty) _lastUpdatedAt = provider.movies.first.updatedAt;
@@ -47,6 +49,7 @@ class _MovieTabPageState extends State<MovieTabPage> {
@override
void dispose() {
_provider?.removeListener(_onDataChanged);
_scrollController.dispose();
super.dispose();
}