From 64d172717748c383a5c88348037354bffd60f966 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 27 五月 2025 17:52:03 +0800 Subject: [PATCH] 页面样式修改 --- src/views/tool/build/IconsDialog.vue | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 115 insertions(+), 0 deletions(-) diff --git a/src/views/tool/build/IconsDialog.vue b/src/views/tool/build/IconsDialog.vue new file mode 100644 index 0000000..98d9c13 --- /dev/null +++ b/src/views/tool/build/IconsDialog.vue @@ -0,0 +1,115 @@ +<template> + <div class="icon-dialog"> + <el-dialog v-model="value" width="980px" :close-on-click-modal="false" :modal-append-to-body="false" @open="onOpen" + @close="onClose"> + <template #header="{ close, titleId, titleClass }"> + 閫夋嫨鍥炬爣 + <el-input v-model="key" size="small" :style="{ width: '260px' }" placeholder="璇疯緭鍏ュ浘鏍囧悕绉�" prefix-icon="Search" + clearable /> + </template> + <ul class="icon-ul"> + <li v-for="icon in iconList" :key="icon" :class="active === icon ? 'active-item' : ''" @click="onSelect(icon)"> + <div> + <el-icon :size="30"> + <component :is="icon" /> + </el-icon> + <div>{{ icon }}</div> + </div> + </li> + </ul> + </el-dialog> + </div> +</template> +<script setup> +import * as ElementPlusIconsVue from '@element-plus/icons-vue' +import { watch } from 'vue' + +const iconList = ref([]) +const originList = [] +const key = ref('') +const active = ref('') +const emit = defineEmits(['select']) +const value = defineModel() +for (const [key] of Object.entries(ElementPlusIconsVue)) { + iconList.value.push(key) + originList.push(key) +} + +function onOpen() { } +function onClose() { } +function onSelect(icon) { + active.value = icon + emit('select', icon) + value.value = false +} + +watch(key, (val) => { + if (val) { + iconList.value = originList.filter(name => name.indexOf(val) > -1) + } else { + iconList.value = originList + } +}) +</script> +<style lang="scss" scoped> +.icon-ul { + margin: 0; + padding: 0; + font-size: 0; + + li { + list-style-type: none; + text-align: center; + font-size: 14px; + display: inline-flex; + width: 16.66%; + box-sizing: border-box; + height: 108px; + padding: 6px 6px 6px 6px; + cursor: pointer; + overflow: hidden; + align-items: center; + justify-content: center; + + &:hover { + background: #f2f2f2; + } + + &.active-item { + background: #e1f3fb; + color: #7a6df0 + } + + i { + font-size: 30px; + line-height: 50px; + margin-bottom: 10px; + } + } +} + +.icon-dialog { + :deep() { + .el-dialog { + border-radius: 8px; + margin-bottom: 0; + margin-top: 4vh !important; + display: flex; + flex-direction: column; + max-height: 92vh; + overflow: hidden; + box-sizing: border-box; + + .el-dialog__header { + padding-top: 14px; + } + + .el-dialog__body { + margin: 0 20px 20px 20px; + padding: 0; + overflow: auto; + } + } + } +} +</style> -- Gitblit v1.9.3