| 1234567891011121314151617181920212223242526272829303132333435 |
- <script lang="ts" setup>
- import { Expand, Fold } from "@element-plus/icons-vue"
- interface Props {
- isActive?: boolean
- }
- const props = withDefaults(defineProps<Props>(), {
- isActive: false
- })
- /** Vue 3.3+ defineEmits 语法 */
- const emit = defineEmits<{
- toggleClick: []
- }>()
- const toggleClick = () => {
- emit("toggleClick")
- }
- </script>
- <template>
- <div @click="toggleClick">
- <el-icon :size="20" class="icon">
- <Fold v-if="props.isActive" />
- <Expand v-else />
- </el-icon>
- </div>
- </template>
- <style lang="scss" scoped>
- .icon {
- vertical-align: middle;
- }
- </style>
|