App.vue 1.83 KB
<template>
  <!-- 页面缓存 -->
  <router-view v-slot="{ Component }"> 
    <keep-alive> 
      <component :is="Component" :key="$route.name" v-if="$route.meta.keepAlive"/> 
    </keep-alive> 
      <component :is="Component" :key="$route.name" v-if="!$route.meta.keepAlive"/> 
  </router-view>
</template>

<script setup>
import Cookies from 'js-cookie'

import axios from '@/utils/axios'
import { useRoute, useRouter } from 'vue-router'
import { onMounted } from 'vue'
import { Toast } from 'vant'
import { mainStore } from './store';

const store = mainStore();
const $router = useRouter();

/**
 * 获取默认儿童信息
 * @returns name, perf_id, kg_id
 */
if (!Cookies.get('default_perf')) {
  axios.get('/srv/?a=default_perf')
  .then(res => {
    if (res.data.code === 1) {
      Cookies.set('default_perf', JSON.stringify(res.data.data));
    } else {
      console.warn(res);
      Toast({
        icon: 'close',
        message: res.data.msg
      });
    }
  })
  .catch(err => {
    console.error(err); 
  });
}
</script>

<script>
import _ from 'lodash';

export default {
  beforeRouteEnter(to, from, next) {
    // 如果是从下面页面返回,需要重置keepAlive状态
    const arr = ['/me/message', '/me/callMe', '/client/bookDetail'];
    if (_.findIndex(arr, (path) => path === from.path) !== -1) {
      from.meta.keepAlive = false;
    }
    next();
  },
  data() {
    return {

    }
  },
  mounted() {

  },
  methods: {

  }
}
</script>

<style lang="less">
html,
body {
  width: 100%;
  height: 100%;
}

body {
  position: relative;
  /* --van-white: #fff;
    --van-blue: #1989fa;
    --van-button-primary-color: var(--van-white);
    --van-button-primary-background: var(--van-primary-color); */
  /* 全局修改主色调 */
  // --van-blue: #F9D95C;

  // background-color: #FAFAFA;
  p {
    margin: 0;
    padding: 0;
  }
}
</style>