Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

杨树贤 / kefu_server

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Settings
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Find file
BlameHistoryPermalink
Switch branch/tag
  • kefu_server
  • ui
  • kefu_workbench
  • lib
  • provider
  • robot.dart
  • chenxianqi's avatar
    增加kefu_workbench · a18da124
    chenxianqi committed 5 years ago
    a18da124
robot.dart 1.9 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
import 'package:dio/dio.dart';

import '../core_flutter.dart';

class RobotProvide with ChangeNotifier {

  RobotService robotService = RobotService.getInstance();

  static RobotProvide instance;

   // 单例
  static RobotProvide getInstance() {
    if (instance != null) {
      return instance;
    }
    instance = RobotProvide();
    return instance;
  }

  RobotProvide(){
    getRobots();
  }

  bool isLoading = false;
  List<RobotModel> robots = [];

    /// 获取列表数据
  Future<void> getRobots() async{
    isLoading = true;
    notifyListeners();
    Response response = await robotService.getList();
    isLoading = false;
    notifyListeners();
    if (response.data["code"] == 200) {
      robots = (response.data["data"] as List).map((i) => RobotModel.fromJson(i)).toList();
      notifyListeners();
    } else {
      UX.showToast("${response.data["message"]}");
    }
  }

  /// 更新单个数据
  Future<void> getRobot(int id) async{
    Response response = await RobotService.getInstance().getItem(id: id);
    if (response.data["code"] == 200) {
      RobotModel _robot = RobotModel.fromJson(response.data["data"]);
      int index = robots.indexWhere((k) => k.id == id);
      if(index != null){
        robots[index] = _robot;
        notifyListeners();
      }
    }
  }
  /// 找出一个
  RobotModel getItem(int id){
    return robots.firstWhere((k) => k.id == id);
  }

  /// 删除单个数据
  void deleteItem(int id){
    robots.removeWhere((i) => i.id == id);
  }

    // onRefresh
  Future<bool> onRefresh() async{
    await getRobots();
    UX.showToast("刷新成功", position: ToastPosition.top);
    return true;
  }


  /// add
  void goAdd(BuildContext context) async{
    Navigator.pushNamed(context, "/robot_add").then((isSuccess){
      if(isSuccess == true){
        getRobots();
      }
    });
  }

  

  @override
  void dispose() {
    instance = null;
    super.dispose();
  }

  
}