Przeglądaj źródła

修复搜索问题

iOS_cz 4 lat temu
rodzic
commit
99fcdacd3f

+ 7 - 7
lib/internal/bbs/presenter/mix_search_list_presenter.dart

@@ -92,7 +92,8 @@ class MixListPresenter extends BasePagePresenter<SearchIndexState> {
   }
 
   Future getShopList(int page, String name, brandId) async {
-    await NewApiService().getShopList(page, 10, null, name, brandId, onSuccess: (res) {
+    await NewApiService().getShopList(page, 10, null, name, brandId,
+        onSuccess: (res) {
       view.closeProgress();
       if (res != null) {
         view.provider.setHasMore(res.records.length == 10);
@@ -119,20 +120,19 @@ class MixListPresenter extends BasePagePresenter<SearchIndexState> {
   }
 
   Future getNewsList(int page, String title) async {
-    await NewApiService().newsList(page, 10, 0, title,
-        onSuccess: (res) {
+    await NewApiService().newsList(page, 10, 0, title, onSuccess: (res) {
       view.closeProgress();
       if (res != null) {
-        view.provider.setHasMore(res.news.rows.length == 10);
+        view.provider.setHasMore(res.rows.length == 10);
         if (page == 1) {
           view.provider.list.clear();
-          if (res.news.rows.isEmpty) {
+          if (res.rows.isEmpty) {
             view.provider.setStateType(StateType.empty);
           } else {
-            view.provider.addAll(res.news.rows);
+            view.provider.addAll(res.rows);
           }
         } else {
-          view.provider.addAll(res.news.rows);
+          view.provider.addAll(res.rows);
         }
       } else {
         /// 加载失败

+ 4 - 1
lib/internal/friends/page/friends_list.dart

@@ -4,6 +4,7 @@ import 'package:liftmanager/net/api_service.dart';
 import 'package:liftmanager/utils/toast.dart';
 import 'package:liftmanager/widgets/app_bar.dart';
 import 'package:liftmanager/routers/fluro_navigator.dart';
+// import 'package:liftmanager/widgets/app_search_bar.dart';
 import 'package:liftmanager/widgets/search_app_bar.dart';
 import './message_page/conversation_item.dart';
 import 'package:liftmanager/internal/friends/friends_router.dart';
@@ -25,7 +26,7 @@ class FriendsListState extends State<FriendsList>
   int _page = 1;
   bool _hasData = false;
   String changeRoomId;
-
+  String _searchText;
   @override
   void initState() {
     super.initState();
@@ -151,8 +152,10 @@ class FriendsListState extends State<FriendsList>
         children: [
           SearchAppBar(
             hintText: '搜索',
+            searchText: _searchText,
             autoFocus: false,
             onPressed: (searchText) {
+              _searchText = searchText;
               _hasData = false;
               friendsList = [];
               getFriendsList(searchWord: searchText);

+ 22 - 5
lib/internal/lift/page/lift_map_page.dart

@@ -49,7 +49,22 @@ class LiftMapPageState extends State<LiftMapPage> {
       }
       latLng.latitude = double.parse(arr[1]);
       latLng.longitude = double.parse(arr[0]);
-    }
+    } else {}
+  }
+
+  setlatlng() {
+    var helper = LocationHelper();
+
+    helper
+        .getLocation((String lat, String lng, String cityName, {provinceName}) {
+      if (lat != null && lng != null) {
+        helper.stopGettingLocation();
+      }
+      latLng = LatLng(double.parse(lat), double.parse(lng));
+      _controller?.setCenterCoordinate(latLng);
+      // setState(() {});
+      // NavigatorUtils.goBackWithParams(context, "$lng,$lat");
+    });
   }
 
   @override
@@ -85,6 +100,7 @@ class LiftMapPageState extends State<LiftMapPage> {
   @override
   void dispose() {
     super.dispose();
+    _controller.dispose();
   }
 
   Future<bool> requestPermission() async {
@@ -102,13 +118,13 @@ class LiftMapPageState extends State<LiftMapPage> {
   saveLatLng() async {
     var helper = LocationHelper();
 
-    helper.getLocation((String lat, String lng, String cityName, {provinceName}) {
+    helper
+        .getLocation((String lat, String lng, String cityName, {provinceName}) {
       if (lat != null && lng != null) {
         helper.stopGettingLocation();
       }
 
-      NavigatorUtils.goBackWithParams(
-          context, "$lng,$lat");
+      NavigatorUtils.goBackWithParams(context, "$lng,$lat");
     });
   }
 
@@ -153,12 +169,13 @@ class LiftMapPageState extends State<LiftMapPage> {
         maskDelay: Duration(milliseconds: 500),
         markers: _markers,
         // 中心点坐标
-        centerCoordinate: latLng,
+        centerCoordinate: latLng.latitude > 0 ? latLng : null,
         // 标记
 
         onMapCreated: (controller) async {
           _controller = controller;
           if (widget.type == MapPageType.Check) {
+            setlatlng();
             // await getLocation();
             await _controller?.showMyLocation(MyLocationOption(
               myLocationType: MyLocationType.Locate,

+ 1 - 1
lib/internal/search/page/search_index.dart

@@ -98,7 +98,7 @@ class SearchIndexState extends BasePageState<SearchIndex, MixListPresenter> {
     } else if (widget.type == ListType.video) {
       await presenter.getVideoList(_page, widget.text);
     } else if (widget.type == ListType.goods) {
-      await presenter.getShopList(_page, null, widget.text);
+      await presenter.getShopList(_page, widget.text, null);
     } else if (widget.type == ListType.position) {
       await presenter.getPositionList(_page, widget.text);
     } else if (widget.type == ListType.news) {

+ 35 - 6
lib/widgets/bbs_content.dart

@@ -10,7 +10,10 @@ import 'package:flutter_spinkit/flutter_spinkit.dart';
 import 'package:flutter_swiper/flutter_swiper.dart';
 import 'package:liftmanager/internal/bbs/bbs_router.dart';
 import 'package:liftmanager/internal/bbs/model/banner_model.dart' as banner;
+import 'package:liftmanager/internal/bbs/model/mix_model.dart';
+import 'package:liftmanager/internal/bbs/model/search_model.dart';
 import 'package:liftmanager/internal/means/page/means_pdf.dart';
+import 'package:liftmanager/internal/news/model/news_comm_entity.dart';
 import 'package:liftmanager/internal/news/news_router.dart';
 import 'package:liftmanager/internal/work/work_router.dart';
 import 'package:liftmanager/res/iconfont.dart';
@@ -226,6 +229,11 @@ class QuestionCell extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
+    if (item is Records || item is InfoList) {
+    } else {
+      return Container();
+      // data = NewsItems();
+    }
     return GestureDetector(
       child: Container(
         padding: EdgeInsets.only(
@@ -254,7 +262,7 @@ class QuestionCell extends StatelessWidget {
                       borderRadius: BorderRadius.circular(15),
                       child: Container(
                         child: LoadNetworkImage(
-                          item.avatarUrl,
+                          item?.avatarUrl,
                           // fit: BoxFit.fitWidth,
                           width: 31,
                           height: 31,
@@ -264,7 +272,7 @@ class QuestionCell extends StatelessWidget {
                     width: 5,
                   ),
                   Text(
-                    item.userName ?? null,
+                    item.userName ?? '',
                     style: TextStyle(
                       fontSize: 14,
                       fontWeight: FontWeight.w500,
@@ -282,7 +290,7 @@ class QuestionCell extends StatelessWidget {
                 height: 10,
               ),
               Text(
-                item.expression,
+                item.expression ?? '',
                 textAlign: TextAlign.left,
                 style: TextStyle(
                   color: Color(0xff999999),
@@ -498,12 +506,17 @@ class HotClass {
 }
 
 class VideoCell extends StatelessWidget {
-  final dynamic data;
+  dynamic data;
 
   VideoCell(this.data);
 
   @override
   Widget build(Object context) {
+    if (data is Records || data is InfoList) {
+    } else {
+      return Container();
+      // data = NewsItems();
+    }
     return GestureDetector(
       child: Container(
           height: 116,
@@ -625,6 +638,11 @@ class ProductCell extends StatelessWidget {
 
   @override
   Widget build(Object context) {
+    if (data is Records || data is InfoList) {
+    } else {
+      return Container();
+      // data = NewsItems();
+    }
     return InkWell(
       child: Container(
         height: 110,
@@ -640,7 +658,7 @@ class ProductCell extends StatelessWidget {
             ClipRRect(
               borderRadius: BorderRadius.circular(10),
               child: LoadNetworkImage(
-                data.imgs.split(",")[0],
+                (data?.imgs ?? '').split(",")[0],
                 width: ScreenUtil().setWidth(90),
                 height: ScreenUtil().setWidth(90),
                 isWater: true,
@@ -771,6 +789,11 @@ class NewsCell extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     double width = MediaQuery.of(context).size.width;
+    if (data is NewsItems || data is InfoList) {
+    } else {
+      return Container();
+      // data = NewsItems();
+    }
     return InkWell(
       onTap: () {
         NavigatorUtils.push(context, "${NewsRouter.newsDetail}?id=${data.id}");
@@ -830,6 +853,12 @@ class PositionCell extends StatelessWidget {
   Widget build(BuildContext context) {
     double width = MediaQuery.of(context).size.width;
 
+    if (data is Records || data is InfoList) {
+    } else {
+      return Container();
+      // data = NewsItems();
+    }
+
     return InkWell(
       child: Container(
         child: Column(
@@ -877,7 +906,7 @@ class PositionCell extends StatelessWidget {
                     Container(
                       width: width * 0.4,
                       child: Text(
-                        '${data.lowerSalary.toInt()}-${data.upperSalary.toInt()}/月',
+                        '${data.lowerSalary?.toInt()}-${data.upperSalary?.toInt()}/月',
                         textAlign: TextAlign.right,
                         style: TextStyle(
                           fontSize: 14,

+ 3 - 2
lib/widgets/search_app_bar.dart

@@ -9,7 +9,7 @@ import 'load_image.dart';
 
 /// 搜索页的AppBar
 class SearchAppBar extends StatefulWidget implements PreferredSizeWidget {
-  const SearchAppBar({
+  SearchAppBar({
     Key key,
     this.hintText: "",
     this.searchText,
@@ -18,7 +18,7 @@ class SearchAppBar extends StatefulWidget implements PreferredSizeWidget {
   }) : super(key: key);
 
   final String hintText;
-  final searchText;
+  String searchText;
   final Function(String) onPressed;
   final bool autoFocus;
 
@@ -124,6 +124,7 @@ class _SearchAppBarState extends State<SearchAppBar> {
                               /// https://github.com/flutter/flutter/issues/35909
                               SchedulerBinding.instance
                                   .addPostFrameCallback((_) {
+                                widget.searchText = '';
                                 _controller.text = "";
                               });
                             },