需求:使用element-ui的穿梭框,发送ajax向服务器查询数据,我这里以查询姓名为例子

由于穿梭框自己的那个搜索框并不满足我们要达到的条件,所以我自己写了一个输入框input去覆盖在原来的搜索框上面,当每次用户输入的时候,就拿到用户输入的内容传递给后端去查询,最后在显示出来

option.realName是姓名,option.loginId是工号,可在<span slot-scope="{ option }">{{ option.realName || '' }} - 工号: {{ option.loginId || '' }}</span> 根据自己的需求显示结果

html部分

    <div style="text-align: center" class="el-transfers">
<el-transfer
style="text-align: left; display: inline-block"
v-model="value4"
:props='propss' //数据源的字段别名
:titles="['待选人员', '已选人员']"
:button-texts="['移除', '添加']"
:format="{
noChecked: '${total}',
hasChecked: '${checked}/${total}'
}"
@change="handleChange"
:data="data" //Transfer 的数据源
>
<span slot-scope="{ option }">{{ option.realName || '' }} - 工号: {{ option.loginId || '' }}</span>
</el-transfer>
<el-input class="search" @input="querySearchAsyncs()" placeholder="请输入搜索姓名" prefix-icon="el-icon-search" v-model="input"> </el-input>
</div>

css部分:

   .el-transfers{
position: relative;
.search{
position: absolute;
top: 56px;
left: 16px;
z-index: ;
width: 168px;
height: 32px;
.el-input__icon{
line-height: 32px;
}
.el-input__inner{
width: 168px;
height: 32px;
border-radius: 16px;
}
}
}

data部分:

propss:{
key:'id',
label:"realName"
},
data: [],
input:'',
value4:'',
newArray:[]

js部分:

 handleChange(username, direction, movedKeys){
// username点击添加到右边框的数据
//初始化
this.addUser = username;//这是一个id数组
// 根据添加到右手边的id去data总数据里面找到这条数据,把它拷贝一份到一个新的数组中去
for(let i=;i<this.addUser.length;i++){
for(let n=;n<this.data.length;n++){
if(this.addUser[i] == this.data[n].id){
this.newArray.push(this.data[n]) //用一个新的数组装起来,当我清空搜索框输入内容,进行它搜索时,需要把以前添加在右边的数据(newArray)重新放回到data里面去
}
}
}
},
querySearchAsyncs() {
if(this.input != ""){
setTimeout(()=>{
this.$axios.post('/admin/permission/administrator/user/list',{
userId: this.tool.getCookie("userId"),
sessionId: this.tool.getCookie("sessionId"),
sql: {
fields:"id,loginId,realName",
current: , //当前第几页
pageSize:, //一次性拿到100条数据
searches: {
realName:this.input, //这是我传给后端需要查询的名字
}
}
}).then(res=>{
if(res.errorCode == ){
this.data = res.result.data //后端给我一百条数据对象,首先先放在data里面显示出来
//如果newArray里面有数据,遍历之前添加到右边的所有数据,追加到总数的后面
this.newArray.forEach((e)=>{
this.data.push(e)
})
//将this.data里面的数据去重
let data = this.data
// 根据id去重
var arr1=data.filter(function(element,index,self){
return self.findIndex(el=>el.id==element.id)===index
})
// 把去从后的数据重新赋值给穿梭框
this.data = arr1
}
})
},)
}
},

element-ui 穿梭框使用axios数据查询的更多相关文章

  1. vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询

    vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询 基于element Transfer http://element-cn.eleme.io/#/zh-CN/comp ...

  2. element ui input框不能输入的问题(实时学习)

    解决: 在input的上面添加数据v-model 既可以 1.菜单中api (2018年8月14号) :default-active  默认根据当前路由选中菜单,值需要和  el-submenu 的属 ...

  3. 修改vue element Transfer 穿梭框里内容区的宽度

    <template> <el-transfer v-model="value1" :data="data"></el-transf ...

  4. Vue Element ui密码框校验

    <el-form-item prop="repeat_Password" class="userName_color"> <el-input ...

  5. element ui中的一些小技巧

    最近写公司的项目,这项目是vue和element ui搭建的, 做的是一套电力系统的管理平台.  遇到一个小麻烦,用过element ui 的都知道,使用element ui 弹框,点击空白处,默认是 ...

  6. vue2.0 + element ui 实现表格穿梭框

    element ui 官网里介绍了穿梭框(Transfer),但在实际使用过程中,会出现一些问题: 1.穿梭框里能放置的内容太少,不能满足复杂的业务需求. 2.当选项过多时,穿梭框很难实现分页,左右两 ...

  7. Vue框架Element UI教程-axios请求数据

    Element UI手册:https://cloud.tencent.com/developer/doc/1270 中文文档:http://element-cn.eleme.io/#/zh-CN gi ...

  8. 解决模糊查询问题 element UI 从服务器搜索数据,输入关键字进行查找

    做项目是遇见下拉框的形式,后台返回来3万多条,用element UI中的select选择器中的搜索还是会造成页面卡顿和系统崩溃,因此用了它的远程搜索功能,发现还不错,解决了这个问题. 代码1 < ...

  9. krry-transfer ⏤ 基于 element 的升级版穿梭框组件发布到 npm 啦

    博客地址:https://ainyi.com/81 基于 element ui 的==升级版穿梭框组件==发布到 npm 啦 看过我之前博客的同学或许知道我之前写过关于 element 穿梭框组件重构 ...

随机推荐

  1. [RoarCTF]Easy Java

    目录 [RoarCTF]Easy Java 知识点 1.WEB-INF/web.xml泄露 [RoarCTF]Easy Java 题目复现链接:https://buuoj.cn/challenges ...

  2. 剑指offer:两个链表的第一个公共结点

    题目描述: 输入两个链表,找出它们的第一个公共结点. 解题思路: 这道题一开始的题意不太理解,这里的公共结点,实际上指结点指相同,在题目不存在结点值相同的不同结点. 1. 最直接的思路是对链表一的每个 ...

  3. LDAP -- ldap 的cn, ou, dc的含义

    1. LDAP的存储规则 区分名(DN,Distinguished Name) 和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别 ...

  4. Jmeter获取 json字符的另外一种写法

    在jmeter使用过程中,我们经常会看到接口返回数据类型为application/json,也就时我们常说的json格式. 而在功能测试时,我们经常会要对它的结果进行断言,确认结果是否与预期一致,有时 ...

  5. Activiti数据库表结构(23张表5.*版本)

    1  Activiti数据库表结构 1.1      数据库表名说明 Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头. 并且表名的第二部分用两个字母表明表的用例,而这个用 ...

  6. Altera FPGA 远程升级有关的几个IP的使用

    在做在线远程升级的时候,一般需要两步:1.将数据写到外挂的flash中.2重新启动FPGA配置. 不过要做到远程升级,一般需要在原始程序中就考虑到加入远程升级模块,remote updata IP, ...

  7. java的byte[]与String相互转换

    String转byte[] byte[] sInput = new byte[0]; try { // 可以指定编码,默认也只UTF-8 sInput = "这是内容".getBy ...

  8. Linux 上安装 appium

    在linux 环境下安装需要以下几步:1.安装node.js, 通过  uname -a  命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系 ...

  9. mysql慢查询日记

    mysql慢查询日记 <pre>#必须写到mysqld 注意给/tmp/showslowmysql.log 775权限 要写入权限[mysqld]#开启慢查询日记slow_query_lo ...

  10. Spring的并发问题——有状态Bean和无状态Bean

    一.有状态和无状态 有状态会话bean   :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”:一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束.即每 ...