You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
2.8 KiB
122 lines
2.8 KiB
<template> |
|
<div class="admin"> |
|
<div class="common-layout"> |
|
<el-container> |
|
<el-aside :style="{ width: AsideWidth }"> |
|
<Aside @changeAsideWidth="changeAsideWidth" /> |
|
</el-aside> |
|
<el-container> |
|
<el-header> |
|
<headerComponen /> |
|
</el-header> |
|
<el-main> |
|
<el-row |
|
v-show="store.isRows" |
|
@changRow="changRowStatus" |
|
justify="center" |
|
align="middle" |
|
> |
|
<el-col :span="9"> |
|
<el-card> |
|
<div class="welcome"> |
|
<el-image |
|
:src="featureState.property" |
|
fit="cover" |
|
:style="{ |
|
height: featureState.asideimgHeight, |
|
width: featureState.width, |
|
}" |
|
> |
|
</el-image> |
|
<div> |
|
<h4> |
|
欢迎登录系统,{{ store.$state.current_userInfo.role }} |
|
</h4> |
|
</div> |
|
</div> |
|
</el-card> |
|
</el-col> |
|
</el-row> |
|
<router-view /> |
|
</el-main> |
|
</el-container> |
|
</el-container> |
|
</div> |
|
<router-view /> |
|
</div> |
|
</template> |
|
<script setup> |
|
import { onMounted, provide, ref, vShow } from "vue"; |
|
import { useRouter } from "vue-router"; |
|
import headerComponen from "@/components/header.vue"; |
|
import Aside from "@/components/Aside.vue"; |
|
import { useStore } from "@/store/index.js"; |
|
|
|
const Router = useRouter(); |
|
const AsideWidth = ref("64px"); |
|
const store = useStore(); |
|
const isRow = ref(store.isRows); |
|
|
|
const featureState = reactive({ |
|
property: "https://s2.loli.net/2023/05/25/TDfPRtyHaXj3ihF.png", |
|
asideimgHeight: (document.body.clientHeight - 200) / 2 + "px", |
|
width: 100 + "%", |
|
}); |
|
|
|
provide("isRow", isRow); |
|
|
|
const on = onMounted(() => { |
|
if (Router.currentRoute.value.path === "/admin1") { |
|
store.isRows = true; |
|
} |
|
}); |
|
|
|
const changeAsideWidth = (val) => { |
|
if (val) return (AsideWidth.value = "64px"); |
|
return (AsideWidth.value = "200px"); |
|
}; |
|
|
|
// 更改Row的欢迎展示状态 |
|
const changRowStatus = (val) => { |
|
this.isRow.value = val; |
|
store.SAVE_ROW(val); |
|
}; |
|
</script> |
|
<style lang="less" scoped> |
|
.el-row { |
|
margin: 90px !important; |
|
} |
|
|
|
.welcome { |
|
display: flex; |
|
flex-direction: column; |
|
align-items: center; |
|
justify-items: self-end; |
|
} |
|
|
|
.admin { |
|
width: 100%; |
|
height: 100%; |
|
|
|
:deep(.common-layout) { |
|
height: 100%; |
|
} |
|
|
|
:deep(.el-container) { |
|
height: 100%; |
|
} |
|
|
|
:deep(.el-header) { |
|
background-color: var(--el-color-primary-light-7); |
|
} |
|
|
|
:deep(.el-aside) { |
|
transition: width 0.2s; |
|
background-color: var(--el-color-primary-light-8); |
|
} |
|
} |
|
|
|
.el-header { |
|
height: 50px !important; |
|
} |
|
</style>
|
|
|