created() {
window.addEventListener('keyup', this.getTables) //创建一个全局的按键按下事件去调用 getTables 这个事件
},
<el-select filterable clearable ref="selectContractNo" @visible-change="isShowSelectOptions" v-model="queryParams.contractNo">
<el-option v-for="(item,index) in contractList" :key="item.index" :label="item.contractNo":value="item.contractNo"/>
</el-select>
created() {
window.addEventListener('keyup', this.getTables) //创建一个全局的按键按下事件去调用 getTables 这个事件
},
methods: {
getTables(event){ // 用来做判断是否触发的是回车键 如果是就调用搜索
if(event.keyCode==13){
this.getList()
}
},
//用作处理 sclect的选完后的失焦 防止点击回车后弹出下拉框
isShowSelectOptions(isShowSelectOptions){
if(!isShowSelectOptions) this.$refs.selectContractNo.blur();
},
},
beforeDestroy () { //关闭页面之前的时候去销毁这个事件
window.removeEventListener('keyup', this.getTables)
},
watch: {
$route(to,from){ 通过监听路由的变化去删除或者开始这个事件 因为我这个是在若依框架中开发所以有这个需求
if(to.path=="/shipping/voyage/scheduling"){//当前页面的路由
window.addEventListener('keyup', this.getTables)
}else{
window.removeEventListener('keyup', this.getTables)
}
}
},