2018-09-10 15:30:32 +08:00
|
|
|
<template>
|
|
|
|
|
<el-dropdown placement="bottom" size="small" @command="handleChange">
|
|
|
|
|
<el-button class="d2-mr btn-text can-hover" type="text">
|
|
|
|
|
<d2-icon name="font" style="font-size: 16px;"/>
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-dropdown-menu slot="dropdown">
|
2018-09-11 10:28:47 +08:00
|
|
|
<el-dropdown-item command="default">
|
2018-09-10 16:12:02 +08:00
|
|
|
<d2-icon :name="iconName('default')" class="d2-mr-5"/>默认
|
|
|
|
|
</el-dropdown-item>
|
2018-09-10 15:30:32 +08:00
|
|
|
<el-dropdown-item command="medium">
|
2018-09-10 16:12:02 +08:00
|
|
|
<d2-icon :name="iconName('medium')" class="d2-mr-5"/>中
|
2018-09-10 15:30:32 +08:00
|
|
|
</el-dropdown-item>
|
|
|
|
|
<el-dropdown-item command="small">
|
2018-09-10 16:12:02 +08:00
|
|
|
<d2-icon :name="iconName('small')" class="d2-mr-5"/>小
|
2018-09-10 15:30:32 +08:00
|
|
|
</el-dropdown-item>
|
|
|
|
|
<el-dropdown-item command="mini">
|
2018-09-10 16:12:02 +08:00
|
|
|
<d2-icon :name="iconName('mini')" class="d2-mr-5"/>最小
|
2018-09-10 15:30:32 +08:00
|
|
|
</el-dropdown-item>
|
|
|
|
|
</el-dropdown-menu>
|
|
|
|
|
</el-dropdown>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import { mapState, mapMutations } from 'vuex'
|
|
|
|
|
export default {
|
2018-09-10 16:13:45 +08:00
|
|
|
name: 'd2-header-size',
|
2018-09-10 15:30:32 +08:00
|
|
|
computed: {
|
|
|
|
|
...mapState('d2admin/size', [
|
|
|
|
|
'value'
|
|
|
|
|
])
|
|
|
|
|
},
|
2018-09-10 16:12:02 +08:00
|
|
|
watch: {
|
2018-09-10 16:13:45 +08:00
|
|
|
// 注意 这里是关键
|
|
|
|
|
// 因为需要访问 this.$ELEMENT 所以只能在这里使用这种方式
|
2018-09-10 16:12:02 +08:00
|
|
|
value: {
|
|
|
|
|
handler (val) {
|
2018-09-11 10:37:06 +08:00
|
|
|
if (this.$ELEMENT.size !== val) {
|
|
|
|
|
this.$ELEMENT.size = val
|
|
|
|
|
this.pageKeepAliveClean()
|
|
|
|
|
const { path } = this.$route
|
|
|
|
|
this.$router.replace({
|
|
|
|
|
path: '/redirect' + path
|
|
|
|
|
})
|
|
|
|
|
}
|
2018-09-10 16:12:02 +08:00
|
|
|
},
|
|
|
|
|
immediate: true
|
|
|
|
|
}
|
|
|
|
|
},
|
2018-09-10 15:30:32 +08:00
|
|
|
methods: {
|
2018-09-11 10:28:47 +08:00
|
|
|
...mapMutations({
|
|
|
|
|
sizeSet: 'd2admin/size/set',
|
|
|
|
|
pageKeepAliveClean: 'd2admin/page/keepAliveClean'
|
|
|
|
|
}),
|
2018-09-10 15:30:32 +08:00
|
|
|
handleChange (value) {
|
2018-09-11 10:28:47 +08:00
|
|
|
this.sizeSet(value)
|
2018-09-10 15:30:32 +08:00
|
|
|
},
|
|
|
|
|
iconName (name) {
|
|
|
|
|
return name === this.value ? 'dot-circle-o' : 'circle-o'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|