feat(account): 增加账号中心页面逻辑

This commit is contained in:
Zhou Weidong committed 2026-10-19 09:48:07 +08:00
1 parent ef7f4ce3b6
commit c68f02449f
6 files changed
+503

No files matched your search

@@ -0,0 +1,54 @@
// Author: fruit.com.cn
import 'package:flutter/foundation.dart';
import '../../core/data/models/account_export.dart';
import '../../core/data/remote/api_client.dart';
import '../../core/data/repositories/account_repository.dart';
/// 账号数据导出状态与复制动作。
class AccountExportLogic extends ChangeNotifier {
AccountExportLogic(this._repository, {required this.copyText});
final AccountRepository _repository;
final Future<void> Function(String text) copyText;
AccountExport? data;
bool loading = false;
String? error;
bool _disposed = false;
/// 加载完整导出数据。
Future<void> load() async {
loading = true;
error = null;
_notify();
try {
data = await _repository.export();
} catch (failure) {
error = failure is ApiException
? failure.message
: 'accountExportLoadFailed';
} finally {
loading = false;
_notify();
}
}
/// 把后端下发的完整 JSON 写入剪贴板。
Future<bool> copy() async {
final current = data;
if (current == null) return false;
await copyText(current.rawJson);
return true;
}
void _notify() {
if (!_disposed) notifyListeners();
}
@override
void dispose() {
_disposed = true;
super.dispose();
}
}