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.

199 lines
5.3 KiB

5 years ago
<template>
4 years ago
<div class="form-index-container">
<el-card class="header-container">
<el-row align="middle" type="flex">
<el-col :span="2">
<i class="el-icon-back" @click="$router.back(-1)" />
</el-col>
<el-col :span="3">
4 years ago
<img class="header-logo" src="@/assets/images/indexLogo.svg" @click="$router.push({path:'/home'})">
4 years ago
</el-col>
<el-col :span="1">
4 years ago
<el-button type="primary" icon="el-icon-view" @click="previewDialogVisible=true">
4 years ago
预览
</el-button>
4 years ago
</el-col>
<el-col :span="2">
4 years ago
<el-button type="success" icon="el-icon-folder-add" @click="saveProjectAsTemplateHandle">
4 years ago
保存为模板
</el-button>
4 years ago
</el-col>
</el-row>
</el-card>
<div class="main-container">
<div class="left-menu-container">
<el-menu :collapse="isCollapse" class="el-menu-vertical"
:default-active="defaultActiveMenu"
@select="menuSelectHandle"
>
4 years ago
<el-menu-item v-for="menuItem in menuItemList" :key="menuItem.route" :index="menuItem.route">
<i :class="menuItem.icon" />
<span slot="title">{{ menuItem.title }}</span>
</el-menu-item>
5 years ago
</el-menu>
4 years ago
<i v-if="!isCollapse" class="el-icon-d-arrow-left" @click="collapseHandle" />
<i v-else class="el-icon-d-arrow-right" @click="collapseHandle" />
</div>
<div class="right-content-container">
<router-view />
</div>
5 years ago
</div>
4 years ago
<el-dialog
:visible.sync="previewDialogVisible"
fullscreen
>
<pre-view :preview-qrcode="true" />
</el-dialog>
5 years ago
</div>
</template>
<script>
4 years ago
import PreView from '@/views/form/preview'
5 years ago
export default {
4 years ago
name: 'NewIndex',
4 years ago
components: {PreView},
5 years ago
data() {
return {
4 years ago
previewDialogVisible: false,
4 years ago
defaultActiveMenu: 'editor',
projectKey: null,
isCollapse: false,
menuItemList: [
{
title: '编辑',
icon: 'el-icon-edit',
route: '/project/form/editor'
},
{
title: '逻辑',
icon: 'el-icon-menu',
route: '/project/form/logic'
4 years ago
}, {
4 years ago
title: '外观',
icon: 'el-icon-view',
route: '/project/form/theme'
},
{
title: '设置',
icon: 'el-icon-setting',
route: '/project/form/setting'
},
{
title: '发布',
icon: 'el-icon-video-play',
route: '/project/form/publish'
}, {
title: '统计',
icon: 'el-icon-data-line',
route: '/project/form/statistics'
}
]
5 years ago
}
},
4 years ago
created() {
5 years ago
this.projectKey = this.$route.query.key
4 years ago
this.defaultActiveMenu = this.$route.path
this.isCollapse = this.$store.state.form.isCollapse
5 years ago
},
methods: {
4 years ago
menuSelectHandle(index) {
this.$router.replace({path: index, query: {key: this.projectKey}})
},
4 years ago
saveProjectAsTemplateHandle() {
4 years ago
this.$api.post('/user/project/template/save', {key: this.projectKey}).then(() => {
this.msgSuccess('保存成功')
4 years ago
})
},
4 years ago
collapseHandle() {
let isCollapse = !this.isCollapse
this.$store.dispatch('form/setIsCollapse', isCollapse).then(() => {
this.isCollapse = isCollapse
})
5 years ago
}
}
}
</script>
4 years ago
<style lang="scss" scoped>
.form-index-container {
4 years ago
height: 100%;
width: 100%;
}
4 years ago
4 years ago
::v-deep .el-card__body {
4 years ago
padding: 0;
4 years ago
}
4 years ago
4 years ago
::v-deep .el-menu {
4 years ago
border: none;
background-color: transparent;
4 years ago
}
4 years ago
4 years ago
.header-container {
4 years ago
width: 100%;
4 years ago
height: 50px;
4 years ago
.el-icon-back {
font-size: 22px;
font-weight: 550;
cursor: pointer;
color: #000;
margin-left: 40px;
&:hover {
color: rgb(32, 160, 255);
4 years ago
}
4 years ago
}
.header-logo {
4 years ago
height: 45px;
4 years ago
width: 200px;
}
4 years ago
}
4 years ago
4 years ago
.main-container {
4 years ago
width: 100vw;
height: calc(100vh - 60px);
display: flex;
flex-direction: row;
.right-content-container {
width: calc(100vw - 100px);
4 years ago
height: calc(100vh - 60px);
4 years ago
overflow-x: hidden;
}
4 years ago
}
4 years ago
4 years ago
.left-menu-container {
4 years ago
max-width: 100px;
text-align: center;
position: relative;
display: flex;
flex-direction: column;
justify-content: space-between;
border-right: solid 1px #e6e6e6;
.el-menu-vertical:not(.el-menu--collapse) {
width: 100px;
min-height: 400px;
}
.el-icon-d-arrow-left,
.el-icon-d-arrow-right {
font-size: 19px;
cursor: pointer;
font-weight: 550;
color: #000;
margin-bottom: 100px;
&:hover {
color: rgb(32, 160, 255);
4 years ago
}
4 years ago
}
4 years ago
}
4 years ago
::v-deep.preview-container{
background-color: #ffffff;
}
5 years ago
</style>