VUE Elemen-ui之穿梭框使用方法详解


Posted in Javascript onJanuary 19, 2021

本文实例为大家分享了VUE Elemen-ui之穿梭框使用方法,供大家参考,具体内容如下

背景:

现在需要使用穿梭框实现,角色的操作功能

需要使用 Element Transfer 穿梭框

HTML代码:

<template>
 <el-card class="box-card" shadow="never" style="height: 700px;"> 
 <div slot="header" class="clearfix" style="height:25px">
 <div style="float:left">
 <span class="titel_font">角色操作</span>
 </div>
 <div style="float:right">
 <el-button type="primary" size="mini" style="font-size:11px" @click="back()">返回首页</el-button>
 </div>
 </div>
 <div style="margin-left:20%;margin-top:20px;" >
 <el-transfer 
 v-model="handleSelectedValue"
 :data="rolePool"
 :titles="['待选角色', '已有角色']"
 :button-texts="['移除', '添加']"
 ></el-transfer>
 
 <el-button type="success" style="margin-left:20%;margin-top:40px;" @click="save()">保存</el-button>
 <el-button type="warning" style="margin-left:200px;margin-top:40px;" @click="reset()">重置</el-button>
 </div>
 </el-card>
</template>

Style代码:

<style>
 /* 设置穿梭框的 宽高 */
 .el-transfer-panel{
 width : 350px;
 height: 400px;
 }
 .el-transfer-panel__list {
 margin: 0;
 padding: 6px 0;
 list-style: none;
 height: 390px;
 overflow: auto;
 -webkit-box-sizing: border-box;
 box-sizing: border-box;
 }
 .el-transfer__buttons {
 display: inline-block;
 vertical-align: middle;
 padding: 0 30px;
 }
</style>

Script代码:

export default {
 data(){
 return{
 rolePool : [], //角色池
 initSelectedValue : [], //初始化选中的值
 handleSelectedValue : [], //操作后选中的值
 finalAddResult: [], //最终添加结果 
 finalRemoveResult: [], //最终删除结果 
 }
 },
 methods: {
 
 //保存到后端
 save(){
 //逻辑代码
 },
 
 //重置
 reset(){
 this.rolePool = []; //清空角色池
 this.handleSelectedValue = []; //清空已有角色
 this.getRoleData();
 },
 //整合封装结果 
 integrationEncapsulationResult(){
 let retain = []; //保留的角色
 for(let i=0; i<this.handleSelectedValue.length; i++){
 for(let f=0; f<this.initSelectedValue.length; f++){
 if(this.handleSelectedValue[i] == this.initSelectedValue[f]){
 retain.push(this.handleSelectedValue[i]);
 }
 }
 }
 
 /************ 有保留角色操作 ************/
 if(retain.length > 0){
 let result = 0; //保留项是否 与 初始化选中的数据相同的 个数
 for(let i=0; i<this.initSelectedValue.length; i++){ 
 for(let f=0; f<retain.length; f++){ 
 if(this.initSelectedValue[i]== retain[f]){
 ++result;
 }
 }
 }
 
 this.addRole(retain); //增加角色 
 this.deletRole(retain,result); //删除角色
 
 }else{
 for(let i=0; i<this.handleSelectedValue.length; i++){
 this.encapsulationResult(i,this.handleSelectedValue,this.finalAddResult);
 }
 for(let i=0; i<this.initSelectedValue.length; i++){
 this.encapsulationResult(i,this.initSelectedValue,this.finalRemoveResult);
 }
 }
 },
 
 /**
 * 封装结果
 * index 循环下标
 * arr 数组
 * returnResult 返回结果
 */
 encapsulationResult(index,arr,returnResult){
 for(let j=0; j<this.rolePool.length; j++){
 if(arr[index] == this.rolePool[j].key){
 let a ={roleId:this.rolePool[j].key,roleName:this.rolePool[j].label}
 returnResult.push(a);
 }
 }
 },
 
 //增加角色
 addRole(retain){
 //逻辑代码
 },
 
 //删除角色
 deletRole(retain,result){
 //true有删除项 false 无删除项 对比保留项是否 与 初始化选中的数据不一致
 if(result!=this.initSelectedValue.length){ 
 //逻辑代码
 }
 },
 
 //获取角色
 getRoleData(){
 let url = `${lz}/wfHandleRole/showWfHandleRole`;
 let data = {};
 this.$post(url,data).then(retData => {
 console.log('获取角色 ',retData);
 if(retData.returnCode == 1){
 let arr = retData.returnData;
 //逻辑代码
 }
 });
 },
 
 
 
 },
 created(){
 this.getRoleData();
 
 },
 
 }

最终显示结果:

VUE Elemen-ui之穿梭框使用方法详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Ajax执行顺序流程及回调问题分析
Dec 10 Javascript
jQuery获取动态生成的元素示例
Jun 15 Javascript
Html5的placeholder属性(IE兼容)实现代码
Aug 30 Javascript
JavaScript 性能优化小结
Oct 12 Javascript
js实现图片淡入淡出切换简易效果
Aug 22 Javascript
详解js静态资源文件请求的处理
Aug 01 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
Aug 03 Javascript
JS插件clipboard.js实现一键复制粘贴功能
Dec 04 Javascript
Vue弹出菜单功能的实现代码
Sep 12 Javascript
微信小程序实现的五星评价功能示例
Apr 25 Javascript
vue3使用vue-router的完整步骤记录
Jun 20 Vue.js
让JavaScript代码更加精简的方法技巧
Jun 01 Javascript
Vue实现穿梭框效果
Sep 30 #Javascript
原生js实现表格翻页和跳转
Sep 29 #Javascript
vue实现井字棋游戏
Sep 29 #Javascript
js实现移动端图片滑块验证功能
Sep 29 #Javascript
js+cavans实现图片滑块验证
Sep 29 #Javascript
如何利用JS将手机号中间四位变成*号
Sep 29 #Javascript
原生JavaScript实现刮刮乐
Sep 29 #Javascript
You might like
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
Python的pycurl包用法简介
2015/11/13 Python
python 获取网页编码方式实现代码
2017/03/11 Python
简单易懂的python环境安装教程
2017/07/13 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
Java程序员面试题
2013/07/15 面试题
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
Ruby如何实现动态方法调用
2012/11/18 面试题
测试工程师职业规划书
2014/02/06 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
白血病募捐倡议书
2014/05/14 职场文书
活着观后感
2015/06/03 职场文书
九不准学习心得体会
2016/01/23 职场文书
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL