mirror of
https://github.com/wanglin2/mind-map.git
synced 2026-02-21 10:27:44 +08:00
227 lines
4.6 KiB
Vue
227 lines
4.6 KiB
Vue
<template>
|
|
<div
|
|
class="container"
|
|
:class="{ isDark: isDark, activeSidebar: activeSidebar }"
|
|
>
|
|
<template v-if="show">
|
|
<Toolbar v-if="!isZenMode"></Toolbar>
|
|
<Edit></Edit>
|
|
</template>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import Toolbar from './components/Toolbar'
|
|
import Edit from './components/Edit'
|
|
import { mapState, mapActions, mapMutations } from 'vuex'
|
|
import { getLocalConfig } from '@/api'
|
|
|
|
export default {
|
|
name: 'Index',
|
|
components: {
|
|
Toolbar,
|
|
Edit
|
|
},
|
|
data() {
|
|
return {
|
|
show: false
|
|
}
|
|
},
|
|
computed: {
|
|
...mapState({
|
|
isZenMode: state => state.localConfig.isZenMode,
|
|
isDark: state => state.isDark,
|
|
activeSidebar: state => state.activeSidebar
|
|
})
|
|
},
|
|
watch: {
|
|
isDark() {
|
|
this.setBodyDark()
|
|
}
|
|
},
|
|
async created() {
|
|
this.initLocalConfig()
|
|
const loading = this.$loading({
|
|
lock: true,
|
|
text: this.$t('other.loading')
|
|
})
|
|
await this.getUserMindMapData()
|
|
this.show = true
|
|
loading.close()
|
|
this.setBodyDark()
|
|
},
|
|
methods: {
|
|
...mapActions(['getUserMindMapData']),
|
|
...mapMutations(['setLocalConfig']),
|
|
|
|
/**
|
|
* @Author: 王林25
|
|
* @Date: 2022-11-14 19:07:03
|
|
* @Desc: 初始化本地配置
|
|
*/
|
|
initLocalConfig() {
|
|
let config = getLocalConfig()
|
|
if (config) {
|
|
this.setLocalConfig({
|
|
...this.$store.state.localConfig,
|
|
...config
|
|
})
|
|
}
|
|
},
|
|
|
|
setBodyDark() {
|
|
this.isDark
|
|
? document.body.classList.add('isDark')
|
|
: document.body.classList.remove('isDark')
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="less">
|
|
.container {
|
|
}
|
|
|
|
body {
|
|
&.isDark {
|
|
/* el-button */
|
|
.el-button {
|
|
background-color: #363b3f;
|
|
color: hsla(0, 0%, 100%, 0.9);
|
|
border-color: hsla(0, 0%, 100%, 0.1);
|
|
}
|
|
|
|
/* el-input */
|
|
.el-input__inner {
|
|
background-color: #363b3f;
|
|
border-color: hsla(0, 0%, 100%, 0.1);
|
|
color: hsla(0, 0%, 100%, 0.9);
|
|
}
|
|
|
|
.el-input.is-disabled .el-input__inner {
|
|
background-color: #363b3f;
|
|
border-color: hsla(0, 0%, 100%, 0.1);
|
|
color: hsla(0, 0%, 100%, 0.3);
|
|
}
|
|
|
|
.el-input-group__append,
|
|
.el-input-group__prepend {
|
|
background-color: #363b3f;
|
|
border-color: hsla(0, 0%, 100%, 0.1);
|
|
}
|
|
|
|
.el-input-group__append button.el-button {
|
|
color: hsla(0, 0%, 100%, 0.9);
|
|
}
|
|
|
|
/* el-select */
|
|
.el-select-dropdown {
|
|
background-color: #36393d;
|
|
border-color: hsla(0, 0%, 100%, 0.1);
|
|
|
|
.el-select-dropdown__item {
|
|
color: hsla(0, 0%, 100%, 0.6);
|
|
}
|
|
|
|
.el-select-dropdown__item.selected {
|
|
color: #409eff;
|
|
}
|
|
|
|
.el-select-dropdown__item.hover,
|
|
.el-select-dropdown__item:hover {
|
|
background-color: hsla(0, 0%, 100%, 0.05);
|
|
}
|
|
}
|
|
|
|
.el-select .el-input.is-disabled .el-input__inner:hover {
|
|
border-color: hsla(0, 0%, 100%, 0.1);
|
|
}
|
|
|
|
/* el-popper*/
|
|
.el-popper {
|
|
background-color: #36393d;
|
|
border-color: hsla(0, 0%, 100%, 0.1);
|
|
}
|
|
|
|
.el-popper[x-placement^='bottom'] .popper__arrow {
|
|
background-color: #36393d;
|
|
}
|
|
|
|
.el-popper[x-placement^='bottom'] .popper__arrow::after {
|
|
border-bottom-color: #36393d;
|
|
}
|
|
|
|
.el-popper[x-placement^='top'] .popper__arrow {
|
|
background-color: #36393d;
|
|
}
|
|
|
|
.el-popper[x-placement^='top'] .popper__arrow::after {
|
|
border-top-color: #36393d;
|
|
}
|
|
|
|
/* el-tabs */
|
|
.el-tabs__item {
|
|
color: hsla(0, 0%, 100%, 0.6);
|
|
|
|
&:hover,
|
|
&.is-active {
|
|
color: #409eff;
|
|
}
|
|
}
|
|
|
|
.el-tabs__nav-wrap::after {
|
|
background-color: hsla(0, 0%, 100%, 0.6);
|
|
}
|
|
|
|
/* el-slider */
|
|
.el-slider__runway {
|
|
background-color: hsla(0, 0%, 100%, 0.6);
|
|
}
|
|
|
|
/* el-radio-group */
|
|
.el-radio-group {
|
|
.el-radio-button__inner {
|
|
background-color: #36393d;
|
|
color: hsla(0, 0%, 100%, 0.6);
|
|
}
|
|
|
|
.el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
|
color: #fff;
|
|
background-color: #409eff;
|
|
}
|
|
}
|
|
|
|
/* el-dialog */
|
|
.el-dialog {
|
|
background-color: #262a2e;
|
|
|
|
.el-dialog__header {
|
|
border-bottom: 1px solid hsla(0, 0%, 100%, 0.1);
|
|
}
|
|
|
|
.el-dialog__title {
|
|
color: hsla(0, 0%, 100%, 0.9);
|
|
}
|
|
|
|
.el-dialog__body {
|
|
background-color: #262a2e;
|
|
}
|
|
|
|
.el-dialog__footer {
|
|
border-top: 1px solid hsla(0, 0%, 100%, 0.1);
|
|
}
|
|
}
|
|
|
|
/* el-upload */
|
|
.el-upload__tip {
|
|
color: #999;
|
|
}
|
|
|
|
/* 富文本编辑器 */
|
|
.toastui-editor-main-container {
|
|
background-color: #fff;
|
|
}
|
|
}
|
|
}
|
|
</style>
|