From 251d2411f235e23209d57173857e05b637729ce8 Mon Sep 17 00:00:00 2001 From: LiuHao <liuhaoai545@gmail.com> Date: 星期日, 02 四月 2023 01:01:56 +0800 Subject: [PATCH] refactor ts --- src/components/SizeSelect/index.vue | 49 ++++++++++++++++++++++++------------------------- 1 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/components/SizeSelect/index.vue b/src/components/SizeSelect/index.vue index 4c2e7e9..a2b38d6 100644 --- a/src/components/SizeSelect/index.vue +++ b/src/components/SizeSelect/index.vue @@ -1,45 +1,44 @@ -<template> - <div> - <el-dropdown trigger="click" @command="handleSetSize"> - <div class="size-icon--style"> - <svg-icon class-name="size-icon" icon-class="size" /> - </div> - <template #dropdown> - <el-dropdown-menu> - <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> - </template> - </el-dropdown> - </div> -</template> - -<script setup> +<script setup lang="ts"> import useAppStore from "@/store/modules/app"; +import { ComponentInternalInstance } from "vue"; const appStore = useAppStore(); const size = computed(() => appStore.size); -const route = useRoute(); -const router = useRouter(); -const { proxy } = getCurrentInstance(); +const { proxy } = getCurrentInstance() as ComponentInternalInstance; const sizeOptions = ref([ { label: "杈冨ぇ", value: "large" }, { label: "榛樿", value: "default" }, { label: "绋嶅皬", value: "small" }, ]); -function handleSetSize(size) { - proxy.$modal.loading("姝e湪璁剧疆甯冨眬澶у皬锛岃绋嶅��..."); +const handleSetSize = (size: string) => { + proxy?.$modal.loading("姝e湪璁剧疆甯冨眬澶у皬锛岃绋嶅��..."); appStore.setSize(size); setTimeout("window.location.reload()", 1000); } </script> -<style lang='scss' scoped> +<template> + <div> + <el-dropdown trigger="click" @command="handleSetSize"> + <div class="size-icon--style"> + <svg-icon class-name="size-icon" icon-class="size" /> + </div> + <template #dropdown> + <el-dropdown-menu> + <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> + </template> + </el-dropdown> + </div> +</template> + +<style lang="scss" scoped> .size-icon--style { font-size: 18px; line-height: 50px; padding-right: 7px; } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3