简单一个VUE 集成USB READER 读卡器

本文介绍了如何在Vue-element-admin中通过vxe-table实现表格点击操作,模拟取卡过程,触发弹框并监听刷卡后动态更新input值。涉及焦点切换、input事件监听和modal管理的代码示例。

项目场景:

后台管理 vue-elment-admin 表格库vxe-table2.9
表格操作区域=>点击取卡=>弹框=>刷卡=>赋值弹框内的input

这个东西
在这里插入图片描述

演示
(虚假数据,演示用途)
在这里插入图片描述


方案

没啥特别的 点击操作取卡 聚焦输入框 代码如下

		this.clearInput();
          this.icCardNo = "";
          const _that = this;
          const activeElement = document.activeElement;
          activeElement.blur(); //找到modal弹框之前的 focus元素
          let inputEle = document.createElement("input");
          inputEle.type = "text";
          inputEle.setAttribute("id", "icCard-input");
          inputEle.setAttribute("value", "");
          inputEle.style =
            "height:0px;width:0px;padding:0px;border:0.1px;z-index:-9999;position:absolute;top:0;";
          document.body.appendChild(inputEle);
          inputEle.focus();
          inputEle.addEventListener("input", function() {
            // 监听 读卡器输入框的输入事件
            if (inputEle.value.length == 10) {
              // 10位截断
              _that.icCardNo = inputEle.value;
              inputEle.value = "";
            }
          });
          this.modalTitle = "取卡叫号";
          this.showModal = true;
          this.$nextTick(() => {
            const modal = document.getElementsByClassName("vxe-modal--wrapper");
            for (let i = 0; i < modal.length; i++) {
              // 监听modal click事件
              if (modal[i].className.indexOf("is--active") != -1) {
                // 获取当前的modal
                modal[i].addEventListener("click", e => {
                  // 监听modal 蒙层的点击事件
                  if (e.target.tagName == "DIV") {
                    // 遮罩层点击
                    let inputEle = document.getElementById("icCard-input");
                    inputEle.focus();
                  }
                });
              }
            }
          });

然后是 clearInput 方法

clearInput() {
      // 清除取卡叫号的 原生添加的input输入框框
      let inputEle = document.getElementById("icCard-input");
      if (inputEle) document.body.removeChild(inputEle);
    },

以上

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值