From fa705507ba574c857b1667553737d23b1b7ff495 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 12 五月 2022 12:06:31 +0800
Subject: [PATCH] 后端模板代码优化

---
 src/main/resources/code/flutter_module/lib/ui/widget/refresh_listview.dart |  168 +++++++++++++++++++++++++++++++------------------------
 1 files changed, 94 insertions(+), 74 deletions(-)

diff --git a/src/main/resources/code/flutter_module/lib/ui/widget/refresh_listview.dart b/src/main/resources/code/flutter_module/lib/ui/widget/refresh_listview.dart
index add315e..76f7e78 100644
--- a/src/main/resources/code/flutter_module/lib/ui/widget/refresh_listview.dart
+++ b/src/main/resources/code/flutter_module/lib/ui/widget/refresh_listview.dart
@@ -1,17 +1,19 @@
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
+import '../../ui/widget/button.dart';
 import 'package:pull_to_refresh/pull_to_refresh.dart';
 
 typedef OnRefresh = void Function();
 typedef OnLoadMore = void Function();
 typedef BoolCallback = void Function(bool b);
+typedef StringCallback = void Function(String s);
 typedef GetViewState = RefreshListViewState Function();
 
 class MyRefreshController extends RefreshController {
   MyRefreshController({
     bool initialRefresh = true,
   }) : super(
-            initialRefresh: initialRefresh, initialLoadStatus: LoadStatus.idle);
+      initialRefresh: initialRefresh, initialLoadStatus: LoadStatus.idle);
 
   //api閿欒
   VoidCallback? apiError;
@@ -37,7 +39,7 @@
   void dispose() {
     apiError = null;
     dataEmpty = null;
-    dataNormal=null;
+    dataNormal = null;
     setPullDownEnable = null;
     setPullUpEnable = null;
     setEditMode = null;
@@ -47,19 +49,23 @@
 class RefreshListView extends StatefulWidget {
   final MyRefreshController refreshController;
   final Widget content;
+  final Widget? emptyView;
   final OnRefresh? refresh;
   final OnLoadMore? loadMore;
+  final Color loadTextColor;
   bool? enablePullDown;
 
   bool? enablePullUp;
 
   RefreshListView(
       {required this.refreshController,
-      required this.content,
-      this.refresh,
-      this.loadMore,
-      this.enablePullDown = true,
-      this.enablePullUp = true});
+        required this.content,
+        this.emptyView,
+        this.refresh,
+        this.loadTextColor = const Color(0xFFB8AFB5),
+        this.loadMore,
+        this.enablePullDown = true,
+        this.enablePullUp = true});
 
   @override
   State<StatefulWidget> createState() => _RefreshListViewState();
@@ -77,7 +83,7 @@
   bindController() {
     widget.refreshController.apiError = _apiError;
     widget.refreshController.dataEmpty = _dataEmpty;
-    widget.refreshController.dataNormal =_dataNormal;
+    widget.refreshController.dataNormal = _dataNormal;
     widget.refreshController.setPullDownEnable = _pullDownEnable;
     widget.refreshController.setPullUpEnable = _pullUpEnable;
     widget.refreshController.viewState = () {
@@ -88,7 +94,6 @@
         editMode = enable;
       });
     };
-
   }
 
   //瑙嗗浘鐘舵�� 0-姝e父  1-绌鸿鍥�  2-缃戠粶璇锋眰閿欒
@@ -151,85 +156,100 @@
     return editMode
         ? widget.content
         : SmartRefresher(
-            enablePullDown: widget.enablePullDown!,
-            enablePullUp: widget.enablePullUp!,
-            header: const WaterDropHeader(
-              complete: Text(
-                "鍒锋柊瀹屾垚",
-                style: TextStyle(color: Color(0xFFB8AFB5)),
-              ),
-            ),
-            footer: CustomFooter(
-              builder: (BuildContext context, LoadStatus? mode) {
-                Widget body;
-                if (mode == LoadStatus.idle) {
-                  body = const Text("",
-                      style: TextStyle(color: Color(0xFFB8AFB5)));
-                } else if (mode == LoadStatus.loading) {
-                  body = const CupertinoActivityIndicator();
-                } else if (mode == LoadStatus.failed) {
-                  body = const Text("鍔犺浇澶辫触锛佺偣鍑婚噸璇曪紒",
-                      style: TextStyle(color: Color(0xFFB8AFB5)));
-                } else if (mode == LoadStatus.canLoading) {
-                  body = const Text("鏉炬墜,鍔犺浇鏇村!",
-                      style: TextStyle(color: Color(0xFFB8AFB5)));
-                } else {
-                  body = const Text("娌℃湁鏇村鏁版嵁浜�!",
-                      style: TextStyle(color: Color(0xFFB8AFB5)));
-                }
-                return SizedBox(
-                  height: 55.0,
-                  child: Center(child: body),
-                );
-              },
-            ),
-            controller: widget.refreshController,
-            onRefresh: _onRefresh,
-            onLoading: _onLoading,
-            child: widget.content,
-          );
-  }
+      enablePullDown: widget.enablePullDown!,
+      enablePullUp: widget.enablePullUp!,
+      header:
+      MaterialClassicHeader(),
 
-  Widget emptyView() {
-    return Container(
-      width: MediaQuery.of(context).size.width * 2 / 3,
-      alignment: Alignment.center,
-      // color: Colors.yellow,
-      child: Stack(
-        alignment: Alignment.bottomCenter,
-        children: [
-          Image.asset(
-            "assets/imgs/common/ic_empty.png",
-          ),
-          const Text(
-            "鏆傛棤鏁版嵁     ",
-            style: TextStyle(color: Color(0xFFF698C9), fontSize: 18),
-          )
-        ],
+      // const WaterDropHeader(
+      //   complete: Text(
+      //     "鍒锋柊瀹屾垚",
+      //     style: TextStyle(color: Color(0xFFB8AFB5)),
+      //   ),
+      // ),
+      footer: CustomFooter(
+        builder: (BuildContext context, LoadStatus? mode) {
+          Widget body;
+          if (mode == LoadStatus.idle) {
+            body = const Text("",
+                style: TextStyle(color: Color(0xFFB8AFB5)));
+          } else if (mode == LoadStatus.loading) {
+            body = const CupertinoActivityIndicator();
+          } else if (mode == LoadStatus.failed) {
+            body = const Text("鍔犺浇澶辫触锛佺偣鍑婚噸璇曪紒",
+                style: TextStyle(color: Color(0xFFB8AFB5)));
+          } else if (mode == LoadStatus.canLoading) {
+            body = const Text("鏉炬墜,鍔犺浇鏇村!",
+                style: TextStyle(color: Color(0xFFB8AFB5)));
+          } else {
+            body = Text("~鍒板簳浜唦",
+                style: TextStyle(color: widget.loadTextColor));
+          }
+          return SizedBox(
+            height: 55.0,
+            child: Center(child: body),
+          );
+        },
       ),
+      controller: widget.refreshController,
+      onRefresh: _onRefresh,
+      onLoading: _onLoading,
+      child: widget.content,
     );
   }
 
-  Widget errorView() {
-    return InkWell(
-        onTap: () {
-          _onRefresh();
-        },
-        child: Container(
+  Widget emptyView() {
+    return widget.emptyView ??
+        Container(
+          width: MediaQuery.of(context).size.width * 2 / 3,
           alignment: Alignment.center,
           // color: Colors.yellow,
           child: Stack(
             alignment: Alignment.bottomCenter,
             children: [
-              Image.asset("assets/imgs/common/ic_network_error.png",
-                  width: MediaQuery.of(context).size.width * 2 / 5),
+              Image.asset(
+                "assets/imgs/common/ic_empty.png",
+              ),
               const Text(
-                "缃戠粶寮傚父锛岀偣鍑婚噸鏂板姞杞�",
-                style: TextStyle(color: Color(0xFFF698C9), fontSize: 18),
+                "~绌虹┖濡備篃~",
+                style: TextStyle(color: Color(0xFF999999), fontSize: 18),
               )
             ],
           ),
-        ));
+        );
+  }
+
+  Widget errorView() {
+    return Container(
+      alignment: Alignment.center,
+      // color: Colors.yellow,
+      child: Stack(
+        alignment: Alignment.bottomCenter,
+        children: [
+          Image.asset("assets/imgs/common/ic_network_error.png",
+              width: MediaQuery.of(context).size.width * 3 / 5),
+          const Positioned(
+              bottom: 50,
+              left: 0,
+              right: 0,
+              child: Text(
+                "缃戠粶璇锋眰鍑洪敊",
+                textAlign: TextAlign.center,
+                style: TextStyle(fontSize: 15, color: Color(0xFF999999)),
+              )),
+          MyFillButton(
+            "鐐瑰嚮閲嶆柊鍔犺浇",
+            18,
+            width: 170,
+            height: 36,
+            fontSize: 15,
+            onClick: () {
+              _onRefresh();
+            },
+          )
+        ],
+      ),
+    );
   }
 
   @override

--
Gitblit v1.8.0