lxy_01 преди 1 месец
родител
ревизия
2ce9f8c012

+ 18 - 2
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/App.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="h100">
-        <keep-alive>
+        <keep-alive :include="cachedViews">
             <router-view v-if="$route.meta.keepAlive"></router-view>
         </keep-alive>
         <router-view v-if="!$route.meta.keepAlive"></router-view>
@@ -11,7 +11,23 @@
 import $ from 'jquery'
 export default {
     name: "app",
-    created() { },
+    data() {
+      return {
+        // 初始缓存Index页面
+        cachedViews: ['Index']
+      }
+    },
+    created() {
+        // 监听清空Index缓存的事件
+        this.$root.$on('clearIndexCache', () => {
+        // 从缓存列表中移除Index
+        this.cachedViews = this.cachedViews.filter(name => name !== 'Index')
+        //延迟再加回来
+         setTimeout(() => {
+           this.cachedViews.push('Index')
+         }, 0)
+        })
+    },
     mounted() {
       let width=$("body").width();
       console.log(width)

+ 3 - 1
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/main.js

@@ -150,8 +150,10 @@ Vue.use(VueHtml5Editor, {
     modules: {}
 })
 
-new Vue({
+const vm = new Vue({
     store,
     router,
     render: h => h(App)
 }).$mount("#app");
+
+export default vm;

+ 11 - 1
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/router/index.js

@@ -1,6 +1,7 @@
 import Vue from "vue";
 import Router from "vue-router";
 import store from "../store/index";
+import vm from "@/main.js";
 
 Vue.use(Router);
 
@@ -115,7 +116,7 @@ const router = new Router({
         path: "/overtimeApplication",
         component: () => import("@/views/overtime/overtimeApplication"),
         meta: {
-            title: "加班管理",
+            title: "加班申请",
             keepAlive: false
         }
     },
@@ -222,6 +223,15 @@ router.beforeEach((to, from, next) => {
     let { isLogin } = store.state;
     document.title = title;
 
+    console.log("from:", from.path, " to:", to.path);
+
+    if (to.path === "/login" && from.path === "/my/center") {
+        if (vm && vm.$root) {
+          // keep-alive使用include控制缓存,清空Index的缓存
+          vm.$root.$emit('clearIndexCache')
+        }
+    }
+
     if (needLogin && !isLogin) {
         next({
             path: "/login"

+ 5 - 5
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/index/index.vue

@@ -21,6 +21,7 @@ import Vue from "vue";
 import { ImagePreview } from "vant";
 Vue.use(ImagePreview);
 export default {
+    name: "Index",//用于keepalive缓存的includes
     data() {
         return {
             isCorpWX: false,
@@ -244,16 +245,15 @@ export default {
                 fixed: true
               },
               {
-                name: '加班管理',
-                moudelName: '加班管理',
+                name: '加班申请',
+                moudelName: '加班申请手机',
                 url: '/overtimeApplication',
-                icon: 'balance-list-o',
-                fixed: true
+                icon: 'balance-list-o'
               },
 
             ]
             console.log(routersList, modelNameList)
-            this.routers = routersList.filter(item => item.fixed || modelNameList.includes(item.moudelName));
+            this.routers = routersList.filter(item =>item.fixed || modelNameList.includes(item.moudelName));
             this.routers.push({
                     name: '我的',
                     moudelName: '我的',

+ 3 - 0
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/my/children/center.vue

@@ -43,6 +43,7 @@
 <script>
     import Footer from "@/components/Footer";
     import { mapGetters } from "vuex";
+    import { ref } from "vue";
     export default {
         components: {
             Footer
@@ -74,6 +75,8 @@
 
                 this.$store.commit("updateLogin", false);
                 localStorage.removeItem("userInfo");
+                
+                console.log("logout");
                 this.$router.push({path:"/login", query: {loginAny: true}});
             },
             bindWeiXin(){