当前位置: 首页 > article >正文

开箱即用的密码框组件

写了一个小玩具,分享一下

- 组件功能:

初次进入页面时,密码隐藏显示,且无法查看真实密码
在这里插入图片描述
修改密码时,触发键盘,输入框则会直接清空
在这里插入图片描述
此时输入密码,可以设置密码的隐藏或显示:
在这里插入图片描述

- 使用组件

- - passwordBox密码框组件

<template>
  <div class="box">
    <el-input 
      :value="value"
      placeholder="请输入密码"
      @keydown.native="onKeydown($event)"
      @input="onInput($event)"
      :type="inputType"
      :disabled="canEdit"
    >
    <i v-if="isModified" slot="suffix" :class="iconType" @click="clickIcon" style="cursor:pointer;"></i>
    </el-input>
  </div>
</template>

<script>
export default {
  props: {
    value: {
        type: String,
        default: ''
    },
    canEdit: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      inputType: 'password',  // 输入类型  text password
      iconType: 'el-input__icon el-icon-user-solid',// 图标样式
      isModified: false,    // 是否修改
      flag: true   //是否开启密码清0
    }
  },
  methods: {
    // 点击小图标
    clickIcon(){
      this.inputType = this.inputType == 'text' ? 'password' : 'text';
      this.iconType = this.iconType == 'el-input__icon el-icon-user-solid' ? 'el-input__icon el-icon-user' : 'el-input__icon el-icon-user-solid'
    },
    // 数据传递给父组件
    onInput(val){
        this.$emit("input", val);
    },
    // 监听键盘触发
    onKeydown(){
      this.isModified = true;
      // 第一次输入 输入框清空
      if(this.flag){
        this.$emit("input", '');
        this.flag = false;
      }
    }
  }
}
</script>

<style>
.box{
    width: 200px;
}
</style>

- - 父组件调用

template中:
    <passwordBox
      :value="dataform.password"
      :canEdit="false"
      @input="inputEvent"
    ></passwordBox>
data中:
    dataform: {
        password: "123456"
    },
method中:
    inputEvent(val){
        this.dataform.password = val;
    }

参数设置:

属性说明
value传入的密码值
canEdit是否允许修改密码。默认false允许,设置true不允许

http://www.kler.cn/a/1830.html

相关文章:

  • 蓝桥杯每日一真题——[蓝桥杯 2021 省 AB] 砝码称重(背包dp)
  • 可换皮肤的Qt登录界面
  • 【字符串】
  • 上手使用百度文心一言
  • 【SpringMVC】SpringMVC方式,向作用域对象共享数据(ModelAndView、Model、map、ModelMap)
  • 带你看看 TypeScript 5.0 的新特性
  • DJ2-4 进程同步(第一节课)
  • 【数据结构】二叉树(OJ)
  • C/C++每日一练(20230319)
  • 基于微信小程序的校园二手交易平台小程序
  • spark第三章:工程化代码
  • C语言预处理条件语句的 与或运算
  • Linux实操之进程管理
  • 咪咕MGV3201_ZG_GK国科6323_UWE5621DS_免拆卡刷固件包
  • 【springcloud 微服务】Spring Cloud Alibaba Sentinel使用详解
  • Transformer到底为何这么牛
  • C/C++ 内存分配 new操作符
  • Leetcode.1292 元素和小于等于阈值的正方形的最大边长
  • Thread的小补丁
  • 用Qt画一个温度计