zoukankan      html  css  js  c++  java
  • 基于vue-cli的车牌号码专用键盘前端工程

    • 基于vue-cli的车牌号码专用键盘,用到了vue、elementui、axios.全部内容较少,放在这做一个记录。
    <template>
      <div id="main">
        <div    class="carNumber" @click="onTypewriting" >
          <el-input    placeholder="请输入车牌号" v-model="carNumber" >
            <el-button type="primary" slot="append" icon="el-icon-search" @click="onOfferTap">查询</el-button>
            <el-button type="primary" slot="append" icon="el-icon-refresh" @click="clearNum">重置</el-button>
          </el-input>
        </div>
        <div class="typer" v-show="showTyper!=0"> <!-- ③输入键盘 -->
          <ul v-show="showTyper==1"> <!-- ④省的输入 -->
            <el-button class="typer-pro"
                v-for="(item,id) in provinces"
                :key="id"
                :class="{'is-closeType':item==='关闭'}"
                @click="input(item)">
              {{item}}
            </el-button>
          </ul>
          <ul v-show="showTyper==2"> <!-- ⑤字母数字的输入 -->
            <el-button class="typer-num" v-for="(item,id) in keyNums" :key="id"
                :class="{'is-A': item==='A','is-OK':item==='OK','is-Del':item==='Del'}" @click="input(item)">{{item}}</el-button>
          </ul>
        </div>
        <el-dialog
          title="拨打电话"
          :visible.sync="telPhone"
          width="100%"
          @close="telPhoneClose"
        >
          <div style="padding-bottom:20px ">当前车牌号:{{this.carNumber}}</div>
          <el-button type="primary" @click="callPhone">拨 号</el-button>
          <el-button @click="telPhoneClose">取 消</el-button>
        </el-dialog>
      </div>
    </template>
    <script>
    export default {
      data () {
        return {
          phoneNo: '',
          telPhone: false,
          showTyper: 0, // 输入法的值,0表示不显示,1表示显示省输入键盘,2表示显示数字字母输入键盘
          provinces: ['京', '沪', '浙', '苏', '粤', '鲁', '晋', '冀', // 省
            '豫', '川', '渝', '辽', '吉', '黑', '皖', '鄂',
            '津', '贵', '云', '桂', '琼', '青', '新', '藏',
            '蒙', '宁', '甘', '陕', '闽', '赣', '湘', '关闭'],
          keyNums: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', // 数字字母
            'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P',
            'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L',
            'Z', 'X', 'C', 'V', 'B', 'N', 'M', 'OK', 'Del'],
          carNumber: '', // 输入的值
          wechatCode: '',
          wechatStatus: ''
    
        }
      },
      created () {
        this.conPa()
      },
      methods: {
        conPa () {
          this.wechatCode = this.$route.query.code
          this.wechatStatus = this.$route.query.state
        },
        telPhoneClose () {
          this.telPhone = false
        },
        callPhone () {
          window.location.href = 'tel:' + this.phoneNo
        },
        clearNum () {
          this.carNumber = ''
        },
        async onOfferTap () { // 对最终结果进行判断
        /*  var carNumberReg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
          if (!carNumberReg.test(this.carNumber)) {
            this.$message('请输入正确的车牌号码')
            return
          } */
          if (this.carNumber.length < 6) {
            this.$error('车牌有误,请重新输入')
            return
          }
          const { data: res } = await this.$http.get('Seek/GetPhone', {
            params: { plateNumber: this.carNumber, code: this.wechatCode, status: this.wechatStatus }
          })
          if (res.meta.status !== 200) {
            this.$message({
              message: res.meta.msg,
              type: 'error'
            })
            return
          }
          this.phoneNo = res.data
          this.telPhone = true
        },
        onTypewriting: function () { // 点击输入框时,弹出键盘
          this.showTyper = 1
          this.changeTyper()
        },
        changeTyper: function () { // 判断输入的车牌号处于什么状态,为空?已输入第一个值(即省)?输入省之后的值?
          if (this.carNumber.length >= 1) {
            this.showTyper = 2
          }
          if (this.carNumber.length === 0) {
            this.showTyper = 1
          }
        },
        input: function (item) { // 键盘点击事件,传入键盘本身的值
          if (item === 'OK' || item === '关闭') { // 判断是否点击了关闭按钮
            this.showTyper = 0
            return
          }
          if (item === 'Del') { // 判断是否点击了删除按钮
            this.carNumber = this.carNumber.slice(0, -1)
            this.changeTyper()
            return
          }
          if (this.carNumber.length < 8) { // 判断当前的车牌号的数目是否合法,还未超出7位则可继续输入
            this.carNumber = this.carNumber + item
            this.changeTyper()
          } else {
            this.$error('车牌号码超出正常范围')
          }
        }
      }
    }
    </script>
    <style >
    </style>
    
  • 相关阅读:
    一个使用 Python 的人工智能聊天机器人框架
    【TensorFlow 官网 可以直接访问】让中国开发者更容易地使用TensorFlow打造人工智能应用
    Object Relational Tutorial 对象关系教程
    Automap sqlalchemy.ext.automap 自动映射数据库表结构
    回溯法
    子集树和排列树
    平衡树
    二叉查找树
    graphviz使用
    linux进程内存布局
  • 原文地址:https://www.cnblogs.com/guojuboke/p/13879198.html
Copyright © 2011-2022 走看看