vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询
vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询
基于element Transfer
http://element-cn.eleme.io/#/zh-CN/component/transfer
直接上代码
<template>
<div class="auth-user-list">
<el-breadcrumb separator="/">
<el-breadcrumb-item>XXXXX</el-breadcrumb-item>
<el-breadcrumb-item>编辑XXX</el-breadcrumb-item>
</el-breadcrumb>
<div class="content">
<div class="content-title">编辑XXXX</div>
<p style="text-align: center; margin: 0 0 20px"></p>
<div style="text-align: center">
<el-transfer
style="text-align: left; display: inline-block;height: 500px;"
v-model="value3"
filterable
filter-placeholder="请输入用户名称"
:left-default-checked="[2, 3]"
:right-default-checked="[1]"
:render-content="renderFunc"
:titles="['用户列表', '用户列表']"
:button-texts="['到左边', '到右边']"
@change="handleChange"
:data="data">
<el-button class="transfer-footer" slot="right-footer" size="small" @click="savaUser">保存</el-button>
</el-transfer>
<p style="text-align: center; margin: 0 0 20px"></p>
</div>
</div>
</div>
</template>
<style lang="less" rel="stylesheet/less">
.auth-user-list {
.block-header {
font-size: 12px !important;
margin-top: 5px;
}
.transfer-footer {
margin-left: 20px;
padding: 6px 5px;
}
.el-transfer-panel {
width: 300px;
}
}
</style>
<style lang="less" rel="stylesheet/less" scoped>
.search {
margin-left: 10px;
}
.page-block {
text-align: right;
margin-top: 10px;
}
</style>
<script>
export default {
data() {
const generateData = _ => {
const data = [];
for (let i = 1; i <= 4; i++) {
data.push({
key: i,
label: `备选项 ${i}`,
disabled: i % 4 === 0
});
}
return data;
};
return {
realName: "",
groupId: $.trim(this.$route.params.groupId),
data: generateData(),
pinyin: [],
value3: [],
filterMethod(query, item) {
return item.pinyin.indexOf(query) > -1;
},
renderFunc(h, option) {
return (
<span>
{option.label} //页面展示的数据
</span>
);
}
};
},
watch: {},
computed: {},
methods: {
handleChange(value, direction, movedKeys) {
// console.log(value);
},
/**
* 获取列表数据
**/
getUserInfo: function() {
let me = this;
//清空数据
me.data = [];
me.value3 = [];
me.$ajax
.getUserInfoPage(
{},
{
type: "POST"
}
)
.then(users => {
if (users) {
users.res.forEach(function(c, index) {
me.pinyin.push(c.realname);
me.data.push({
key: c.rightUserId,
label: c.realname,
// disabled: i % 4 === 0
pinyin: me.pinyin[index] //添加数据时设置pinyin的索引
});
});
}
});
me.$ajax
.getUserInfoPageByGroupId(
{
realName: $.trim(this.realName),
groupId: $.trim(this.$route.params.groupId)
},
{
type: "POST"
}
)
.then(users => {
if (users) {
users.res.forEach(function(c) {
me.value3.push(c.rightUserId);
});
}
});
},
//保存用户关系
savaUser() {
this.$ajax
.savaUser(
{
userIdList: this.value3,
groupId: $.trim(this.$route.params.groupId)
},
{
type: "POST"
}
)
.then(res => {
this.getUserInfo();
this.$message({
type: "success",
message: "保存成功"
});
});
},
},
mounted() {
//加载用户信息
this.getUserInfo();
}
};
</script>
说明
1.代码中的 me.$ajax为自己封装的ajax组件 需要改成自己的ajax
2.首先调用mounted()中的 getUserInfo() 加载用户数据
3.data() 中的data为页面展示的数据
4.data() 中的value3保存的是ajax传递的数据
5.data() 中的 pinyin 为查询时的内容,需要注意当getUserInfoPage()查询后端返回的列表数据班车数据 名称应该和 me.pinyin[index]的
索引一致
6.getUserInfo 中触发了两个ajax可以进行优化
7.$message为引入的消息控件
8.未解决问题 const generateData 没有进行删除,删除后共多少人展示为0
vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询的更多相关文章
- 修改vue element Transfer 穿梭框里内容区的宽度
<template> <el-transfer v-model="value1" :data="data"></el-transf ...
- Ant Design Pro中Transfer穿梭框的实际用法(与后端交互)
Ant Design Pro中Transfer穿梭框的实际用法(与后端交互) 该控件的属性以及属性的作用在ADP的官方文档中都有介绍,但没有讲如何与后端交互,本文旨在讲解该控件与后端的交互. Ant ...
- 关于ajax请求数据,并将数据赋值给全局变量的一些解决方法
在使用ajax请求数据是,开始的时候是打算将ajax的数据取出,并赋予给全局变量,但是在实际编码过程中发现并不能将数据赋予给最开始定义的全局变量,出现这个问题的原因是由于ajax异步加载的原因,所以只 ...
- Ajax请求数据的两种方式
ajax 请求数据的两种方法,有需要的朋友可以参考下. 实现ajax 异步访问网络的方法有两个.第一个是原始的方法,第二个是利用jquery包的 原始的方法不用引入jquery包,只需在html中编写 ...
- h5-localStorage实现缓存ajax请求数据
使用背景:要实现每次鼠标hover“能力雷达”,则显示能力雷达图(通过ajax请求数据实现雷达图数据显示),所以每次hover都去请求ajax会影响性能,因此这里要用到本地缓存. 实现: 此处是通过传 ...
- session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java推断是否是ajax请求)
在登录过滤器中.推断请求是ajax请求还是超链接或者地址栏变化的请求 if (httpServletReq.getHeader("x-requested-with") != nul ...
- 使用Python的Flask框架,结合Highchart,动态渲染图表(Ajax 请求数据接口)
参考链接:https://www.highcharts.com.cn/docs/ajax 参考链接中的示例代码是使用php写的,这里改用python写. 需要注意的地方: 1.接口返回的数据格式,这个 ...
- vue Transfer 穿梭框
Element Transfer组件默认支持单个list的穿梭 现业务需要支持两个list,效果如下 实现思路: 1.有选中才可穿梭 2.已穿梭源数据减少.目标增加(双向) 边界条件: 存储旧List ...
- Vue实现拖拽穿梭框功能四种方式
一.使用原生js实现拖拽 点击打开视频讲解更加详细 <html lang="en"> <head> <meta charset="UTF-8 ...
随机推荐
- 10-Python3从入门到实战—基础之函数
Python从入门到实战系列--目录 函数的定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数的语法 def 函数名(参数列表): 函数体 函数代码块以 def 关键词开头 ...
- css3-弹性盒模型
first <style> .box{width:1024px;height:100px; border:5px solid black; padding:10px; display:-w ...
- git学习笔记——廖雪峰git教程
OK,先附上教程--廖雪峰的官方网站 友情连接:git官网 简介 这里我只想引用他的原文: Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的.实际情况是这样的: L ...
- 2017BUAA软工第0次作业
第一部分:结缘计算机 1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢? 我在上大学之前,其实一直就没怎么考虑过自己以后想要选什么专业,只知道一个大致的方向一定是理工科.毕竟大学之前, ...
- beta版验收互评
排名 团队名称 项目名称 优点 缺点,bug 报告 1 别看了你没救了队 校园帮帮帮(已发布) 实现普通用户的登陆,修改个人信息,发布信息,下订单的功能:管理员登陆,修改个人信息,发布信息,下订单,增 ...
- 命令行批量修改IP并ping测试
@echo off set ip=0 :beginset /a ip=%ip%+1netsh interface ip set address "本地连接" static 172. ...
- 【Java】初始化
默认域初始化 如果在构造器中没有显示地给域赋予初值,那么就会被自动赋予默认值:数值为0,布尔值为false,对象引用为null. 无参数构造器 很多类都包含一个无参数的构造函数,对象由无参数构造函数创 ...
- cordic——sincos
phase format :scaled radians,归化到多少pi roundmode :nearest even 近似值 coarse rotation: selected-pi——pi.no ...
- BZOJ1093 ZJOI2007最大半连通子图(缩点+dp)
发现所谓半连通子图就是缩点后的一条链之后就是个模板题了.注意缩点后的重边.写了1h+真是没什么救了. #include<iostream> #include<cstdio> # ...
- 【BZOJ3668】【NOI2014】起床困难综合症(贪心)
[NOI2014]起床困难综合症(贪心) 题面 Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚 ...