2021-01-06 18:41:05 +08:00
|
|
|
|
<template>
|
2021-03-15 12:44:58 +08:00
|
|
|
|
<div class="layout-footer mt15" v-show="isDelayFooter">
|
|
|
|
|
<div class="layout-footer-warp">
|
|
|
|
|
<div>vue-next-admin,Made by lyt with ❤️</div>
|
2021-04-14 23:00:38 +08:00
|
|
|
|
<div class="mt5">{{ $t('message.copyright.one5') }}</div>
|
2021-03-15 12:44:58 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2021-01-06 18:41:05 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script lang="ts">
|
2021-03-15 12:44:58 +08:00
|
|
|
|
import { toRefs, reactive } from 'vue';
|
|
|
|
|
import { onBeforeRouteUpdate } from 'vue-router';
|
2021-01-06 18:41:05 +08:00
|
|
|
|
export default {
|
2021-03-15 12:44:58 +08:00
|
|
|
|
name: 'layoutFooter',
|
|
|
|
|
setup() {
|
|
|
|
|
const state = reactive({
|
|
|
|
|
isDelayFooter: true,
|
|
|
|
|
});
|
|
|
|
|
// 路由改变时,等主界面动画加载完毕再显示 footer
|
|
|
|
|
onBeforeRouteUpdate(() => {
|
|
|
|
|
state.isDelayFooter = false;
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
state.isDelayFooter = true;
|
|
|
|
|
}, 800);
|
|
|
|
|
});
|
|
|
|
|
return {
|
|
|
|
|
...toRefs(state),
|
|
|
|
|
};
|
|
|
|
|
},
|
2021-01-06 18:41:05 +08:00
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
.layout-footer {
|
2021-03-15 12:44:58 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
&-warp {
|
|
|
|
|
margin: auto;
|
2021-09-10 23:24:58 +08:00
|
|
|
|
color: var(--el-text-color-secondary);
|
2021-03-15 12:44:58 +08:00
|
|
|
|
text-align: center;
|
|
|
|
|
animation: logoAnimation 0.3s ease-in-out;
|
|
|
|
|
}
|
2021-01-06 18:41:05 +08:00
|
|
|
|
}
|
2021-03-15 12:44:58 +08:00
|
|
|
|
</style>
|