12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import 'package:get/get.dart';
- import 'package:vitalapp/architecture/defines.dart';
- import 'package:vitalapp/architecture/utils/prompt_box.dart';
- import 'package:vitalapp/database/entities/defines.dart';
- import 'package:vitalapp/global.dart';
- import 'package:vitalapp/managers/interfaces/data_sync.dart';
- import 'state.dart';
- class SyncCenterController extends FControllerBase {
- final state = SyncCenterState();
- final syncManager = Get.find<IDataSyncManager>();
- @override
- void onReady() {
- super.onReady();
- reloadPageList();
- }
- /// 获取可上传(筛选后)的数量
- Future<int> getCanUploadCount() async {
- final result = await syncManager.getPatientPagedList(
- 1,
- isReturnCountOnly: true,
- syncStates: [
- OfflineDataSyncState.fail,
- OfflineDataSyncState.wait,
- ],
- );
- return result.totalCount;
- }
- /// 单个上传
- ///
- /// [index] 选择的索引
- Future<void> uploadSingle(int index) async {
- if (!kIsOnline) {
- PromptBox.toast("请检查网络连接");
- return;
- }
- SyncCenterDataModel model = state.dataList[index];
- final data = model.data;
- final patientCode = data.code;
- setBusy("正在上传...");
- // 让Loading显示一会
- await Future.delayed(const Duration(milliseconds: 500));
- final result = await syncManager.syncPatientAllData(patientCode);
- // 让错误提示也显示一会
- await Future.delayed(const Duration(milliseconds: 500));
- final message = "上传${result ? "成功" : "失败"}";
- PromptBox.toast(message);
- // 刷新列表
- await reloadPageList();
- cancelBusy();
- }
- /// 加载分页列表
- Future<void> reloadPageList() async {
- state.pageIndex = 1;
- state.dataList = [];
- await loadNextPageList();
- }
- /// 追加下一页数据
- Future<void> loadNextPageList() async {
- busy = true;
- final pagedList = await syncManager.getPatientPagedList(
- state.pageIndex,
- syncStates: state.syncState != null ? [state.syncState!] : [],
- );
- state.totalCount = pagedList.totalCount;
- final appendList =
- pagedList.data.map((e) => SyncCenterDataModel(e)).toList();
- state.dataList = [...state.dataList, ...appendList];
- state.pageIndex = state.pageIndex + 1;
- busy = false;
- }
- }
|