Просмотр исходного кода

自动播放&邮件查询&登录客服QQ动态查询

panhui 6 лет назад
Родитель
Сommit
2185feae69

+ 11 - 3
lib/pages/LoginSecond.dart

@@ -15,6 +15,7 @@ import '../redux/UserRedux.dart';
 import '../model/UserInfo.dart';
 import '../widget/LinearButton.dart';
 import '../widget/Dialog.dart';
+import '../model/CustomerService.dart';
 
 class LoginSecond extends StatefulWidget {
   LoginSecond({Key key, this.phone, this.userId = 0}) : super(key: key);
@@ -32,12 +33,19 @@ class LoginSecondState extends State<LoginSecond> {
   String surePass;
   String useToken;
   Timer timer;
+  String _qq;
 
   @override
   void initState() {
     super.initState();
-    Future.delayed(Duration.zero, () {
+    Future.delayed(Duration.zero, () async {
       // sendMsg();
+      Result res2 = await HttpManager.get('customerService/random');
+      if (res2.success) {
+        setState(() {
+          _qq = CustomerService.fromJson(res2.data).qq;
+        });
+      }
     });
   }
 
@@ -89,7 +97,7 @@ class LoginSecondState extends State<LoginSecond> {
                                     width: 20,
                                   ),
                                 ),
-                                hintText: widget.userId==0?'请设置您的密码':'请输入您的密码',
+                                hintText: widget.userId == 0 ? '请设置您的密码' : '请输入您的密码',
                                 hintStyle: TextStyle(
                                   fontSize: 16,
                                   color: Color(0xFF727785),
@@ -139,7 +147,7 @@ class LoginSecondState extends State<LoginSecond> {
                                     onTap: () {
                                       MyDialog.showDialog(context, '找回密码请联系客服',
                                           textList: [
-                                            {'value': 'QQ:561133222', 'isImportant': false}
+                                            {'value': 'QQ:${_qq}', 'isImportant': false}
                                           ],
                                           title: '找回密码');
                                     },

+ 29 - 11
lib/pages/MatchPage.dart

@@ -1,5 +1,4 @@
 import 'package:flutter/material.dart';
-import 'package:flutter/material.dart' as prefix0;
 import 'package:flutter/painting.dart';
 import 'package:flutter_swiper/flutter_swiper.dart';
 import 'package:shared_preferences/shared_preferences.dart';
@@ -46,8 +45,10 @@ class _MatchPageState extends State<MatchPage> with WidgetsBindingObserver {
   int tipNum = 0;
   bool showMoreRoom = false;
   bool isFinish = false;
+  Timer timer;
 
   Future<void> getUnreadMsg() async {
+    print('检查信息');
     Result res = await HttpManager.get('systemNotice/unread', data: {'userId': StoreProvider.of<AppState>(context).state.userInfo.id, 'statusFlag': 0});
     if (res.success && res.data != null) {
       setState(() {
@@ -259,6 +260,12 @@ class _MatchPageState extends State<MatchPage> with WidgetsBindingObserver {
       if (prefs.getString('showPhoneInfo') != timeStr) {
         getPhoneInfo();
       }
+      if (timer != null) {
+        timer.cancel();
+      }
+      timer = Timer.periodic(Duration(seconds: 2), (timer) {
+        getUnreadMsg();
+      });
     });
   }
 
@@ -271,6 +278,10 @@ class _MatchPageState extends State<MatchPage> with WidgetsBindingObserver {
 
   @override
   void dispose() {
+    if (timer != null) {
+      timer.cancel();
+    }
+
     super.dispose();
   }
 
@@ -502,16 +513,23 @@ class _MatchPageState extends State<MatchPage> with WidgetsBindingObserver {
                         return Text(isFinish ? '更多房间敬请期待...' : '加载中...',
                             style: TextStyle(color: Colors.grey, fontSize: 13, height: 3), textAlign: TextAlign.center);
                       }
-                      return HouseItem(
-                        houseList[index],
-                        houseList[index].gameInfo,
-                        isNext: !_focusNode.hasFocus,
-                        onTapHomeMenu: () {
-                          setState(() {
-                            _focusNode.unfocus();
-                          });
-                        },
-                      );
+                      return HouseItem(houseList[index], houseList[index].gameInfo, isNext: !_focusNode.hasFocus, onTapHomeMenu: () {
+                        setState(() {
+                          _focusNode.unfocus();
+                        });
+                      }, onBack: () {
+                        getUnreadMsg();
+                        if (timer != null) {
+                          timer.cancel();
+                        }
+                        timer = Timer.periodic(Duration(seconds: 2), (timer) {
+                          getUnreadMsg();
+                        });
+                      }, onNext: () {
+                        if (timer != null) {
+                          timer.cancel();
+                        }
+                      });
                     }, childCount: (houseList.length != 0 && (houseList.length < 5 || !showMoreRoom)) ? houseList.length : houseList.length + 1),
                   ),
                   SliverToBoxAdapter(

+ 0 - 1
lib/pages/RankList.dart

@@ -3,7 +3,6 @@ import 'package:flutter/widgets.dart';
 import '../styles/colors.dart';
 import 'dart:ui';
 import '../styles/totast.dart';
-import '../model/PlayerInfo.dart';
 import '../net/HttpManager.dart';
 import '../net/Result.dart';
 import 'package:flutter_redux/flutter_redux.dart';

+ 1 - 1
lib/pages/RoomInfo.dart

@@ -538,7 +538,7 @@ class RoomInfoState extends State<RoomInfo> with SingleTickerProviderStateMixin
           }
           isPop = true;
           Toast.hide();
-          Navigator.of(context).pop();
+          Navigator.of(context).pop(true);
           return Future.value(false);
         } else {
           Toast.show(context, '比赛即将开始,暂不能离开房间', 1500, 'info');

+ 15 - 4
lib/widget/HouseItem.dart

@@ -11,12 +11,14 @@ import 'dart:ui';
 typedef void OnTapHomeMenu();
 
 class HouseItem extends StatelessWidget {
-  HouseItem(this.houseInfo, this.gameInfo, {this.playerInfo = null, this.isNext = true, this.onTapHomeMenu});
+  HouseItem(this.houseInfo, this.gameInfo, {this.playerInfo = null, this.isNext = true, this.onTapHomeMenu, this.onBack, this.onNext});
   HouseInfo houseInfo;
   GameInfo gameInfo;
   PlayerInfo playerInfo;
   bool isNext;
   OnTapHomeMenu onTapHomeMenu;
+  OnTapHomeMenu onBack;
+  OnTapHomeMenu onNext;
 
   List<String> imageList = ['images/img_fangjian_hong.png', 'images/img_fangjian_huise.png'];
 
@@ -28,12 +30,16 @@ class HouseItem extends StatelessWidget {
         child: Material(
             color: Colors.transparent,
             child: InkWell(
-                onTap: () {
+                onTap: () async {
                   print('aaaaaaa');
                   if (!isNext) {
                     onTapHomeMenu();
                   } else {
-                    Navigator.push(context, CupertinoPageRoute(builder: (context) => RoomInfo(roomId: houseInfo.id.toString())));
+                    onNext();
+                    bool res = await Navigator.push(context, CupertinoPageRoute(builder: (context) => RoomInfo(roomId: houseInfo.id.toString())));
+                    if (res != null && res) {
+                      onBack();
+                    }
                   }
                   //
                 },
@@ -110,7 +116,12 @@ class HouseItem extends StatelessWidget {
         return Text('待结算', style: TextStyle(color: Color(0xFF5C5C5C), fontSize: 14, fontWeight: FontWeight.w600));
       } else if (houseInfo.statusFlag == 8) {
         return Text('结算中', style: TextStyle(color: Color(0xFF5C5C5C), fontSize: 14, fontWeight: FontWeight.w600));
-      } else if (playerInfo.houseRank != null && playerInfo.statusFlag != 7 && playerInfo.statusFlag != 9 && !playerInfo.dataError&&playerInfo.statusFlag!=6&&playerInfo.killNumber>=playerInfo.needkill) {
+      } else if (playerInfo.houseRank != null &&
+          playerInfo.statusFlag != 7 &&
+          playerInfo.statusFlag != 9 &&
+          !playerInfo.dataError &&
+          playerInfo.statusFlag != 6 &&
+          playerInfo.killNumber >= playerInfo.needkill) {
         if (playerInfo.houseRank < 4) {
           return Text('第${playerInfo.houseRank}名', style: TextStyle(color: Color(0xFFD4504B), fontSize: 14, fontWeight: FontWeight.w600));
         } else {

+ 11 - 9
lib/widget/VideoWidget.dart

@@ -13,7 +13,7 @@ class VideoWidget extends StatefulWidget {
 
 class VideoWidgetState extends State<VideoWidget> {
   VideoPlayerController _controller;
-  String _defaultVideo =HttpManager.baseUrl+'houseinfo.mp4';
+  String _defaultVideo = HttpManager.baseUrl + 'houseinfo.mp4';
   bool isVideo = true;
   bool showVideo = false;
   bool isPlay = false;
@@ -49,6 +49,10 @@ class VideoWidgetState extends State<VideoWidget> {
         // if(_controller.value.isLooping)
       });
     }
+
+    Future.delayed(Duration(seconds: 1), () {
+      playVideo();
+    });
   }
 
   @override
@@ -99,10 +103,10 @@ class VideoWidgetState extends State<VideoWidget> {
                           aspectRatio: _controller.value.aspectRatio,
                           child: VideoPlayer(_controller),
                         )
-                      :Image.asset('images/fangjian_img_bg.png'),
-                      // Image.network(
-                      //     'http://images.liqucn.com/img/h22/h70/img_localize_8e824debdd9ee29522690f36680e2d8e_600x337.png',
-                      //     width: double.infinity),
+                      : Image.asset('images/fangjian_img_bg.png'),
+                  // Image.network(
+                  //     'http://images.liqucn.com/img/h22/h70/img_localize_8e824debdd9ee29522690f36680e2d8e_600x337.png',
+                  //     width: double.infinity),
                 ),
                 onTap: () => playVideo()),
             !isPlay
@@ -116,14 +120,12 @@ class VideoWidgetState extends State<VideoWidget> {
                           width: 44,
                           height: 44,
                           child: RaisedButton(
-                            shape: RoundedRectangleBorder(
-                                borderRadius: BorderRadius.circular(44)),
+                            shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(44)),
                             padding: EdgeInsets.all(0),
                             color: Colors.black87,
                             textColor: Colors.white,
                             onPressed: () => playVideo(),
-                            child:
-                                Icon(isPlay ? Icons.pause : Icons.play_arrow),
+                            child: Icon(isPlay ? Icons.pause : Icons.play_arrow),
                           ),
                         ),
                       ),