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.
 
 
 
 
 

271 lines
8.2 KiB

<template>
<div class="home-container">
<el-container>
<el-header class="header-container" height="38">
<div>
<img class="header-logo-img" src="@/assets/images/indexLogo.png"
@click="$router.push({path:'/'})"
>
</div>
<div class="right-header">
<el-link href="https://doc.tduckapp.com/" target="_blank">帮助文档</el-link>
<el-popover
placement="bottom-end"
trigger="click"
width="150"
>
<div class="user-person-menu">
<div>
<p v-if="getUserInfo" class="nick-name">{{ getUserInfo.name }}</p>
</div>
<el-divider />
<div>
<p class="person-menu-item" @click="$router.push({path: '/home/member'})">
<font-icon class="fab fa-get-pocket" />
我的账户
</p>
<el-divider />
<p class="person-menu-item" @click="logoutHandle">
<font-icon class="fas fa-sign-out" />
退出登录
</p>
</div>
</div>
<div slot="reference">
<img v-if="getUserInfo" :src="getUserInfo.avatar" class="user-avatar">
</div>
</el-popover>
</div>
</el-header>
<!-- <div class="banner-container">-->
<!-- <el-carousel height="60px">-->
<!-- <el-carousel-item v-for="item in 4" :key="item">-->
<!-- <img style="height: 60px;" src="https://static.wenjuan.pub/1620698916041_333.jpg">-->
<!-- </el-carousel-item>-->
<!-- </el-carousel>-->
<!-- </div>-->
<el-container>
<el-aside width="280px">
<el-card>
<el-button class="width90" type="primary" @click="createBlankTemplate">新建项目</el-button>
<div class="menu-view">
<div v-for="menu in menuList" :key="menu.route"
:class="defaultActiveMenu==menu.route?'menu-item-active menu-item':'menu-item'"
@click="menuClickHandle(menu)"
>
<font-icon :class="menu.icon" />
<span>{{ menu.name }}</span>
</div>
</div>
<div class="text-center">
<h5>加入社群</h5>
<el-image
fit="fill"
src="https://oss.smileyi.top/static/wx-qrcode.png"
style="width: 200px; height: 200px;"
/>
</div>
</el-card>
</el-aside>
<el-container>
<el-main>
<router-view />
</el-main>
<el-footer>
<div class="about-container">
<font-icon class="fas fa-user" />
<span class="desc-text">关于填鸭</span>
</div>
</el-footer>
</el-container>
</el-container>
</el-container>
</div>
</template>
<script>
import {formConf} from '@/components/generator/config'
import store from '@/store'
import router from '@/router'
export default {
name: 'NewIndex',
components: {},
data() {
return {
defaultActiveMenu: '',
menuList: [
{
route: '/home',
name: '工作台',
icon: 'fas fa-laptop'
},
{
route: '/home/template',
name: '模板中心',
icon: 'fas fa-clipboard'
}, {
route: '/home/recycle',
name: '回收站',
icon: 'fas fa-user'
}
]
}
},
computed: {
getStore() {
return store
},
getUserInfo() {
let user = JSON.parse(this.getStore.getters['user/userInfo'])
return user
}
},
created() {
this.defaultActiveMenu = this.$route.path
},
methods: {
menuClickHandle(menu) {
this.$router.replace({path: menu.route})
},
createBlankTemplate() {
this.$api.post('/user/project/create', {
'describe': formConf.description,
'name': formConf.title
}).then(res => {
console.log(res)
this.$router.push({path: '/project/form', query: {key: res.data}})
})
},
logoutHandle() {
this.$confirm('您确定要退出登录吗?', '退出确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$store.dispatch('user/logout').then(() => {
router.push({
path: '/login',
query: {
redirect: router.currentRoute.fullPath
}
})
})
}).catch(() => {
})
}
}
}
</script>
<style lang="scss" scoped>
.home-container {
background-color: rgba(247, 247, 247, 90);
display: flex;
height: 100%;
width: 100%;
flex-direction: column;
}
.header-container {
display: flex;
justify-content: space-between;
background-color: #fff;
line-height: 38px;
height: 38px;
min-width: 1024px;
.header-logo-img {
width: 120px;
height: 35px;
float: left;
}
.right-header {
display: flex;
flex-direction: row;
> * {
margin: 0 20px;
}
}
.user-avatar {
width: 35px;
height: 35px;
border-radius: 100px;
cursor: pointer;
}
}
.menu-view {
margin-top: 20px;
height: 501px;
background-color: rgba(255, 255, 255, 100);
padding: 20px;
.menu-item-active {
color: $menuActiveText !important;
}
.menu-item {
color: #333;
font-size: 16px;
text-align: left;
line-height: 25px;
&:hover {
cursor: pointer;
color: $menuActiveText;
}
& .fas:hover {
color: $menuActiveText;
}
.fas {
display: inline-block;
width: 20px;
height: 20px;
margin: 5px;
}
span {
margin-left: 10px;
}
}
}
.banner-container {
height: 60px;
}
.el-aside {
padding: 0;
margin: 0;
.el-card {
height: 100%;
}
}
.user-person-menu {
.nick-name {
height: 16px;
color: rgba(70, 70, 70, 86);
font-size: 14px;
line-height: 16px;
text-align: left;
}
.person-menu-item {
color: rgba(70, 70, 70, 86);
font-size: 14px;
text-align: left;
&:hover {
cursor: pointer;
color: $menuActiveText;
}
}
.el-divider {
margin: 5px 0;
}
.person-menu-divider {
background-color: rgba(210, 210, 210, 78);
border: 1px solid rgba(210, 210, 210, 78);
}
}
.about-container {
text-align: center;
.fa-user {
font-size: 19px;
color: rgba(172, 172, 172, 100);
margin: 1px;
}
}
</style>