panhui 3 anni fa
parent
commit
4cd34746d9

+ 9 - 6
src/components/AppBar.vue

@@ -46,12 +46,10 @@ export default {
             show: false,
             showPopover: false,
             tabColor: '',
-            title: ''
+            title: '',
+            fromRoute: null
         };
     },
-    beforeRouteEnter(to, from) {
-        fromRoute = from;
-    },
     computed: {
         ...mapState(['showConsole']),
         fontColor() {
@@ -111,6 +109,12 @@ export default {
         // }
         this.getColor();
         this.setTitle();
+        this.emitter.on('updateFrom', from => {
+            fromRoute = from;
+        });
+    },
+    beforeRouteEnter(to, from) {
+        fromRoute = from;
     },
     methods: {
         setTitle(title) {
@@ -155,11 +159,10 @@ export default {
             }
         },
         back() {
-            console.log(fromRoute);
             if (!fromRoute || !fromRoute.name) {
                 this.$router.replace('/home');
             } else if (window.history.length <= 1) {
-                this.$router.push({ path: '/' });
+                this.$router.replace('/home');
                 return false;
             } else {
                 this.$router.go(-1);

+ 1 - 0
src/views/account/Waiting.vue

@@ -48,6 +48,7 @@ export default {
     beforeRouteEnter(to, from, next) {
         next(vm => {
             vm.$store.dispatch('getUserInfo');
+            vm.emitter.emit('updateFrom', from);
         });
     }
 };

+ 5 - 0
src/views/auction/Detail.vue

@@ -305,6 +305,11 @@ export default {
 
         next();
     },
+    beforeRouteEnter(to, from, next) {
+        next(vm => {
+            vm.emitter.emit('updateFrom', from);
+        });
+    },
     methods: {
         showHelp() {
             this.$refs.help.show = !this.$refs.help.show;

+ 8 - 5
src/views/auction/Home.vue

@@ -102,7 +102,7 @@ import auctionInfo from '../../components/auction/info.vue';
 // import banner from '../../mixins/banner';
 import auctionShare from '../../components/auction/Share.vue';
 import banner from '../../mixins/banner';
-let fromRoute = null;
+let fromRoute2 = null;
 let inWeixin = /micromessenger/i.test(navigator.userAgent);
 export default {
     name: 'auctionHome',
@@ -147,12 +147,15 @@ export default {
             }
         }, 1000);
     },
-    beforeRouteEnter(to, from) {
-        fromRoute = from;
+    beforeRouteEnter(to, from, next) {
+        fromRoute2 = from;
+        next(vm => {
+            vm.emitter.emit('updateFrom', from);
+        });
     },
     methods: {
         goBack() {
-            if (!fromRoute || !fromRoute.name || fromRoute.name !== 'discover') {
+            if (!fromRoute2 || !fromRoute2.name || fromRoute2.name !== 'discover') {
                 this.$router.replace('/home');
             } else {
                 this.$router.back();
@@ -409,7 +412,7 @@ export default {
     line-height: 24px;
     padding: 8px 16px 0;
 }
-.padding-safe-top{
+.padding-safe-top {
     background-color: #030001 !important;
 }
 </style>

+ 4 - 1
src/views/hall/Detail.vue

@@ -518,8 +518,11 @@ export default {
             this.$http.get(`/showroom/${this.roomId}/view`);
         }
     },
-    beforeRouteEnter(to, from) {
+    beforeRouteEnter(to, from, next) {
         fromRoute = from;
+        next(vm => {
+            vm.emitter.emit('updateFrom', from);
+        });
     },
     methods: {
         changeLogo() {

+ 4 - 1
src/views/product/Detail.vue

@@ -925,9 +925,12 @@ export default {
         if (from.path === '/creatorDetail') {
             next(vm => {
                 vm.createrId = from.query.id;
+                vm.emitter.emit('updateFrom', from);
             });
         } else {
-            next();
+            next(vm => {
+                vm.emitter.emit('updateFrom', from);
+            });
         }
     },
     beforeRouteLeave(to, from, next) {

+ 5 - 0
src/views/product/HopeMarket.vue

@@ -580,6 +580,11 @@ export default {
             }, 1000);
         });
     },
+    beforeRouteEnter(to, from, next) {
+        next(vm => {
+            vm.emitter.emit('updateFrom', from);
+        });
+    },
     beforeRouteLeave(to, from, next) {
         document.getElementById('scroll-wrapper').style.overflow = 'auto';
         if (to.name === 'productDetail' || to.path === '/productSearchCorpse') {