From 1b555a0ab0527478cdf2b0c31c0ea8aea70f8adc Mon Sep 17 00:00:00 2001 From: yxh <172933527@qq.com> Date: 星期四, 15 六月 2023 10:52:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into yxh01 --- src/components/SizeSelect/index.vue | 61 ++++++++++++++++++++++++++++++ 1 files changed, 61 insertions(+), 0 deletions(-) diff --git a/src/components/SizeSelect/index.vue b/src/components/SizeSelect/index.vue new file mode 100644 index 0000000..3cd013a --- /dev/null +++ b/src/components/SizeSelect/index.vue @@ -0,0 +1,61 @@ +<!-- 涓嬫媺鑿滃崟灏佽 --> +<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> -- Gitblit v1.9.3