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