Blame view
src/components/SizeSelect/index.vue
1.31 KB
d7d9c38c2 auto commit the c... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
<template> <el-dropdown trigger="click" @command="handleSetSize"> <div> <svg-icon class-name="size-icon" icon-class="size" /> </div> <el-dropdown-menu slot="dropdown"> <el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size===item.value" :command="item.value"> {{ item.label }} </el-dropdown-item> </el-dropdown-menu> </el-dropdown> </template> <script> export default { data() { return { sizeOptions: [ { label: 'Default', value: 'default' }, { label: 'Medium', value: 'medium' }, { label: 'Small', value: 'small' }, { label: 'Mini', value: 'mini' } ] } }, computed: { size() { return this.$store.getters.size } }, methods: { handleSetSize(size) { this.$ELEMENT.size = size this.$store.dispatch('app/setSize', size) this.refreshView() this.$message({ message: 'Switch Size Success', type: 'success' }) }, refreshView() { // In order to make the cached page re-rendered this.$store.dispatch('tagsView/delAllCachedViews', this.$route) const { fullPath } = this.$route this.$nextTick(() => { this.$router.replace({ path: '/redirect' + fullPath }) }) } } } </script> |