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 ...
随机推荐
- PHP使用Redis实现消息队列
消息队列可以使用MySQL来实现,可以参考博客PHP使用MySQL实现消息队列,虽然用MySQL可以实现,但是一般不这么用,因为MySQL的数据都存在硬盘中,而从硬盘中对MySQL的操作,I/O花费的 ...
- Tomcat7注册为Linux服务
https://www.openprogrammer.info/2015/06/14/how-to-install-java-8-and-tomcat-8-on-centos-6-as-service ...
- Windows 版本下 Oracle12.1.0.2 升级Oracle12.2.0.1的步骤
oracle12.1.0.1 2013年发布的产品 2014年左右发布12.1.0.2 2016年底发布了 oracle12.2.0.1 经常有人会安装了最早的oracle版本,然后需要升级到最新的o ...
- Python 爬虫 --- urllib
对于互联网数据,Python 有很多处理网络协议的工具,urllib 是很常用的一种. 一.urllib.request,request 可以很方便的抓取 URL 内容. urllib.request ...
- Angular @的作用
<!DOCTYPE html><html lang="zh-cn" ng-app="myApp"><head> <me ...
- 金蝶特性配置(超级BOM)
特性配置 特性物料 物料和特性的对应关系 自动新增物料的系统设置 特性物料自动新增 自动新增的特性配置方案 相关表 ICPlan_CharacteristicEntry
- Java多线程:用三个线程控制循环输出10次ABC
转载:http://www.cnblogs.com/gaopeng527/p/5257884.html 题目:有A,B,C三个线程, A线程输出A, B线程输出B, C线程输出C,要求, 同时启动三个 ...
- Uva10474-STL水题-白书
白书的一道水题.话说好久没认真做难题了.今天出了排名,所有队伍里倒数第一啊! 代码没什么可说的了. #include <algorithm> #include <cstring> ...
- day13 for内部机制详解,迭代器
迭代器定义: 可迭代协议:含有iter方法的都是可以迭代的 迭代器协议: 有.next 方法,和iter的都是迭代器 必须存在终结 特点: 节省空间 方便逐个取值,一个迭代器只能取一次 简单来说:满足 ...
- Linux 下统计Apache每分钟的并发数
脚本非常简单,不清楚原理,逐行运行即可. 使用时将脚本复制到home目录,并添加执行权限.定时任务即可. 代码内容如下: #!/bin/sh date >> /home/date-time ...