瀏覽代碼

解决了脑环拉到后台,游戏无法结束的bug

yerong 4 年之前
父節點
當前提交
477c6e4495

+ 1 - 1
dist/wx

@@ -1 +1 @@
-Subproject commit 16dd035ba40d23236d0a98c4345e7f55a0c889da
+Subproject commit e47f107f066860fc475fb047e9116aae1692a046

+ 12 - 14
src/components/device/toy/connecting.vue

@@ -212,21 +212,19 @@ export default {
             game_store.setters.setGameStatus(1)
             // 设置游戏记录id
             game_store.setters.setGameRecordId($res['game_record_id'])
-            //设置游戏时间长
-            wx.removeStorageSync('played_time')
-            game_store.setters.setPlayTime($res['play_time'])
 
-            Toast.success({
-              message: $data.errmsg,
-              onClose() {
-                mpvue.navigateTo({
-                  url: "/pages/start/main",
-                  success() {
-                    wx.offBLECharacteristicValueChange()
-                  }
-                })
-              }
-            })
+
+            Toast.success($data.errmsg)
+            setTimeout(() => {
+              mpvue.navigateTo({
+                url: "/pages/start/main",
+                success() {
+                  wx.offBLECharacteristicValueChange()
+                  game_store.setters.setPlayTime($res['play_time'])
+                }
+              })
+            }, 800)
+
           } else {
             Toast.fail($data.errmsg)
           }

+ 1 - 1
src/pages/agent/index/index.vue

@@ -143,7 +143,7 @@ export default {
     },
     //  跳转代理商结算中心
     to_agent_cal_center() {
-      Toast.fail('暂未开通')
+      Toast.fail('暂未开通,请联系客服')
       // mpvue.navigateTo({
       //   url: "/pages/agent/settlement_center/index/main"
       // })

+ 8 - 0
src/pages/index/index.vue

@@ -138,6 +138,7 @@ export default {
   mounted() {
   },
   onShow() {
+    console.log('show')
     userDetail().then((res) => {
       let $data = res.data
       //判断如果是第一次登录就 弹出领取体验卡
@@ -145,7 +146,14 @@ export default {
       user_store.setters.set_userinfo($this.userinfo)
     })
   },
+  onHide(){
+    console.log('hide')
+  },
+  onUnload(){
+    console.log('unload')
+  },
   onLoad($option) {
+    console.log('load')
     //  判断存储是否登录
     let $token = wx.getStorageSync('token')
     if ($token) {

+ 2 - 2
src/pages/none/index.vue

@@ -31,12 +31,12 @@ export default {
         {
           id: 2,
           title: "水母星球产品使用说明",
-          src: "https://img.shuimuai.com/mpapp/desc.mp4"
+          src: "https://img.shuimuai.com/desc_1.mp4"
         },
         {
           id: 3,
           title: "水母星球IP故事",
-          src: "https://img.shuimuai.com/mpapp/story.mp4"
+          src: "https://img.shuimuai.com/story_1.mp4"
         }
       ]
     }

+ 2 - 0
src/pages/report/index.vue

@@ -211,6 +211,8 @@ export default {
   ,
   mounted() {
     $this.userinfo = wx.getStorageSync('userinfo')
+    //设置游戏时间长
+    wx.removeStorageSync('played_time')
     $this.get_report($this.record_id)
     $this.get_game_line($this.record_id)
   },

+ 50 - 27
src/pages/start/index.vue

@@ -229,6 +229,7 @@ export default {
         game_store.setters.setGameStatus(3)
         //游戏结束重置游戏时间
         wx.removeStorageSync('play_time')
+        wx.removeStorageSync('hide_time')
         //游戏结束重置游戏模式
         game_store.setters.setMode(0)
         //删除游戏得id
@@ -243,13 +244,12 @@ export default {
         Toast.loading({
           forbidClick: true,
           message: "正在生成报告...",
-          duration: 0
+          duration: 800,
+          onClose() {
+            $this.game_over()
+            $this.to_report()
+          }
         })
-        setTimeout(() => {
-          Toast.clear()
-          $this.game_over()
-          $this.to_report()
-        }, 800)
       } catch (e) {
         console.log('error', e)
       }
@@ -263,7 +263,10 @@ export default {
     },
     to_report() {
       mpvue.reLaunch({
-        url: "/pages/report/main"
+        url: "/pages/report/main",
+        success(){
+          $this.timeData = {}
+        }
       })
     },
     start_game() {
@@ -412,27 +415,12 @@ export default {
       $this.attList.push($data['att'])
       $this.medList.push($data['med'])
 
-    }
-  }
-  ,
-  mounted() {
-
-    let $deviceId = $this._deviceId = game_store.getters.getDeviceId()
-    let $serviceId = $this._serviceId = game_store.getters.getServiceId()
-    let $cId = $this._characteristicId = game_store.getters.getCharacterId()
-    console.log("游戏开始:", $deviceId, $serviceId, $cId)
-
-    //判断是否结束游戏
-    if ($this.is_end == true) {
-      $this.game_finished()
-    } else {
-      //  筛选 玩具id
-      $this.toy_hex = game_store.getters.getToyHex()
-
+    },
+    //计算游玩时间
+    calThePlayedTime() {
       //筛选模式
       $this.mode = game_store.getters.getMode()
 
-
       let mode_list = [
         {
           id: 1,
@@ -451,13 +439,31 @@ export default {
 
       //可玩时间
       let $play_time = $this.play_time = game_store.getters.getPlayTime()
+
       //已经完了多长时间
       let $played_time = $this.played_time = game_store.getters.getPlayedTime() ? game_store.getters.getPlayedTime() : 0
+
       $this.mode_item = {}
       $this.mode_item = mode_list[$this.mode - 1]
       let $origin_time = $play_time * 1000
       $this.mode_item['time'] = $origin_time - ($played_time * 1000)
+    }
+  }
+  ,
+  mounted() {
+
+    let $deviceId = $this._deviceId = game_store.getters.getDeviceId()
+    let $serviceId = $this._serviceId = game_store.getters.getServiceId()
+    let $cId = $this._characteristicId = game_store.getters.getCharacterId()
+    console.log("游戏开始:", $deviceId, $serviceId, $cId)
 
+    //判断是否结束游戏
+    if ($this.is_end == true) {
+      $this.game_finished()
+    } else {
+      //  筛选 玩具id
+      $this.toy_hex = game_store.getters.getToyHex()
+      $this.calThePlayedTime()
       $this.start_game()
 
       //打开蓝牙监听
@@ -469,10 +475,27 @@ export default {
     $this = this;
   },
   onShow() {
-    if ($this.timeData.minutes == '00' && $this.timeData.seconds == '00'){
-      $this.game_finished()
+    if ($this.timeData.minutes == '00' && $this.timeData.seconds == '00') {
+      $this.time_out()
+    } else {
+      //获取 拉到后台得时间
+      let $hide_time = game_store.getters.getHideTime()
+      if ($hide_time) {
+        //获取当前时间
+        let $now = Math.round(new Date() / 1000)
+        //获得后台到当前时间差
+        let $residue = $now - $hide_time
+        //将原来的游玩时间+上 时间差
+        let $played_time = $this.played_time * 1 + $residue * 1
+        //重新设置游玩时间
+        game_store.setters.setPlayedTime($played_time)
+        $this.calThePlayedTime()
+      }
     }
   },
+  onHide() {
+    game_store.setters.setHideTime(Math.round(new Date() / 1000))
+  },
   onLoad(options) {
     if (options.end == 1) {
       $this.is_end = true

+ 12 - 4
src/store/game.js

@@ -23,7 +23,7 @@ const setters = {
   setToyHex(toy_hex) {
     wx.setStorageSync('toy_hex', toy_hex)
   },
-  removeToyHex(){
+  removeToyHex() {
     wx.removeStorageSync('toy_hex')
   },
   setMode(mode) {
@@ -35,8 +35,12 @@ const setters = {
   setPlayTime(param) {
     wx.setStorageSync('play_time', param)
   },
-  setPlayedTime(param){
-    wx.setStorageSync('played_time',param)
+  setPlayedTime(param) {
+    wx.setStorageSync('played_time', param)
+  },
+//  记录推到后台得时间
+  setHideTime($param) {
+    wx.setStorageSync('hide_time', $param)
   }
 }
 
@@ -69,8 +73,12 @@ const getters = {
     return wx.getStorageSync('play_time')
   },
   //完了多长时间
-  getPlayedTime(){
+  getPlayedTime() {
     return wx.getStorageSync('played_time')
+  },
+//  获取一开始隐藏的时间
+  getHideTime() {
+    return wx.getStorageSync('hide_time')
   }
 }
 

+ 8 - 8
src/utils/bluetooth.js

@@ -598,14 +598,14 @@ export default {
         //   title: '正在创建连接',
         // })
 
-        let $game_status = game_store.getters.getGameStatus();
-        if ($game_status == 1) {
-          Toast.loading({
-            duration: 0,
-            message: "正在创建连接",
-            forbidClick: true
-          })
-        }
+        // let $game_status = game_store.getters.getGameStatus();
+        // if ($game_status == 1) {
+        //   Toast.loading({
+        //     duration: 0,
+        //     message: "正在创建连接",
+        //     forbidClick: true
+        //   })
+        // }
       },
       fail: function (err) {
         console.log('发送连接玩具指令失败')