| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- import 'package:electronic_assistant/base/base_controller.dart';
- import 'package:electronic_assistant/data/repositories/account_repository.dart';
- import 'package:electronic_assistant/data/repositories/talk_repository.dart';
- import 'package:electronic_assistant/utils/error_handler.dart';
- import 'package:flutter/widgets.dart';
- import 'package:get/get.dart';
- import 'package:get/get_rx/src/rx_types/rx_types.dart';
- import 'package:pull_to_refresh/pull_to_refresh.dart';
- import '../../data/api/response/example_info_response.dart';
- import '../../data/bean/talks.dart';
- import '../../data/repositories/config_repository.dart';
- import '../../resource/string.gen.dart';
- import '../../utils/event_bus.dart';
- import '../../utils/toast_util.dart';
- class FilesController extends BaseController {
- final refreshController = RefreshController(initialRefresh: false);
- int limit = 10;
- @override
- void onReady() {
- super.onReady();
- onRefreshData();
- eventBus.on(EventUserLogin, (arg) {
- onRefreshData();
- });
- }
- RxList<TalkBean> get talkList => talkRepository.talkList;
- void requestTalkData(int offset, int limit,
- {bool? isClearAll = false}) async {
- if (accountRepository.isLogin.value) {
- talkRepository
- .requestTalkPagePaginate(offset, limit, isClearAll: isClearAll)
- .then((response) {
- debugPrint("requestTalkData-response-$response");
- if (talkRepository.talkList.length >= response.count) {
- debugPrint("requestTalkData-没有更多数据了");
- refreshController.loadNoData();
- } else {
- refreshController.loadComplete();
- }
- refreshController.refreshCompleted();
- }).catchError((error) {
- debugPrint("requestTalkData-catchError-$error");
- refreshController.loadFailed();
- refreshController.refreshFailed();
- ErrorHandler.toastError(error);
- });
- } else {
- ExampleInfoResponse exampleInfo = await configRepository.getExampleInfo();
- talkRepository.setTalkList(
- exampleInfo.talkInfoList != null ? exampleInfo.talkInfoList! : []);
- refreshController.refreshCompleted();
- refreshController.loadNoData();
- }
- }
- void onRefreshData() {
- requestTalkData(0, limit, isClearAll: true);
- }
- void onLoadMoreTalkData() {
- requestTalkData(talkList.length, limit);
- }
- void requestName(String? newName, TalkBean bean) {
- talkRepository.talkRename(bean.id, newName).then((data) {
- bean.title.value = newName;
- ToastUtil.showToast(StringName.talkRenameSuccess.tr);
- }).catchError((error) {
- ErrorHandler.toastError(error, message: StringName.talkRenameFail.tr);
- });
- }
- void requestDelete(TalkBean item) {
- talkRepository.talkDelete(item.id).then((data) {
- talkRepository.talkList.remove(item);
- ToastUtil.showToast(StringName.talkDeleteSuccess.tr);
- }).catchError((error) {
- ErrorHandler.toastError(error, message: StringName.talkDeleteFail.tr);
- });
- }
- }
|