<template>
            <el-table :data="CreditUnclearOutlineList" border style="width: 100%" ref="table">
<el-table-column align="center" prop="name" label="名称" width="150">
</el-table-column>
<el-table-column align="center" label="正常">
<el-table-column align="center" sortable prop="normalB" label="笔数">
<template scope="scope">
<span>
<el-input style="width: 90px" placeholder="笔数" v-model="scope.row.normalB" @change="handleCreditChange()" class="table_input normalB_input" @keyup.native="show($event,scope.$index)"></el-input>
</span>
</template>
</el-table-column>
<el-table-column align="center" sortable prop="normalY" label="余额(万元)">
<template scope="scope">
<span>
<el-input style="width: 90px" placeholder="余额" v-model="scope.row.normalY" @change="handleCreditChange()" @blur="handleBalanceBlur($event)" @focus="handleBalanceClear($event)" class="table_input normalY_input" @keyup.native="show($event,scope.$index)"></el-input>
</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column align="center" label="关注">
<el-table-column align="center" sortable prop="focusB" label="笔数">
<template scope="scope">
<span>
<el-input style="width: 90px" placeholder="笔数" v-model="scope.row.focusB" @change="handleCreditChange()" class="table_input focusB_input" @keyup.native="show($event,scope.$index)"></el-input>
</span>
</template>
</el-table-column>
<el-table-column align="center" sortable prop="focusY" label="余额(万元)">
<template scope="scope">
<span>
<el-input style="width: 90px" placeholder="余额" v-model="scope.row.focusY" @change="handleCreditChange()" @blur="handleBalanceBlur($event)" @focus="handleBalanceClear($event)" class="table_input focusY_input" @keyup.native="show($event,scope.$index)"></el-input>
</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column align="center" label="不良">
<el-table-column align="center" sortable prop="badB" label="笔数">
<template scope="scope">
<span>
<el-input style="width: 90px" placeholder="笔数" v-model="scope.row.badB" @change="handleCreditChange()" class="table_input badB_input" @keyup.native="show($event,scope.$index)"></el-input>
</span>
</template>
</el-table-column>
<el-table-column align="center" sortable prop="badY" label="余额(万元)">
<template scope="scope">
<span>
<el-input style="width: 90px" placeholder="余额" v-model="scope.row.badY" @change="handleCreditChange()" @blur="handleBalanceBlur($event)" @focus="handleBalanceClear($event)" class="table_input badY_input" @keyup.native="show($event,scope.$index)"></el-input>
</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column align="center" prop="amountY" sortable label="余额(万元)">
<template scope="scope">
<span>{{scope.row.amountY}}</span>
</template>
</el-table-column>
</el-table>
</template>
//键盘触发事件
show(ev,index){ let newIndex ; //通过ev 获取 当前input 名称 用于判断属于哪列
let clssName = ev.target.offsetParent.className; //每一列
if(clssName.indexOf('normalB_input') != -1){ newIndex = index*6 ; } else if (clssName.indexOf('normalY_input') != -1) { newIndex = index*6 + 1 ; } else if (clssName.indexOf('focusB_input') != -1) { newIndex = index*6 + 2; } else if (clssName.indexOf('focusY_input') != -1) { newIndex = index*6 + 3; } else if (clssName.indexOf('badB_input') != -1) { newIndex = index*6 + 4; } else if (clssName.indexOf('badY_input') != -1) { newIndex = index*6 + 5; } //获取每一列的input名称
let normalB_input = document.getElementsByClassName('normalB_input')
let normalY_input = document.getElementsByClassName('normalY_input')
let focusB_input = document.getElementsByClassName('focusB_input')
let focusY_input = document.getElementsByClassName('focusY_input')
let badB_input = document.getElementsByClassName('badB_input')
let badY_input = document.getElementsByClassName('badY_input') //获取54个input
let inputAll = document.querySelectorAll('.table_input input'); //向上 =38
if(ev.keyCode == 38){
//当焦点在第一行的时候 按向上的时候焦点要聚焦到前一列的最后一个
if(newIndex >=1 && newIndex<=5){
newIndex = newIndex + 47;
} else {
newIndex -= 6 ;
} if( inputAll[newIndex] ){ inputAll[newIndex].focus(); } } //下 = 40
if(ev.keyCode == 40){ //当newIndex 在最后一行的时候 焦点要聚焦到 下一列的第一个
if(newIndex>= 48 && newIndex<53){ newIndex = (newIndex%8) + 1
}else {
newIndex += 6 ;
} if( inputAll[newIndex] ){ inputAll[newIndex].focus(); } } //左 = 37
if(ev.keyCode == 37){ newIndex -= 1 ; if( inputAll[newIndex] ){ inputAll[newIndex].focus(); }
} //右 = 39
if(ev.keyCode == 39){ newIndex += 1 ; if( inputAll[newIndex] ){ inputAll[newIndex].focus(); }
} },

注意点:

1.vue element-ui 绑定@keyup事件无效 ,加上.native覆盖原有封装的keyup事件即可

vue+elementui 中 @keyup 键盘上下左右移动聚焦的更多相关文章

  1. vue+element-ui中的图片获取与上传

    vue+element-ui中的图片获取与上传 工作上接触了一下图片的处理,图片的格式是文件流, 记录如下. 请求图片 请求图片的时候,带上{ responseType: 'blob' }, 否则图片 ...

  2. vue element-ui中引入第三方icon

    vue element-ui中引入第三方icon 把图标加入项目 设置项目名称,下载项目(项目名称自定义) 解压项目到开发目录 在main.js中全局引入css文件 修改下载下来的项目中的css文件, ...

  3. vue+elementUI中单选框el-radio设置默认值和唯一标识某个单选框

    vue+elementUI中单选框el-radio设置默认值 如果后台返回的单选框的值是number:单选框的lable需要设置成 :lable='0';如下: <el-form-item la ...

  4. vue+element-ui中引入阿里播放器

    1.在public文件下的index.html文件中插入以下代码: <link rel="stylesheet" href="https://g.alicdn.co ...

  5. Vue:Elementui中的Tag与页面其它元素相互交互的两三事

    前言 公司系统在用elementui做后台开发,不免遇到一些需要自己去根据原有的功能上,加一些交互的功能.今天来介绍下我在用elementUi里的Tag标签与多选框交互的过程,东西听上去很简单,但就是 ...

  6. 关于Vue element-ui中诡异问题的解决思路

    最近在做Element-ui项目时总是会出现些异步及其一些诡异问题,关于vue 的异步原理就不多说了,感觉大部分的问题都可以用Vue.nextTick来解决,Vue.nextTick是等DOM二次加载 ...

  7. vue element-ui 绑定@keyup事件无效

    解决办法: <el-input @keyup.native="ajax"></el-input> 加上.native覆盖原有封装的keyup事件即可

  8. vue+element-ui中的表单验证(电话等等)

    1. 2. 3. ============================================================上代码============================ ...

  9. Vue Element-UI 中列表单选的实现

    el-table中单选的实现 引用场景: 选择单条数据进行业务操作 实现方式: 给el-table-column设置el-radio Template 代码 <div class="r ...

随机推荐

  1. 【记录】Http 状态码整理

    Http状态码: 1XX:信息,服务器收到请求,需要请求者继续执行操作 2XX:成功,操作被成功接收并处理 3XX:重定向,需要进一步的操作以完成请求 4XX:客户端错误,请求包含语法错误或无法完成请 ...

  2. static变量与普通变量的异同

    1.static局部变量与普通局部变量的异同 相同点:都是局部变量,在函数内部定义,仅能被该模块内部的语句所访问. 不同点: 1)内存分配与释放: static修饰的局部变量在内存中存放在静态存储区, ...

  3. 操作系统之IO管理

    IO系统结构 设备的分类 按数据组织分 块设备: 信息的存取总是以数据块为单位. 它属于有结构设备,如磁盘等. 磁盘设备的基本特征是传输速率较高,以及可寻址,即对它可随机地读/写任一块. 字符设备: ...

  4. Java实体与Json操作类

    import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.Jav ...

  5. 用php 生成 excel 表格

    //引用新建对象require "../phpexcel/Classes/PHPExcel.php"; $excel = new PHPExcel(); 建表格 //Excel表格 ...

  6. AcWing 101. 最高的牛 (差分) 打卡

    有 NN 头牛站成一行,被编队为1.2.3…N,每头牛的身高都为整数. 当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方. 现在,我们只知道其中最高的牛是第 PP 头,它的身高是 HH ,剩 ...

  7. (转)OpenFire源码学习之二十七:Smack源码解析

    转:http://blog.csdn.net/huwenfeng_2011/article/details/43484199 Smack Smack是一个用于和XMPP服务器通信的类库,由此可以实现即 ...

  8. 1242 斐波那契数列的第N项

    1242 斐波那契数列的第N项  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题   斐波那契数列的定义如下:   F(0) = 0 F(1) = 1 F(n) = F( ...

  9. python 拆分字符串(3.0)

    拆分字符串 1. def my_split(s, ds): l = [s] for d in ds: res = [] list(map(lambda x: res.extend(x.split(d) ...

  10. Dynamic partition strict mode requires at least one static partition column.

    https://blog.csdn.net/huobumingbai1234/article/details/81099856