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