element-plus 使用密码输入框的自定义图标

在这里插入图片描述
在这里插入图片描述

				<el-input
                  v-model="ruleFormPassword.newPassword"
                  placeholder="请输入新密码"
                  :type="showPassword ? 'text' : 'password'"
                  :style="{ width: '360px' }"
                >
                  <template #suffix>
                    <span class="input_icon" @click="switchPassword">
                    //icon图标
                      <ScIcon v-if="showPassword" style="font-size: 16px" name="icon-mimaxianshi" />
                      <ScIcon v-else style="font-size: 16px" name="icon-mimayincang" />
                    </span>
                  </template>
                </el-input>

const showPassword = ref('text');


// 点击切换密码显示状态
const switchPassword = () => {
  showPassword.value = !showPassword.value;
};



.input_icon {
  cursor: pointer;
  width: 25px;
  height: 15px;
  padding-right: 6px;
  padding-bottom: 10px;
}
### 如何在Element Plus使用图标 #### 使用本地Icon字体图标 为了能够在Vue项目中既使用本地icon字体图标又能利用Element Plus自带的图标库,可以通过配置来实现两者的兼容。对于本地icon字体图标的引入,通常是在项目的`index.html`文件或是全局CSS文件中加载对应的icon字体资源。 ```html <!-- index.html --> <link rel="stylesheet" href="/path/to/iconfont.css"> ``` 当需要在一个组件内部使用这些本地图标时,可以直接通过类名的方式调用: ```html <i class="iconfont icon-example"></i> ``` #### 动态渲染Element Plus Icons 针对Element Plus提供的图标,在官方文档中有详细的说明[^1]。动态渲染图标的一个典型场景是根据传入属性决定显示哪个图标。这能够极大提升开发效率并简化模板逻辑。下面是一个简单的例子展示如何做到这一点: ```vue <template> <div> <!-- 当prop.iconName存在时,动态绑定到:is上 --> <component :is="prop.iconName" v-if="prop.iconName"/> <!-- 如果没有指定具体的图标,则默认不显示任何东西或其他处理方式 --> <span v-else>Default Content</span> </div> </template> <script setup> import { defineProps } from 'vue'; const prop = defineProps(['iconName']); </script> ``` 这段代码片段展示了怎样基于父级传递下来的参数`iconName`去控制具体要呈现哪一个图标。如果该值为空则不会渲染图标部分的内容。 #### 自定义树状表格中的图标 除了上述方法外,还可以通过对Element Plus组件样式的覆盖来自定义某些特定情况下的图标表现形式。比如构建一个具有不同状态(如展开与否)变化效果的树形结构列表时,就可以依据节点的状态设置相应的图标样式[^2]。 #### 在输入框内放置图标和按钮 最后,考虑更复杂的交互需求——向表单控件里加入额外的操作元素,像验证码输入框旁边附带刷新按钮的情况。这里给出了一段实际可运行的例子用于解释这一过程[^3]: ```vue <template> <el-input v-model="captchaLoginForm.captcha" placeholder="请输入您的验证码"> <template #prefix> <!-- 前置图标 --> <img class="iconfont" src="@/assets/check_icon.png" alt=""> </template> <template #suffix> <!-- 后缀按钮 --> <el-button type="primary" :disabled="isSending" @click="handleSendCaptcha">{{ buttonCaptchaText }}</el-button> </template> </el-input> </template> <script setup> // ...省略其他脚本... </script> ``` 此实例不仅实现了基本的功能需求,还兼顾到了用户体验上的优化设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值