0.0.2 • Published 3 years ago

luo-vue-identifycode v0.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

luo-vue-identifycode

基于 Vue 的生成图形校验码组件

一、通过 Node 引用

npm i luo-vue-identifycode

在 VUE 的 SPA 中的使用示例:

<template>
  <div id="main">
    <div class="item">
      <input :value="identifyCode" />
      <span class="code" @click="refreshCode">
        <IdentifyCode :identify-code="identifyCode" :content-width="100" :content-height="48"></IdentifyCode>
      </span>
    </div>
  </div>
</template>
<script>
import IdentifyCode from "luo-vue-identifycode"; // 引入包

export default {
  name: "IdentifyCodeTest",
  components: { IdentifyCode },
  data() {
    return {
      identifyCode: ""
    };
  },
  mounted() {
    this.identifyCode = this.createCode();
  },
  methods: {
    createCode() {
      let code = "";
      const codeLength = 4; // 验证码的长度
      // eslint-disable-next-line no-array-constructor
      const random = new Array(2,3,4,5,6,7,8,9,"A","B","C", "D","E","F","G",
        "H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z"
      ); // 随机数
      for (let i = 0; i < codeLength; i++) {
        // 循环操作
        const index = Math.floor(Math.random() * 32); // 取得随机数的索引(0~35)
        code += random[index]; // 根据索引取得随机数加到code上
      }
      return code;
    },
    refreshCode() {
      this.identifyCode = this.createCode();
    }
  }
};
</script>
<style lang="scss" scoped>
#main {
  padding: 15px;
  .item {
    position: relative;
    input {
      width: 100%;
      height: 50px;
      padding: 0 100px 0 6px;
      border-radius: 2px;
      outline: none;
      border: 1px solid #444;
      font-size: 20px;
    }
    .code {
      position: absolute;
      right: 1px;
      top: 1px;
      display: inline-block;
    }
  }
}
</style>

二、注:

如页面有多个组件,加上key属性 如下:
<template>
  <div id="main">
    <div class="item">
      <input :value="identifyCode" />
      <span class="code" @click="refreshCode">
        <IdentifyCode :ikey="1" :identify-code="identifyCode" :content-width="100" :content-height="48"></IdentifyCode>
      </span>
    </div>
  </div>
</template>