From 0e736c889f9cd3ca51c54becf81b6433549c4b78 Mon Sep 17 00:00:00 2001
From: LiuHao <liuhaoai545@gmail>
Date: 星期五, 05 五月 2023 10:23:41 +0800
Subject: [PATCH] 优化已选择下拉图标高亮回显
---
src/components/IconSelect/index.vue | 45 ++++++++++++++++++++++++---------------------
1 files changed, 24 insertions(+), 21 deletions(-)
diff --git a/src/components/IconSelect/index.vue b/src/components/IconSelect/index.vue
index 330c44f..22b9484 100644
--- a/src/components/IconSelect/index.vue
+++ b/src/components/IconSelect/index.vue
@@ -2,7 +2,7 @@
<div class="relative" :style="{ width: width }">
<el-input v-model="modelValue" readonly @click="visible = !visible" placeholder="鐐瑰嚮閫夋嫨鍥炬爣">
<template #prepend>
- <svg-icon :icon-class="modelValue as string"></svg-icon>
+ <svg-icon :icon-class="modelValue as string" />
</template>
</el-input>
@@ -19,7 +19,7 @@
<el-scrollbar height="w-[200px]">
<ul class="icon-list">
<el-tooltip v-for="(iconName, index) in iconNames" :key="index" :content="iconName" placement="bottom" effect="light">
- <li class="icon-item" @click="selectedIcon(iconName)">
+ <li :class="['icon-item', {active: modelValue == iconName}]" @click="selectedIcon(iconName)">
<svg-icon color="var(--el-text-color-regular)" :icon-class="iconName" />
</li>
</el-tooltip>
@@ -33,15 +33,15 @@
import icons from '@/components/IconSelect/requireIcons';
const props = defineProps({
- modelValue: {
- type: String,
- require: true
- },
- width: {
- type: String,
- require: false,
- default: '400px'
- }
+ modelValue: {
+ type: String,
+ require: true
+ },
+ width: {
+ type: String,
+ require: false,
+ default: '400px'
+ }
});
const emit = defineEmits(['update:modelValue']);
@@ -55,22 +55,21 @@
* 绛涢�夊浘鏍�
*/
const filterIcons = () => {
- if (filterValue.value) {
- iconNames.value = icons.filter(iconName =>
- iconName.includes(filterValue.value)
- );
- } else {
- iconNames.value = icons;
- }
+ if (filterValue.value) {
+ iconNames.value = icons.filter(iconName =>
+ iconName.includes(filterValue.value)
+ );
+ } else {
+ iconNames.value = icons;
+ }
}
-
/**
* 閫夋嫨鍥炬爣
* @param iconName 閫夋嫨鐨勫浘鏍囧悕绉�
*/
const selectedIcon = (iconName: string) => {
- emit('update:modelValue', iconName);
- visible.value = false;
+ emit('update:modelValue', iconName);
+ visible.value = false;
}
</script>
@@ -101,5 +100,9 @@
transform: scaleX(1.1);
}
}
+ .active {
+ border-color: var(--el-color-primary);
+ color: var(--el-color-primary);
+ }
}
</style>
--
Gitblit v1.9.3