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 相关文章推荐
Jquery+ajax请求data显示在GridView上(asp.net)
Aug 27 Javascript
JavaScript中的toUTCString()方法使用详解
Jun 12 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
Aug 08 Javascript
将Sublime Text 3 添加到右键中的简单方法
Dec 12 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
May 21 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
Dec 30 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
Jan 23 Javascript
layui-table获得当前行的上/下一行数据的例子
Sep 24 Javascript
详解vue或uni-app的跨域问题解决方案
Feb 21 Javascript
简单了解JavaScript arguement原理及作用
May 28 Javascript
Jquery ajax书写方法代码实例解析
Jun 12 jQuery
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 代码优化之经典示例
2011/03/24 PHP
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
php实现两个数组相加的方法
2015/02/17 PHP
php实现Session存储到Redis
2015/11/11 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
js输出列表实现代码
2010/09/12 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
详解Python3 pandas.merge用法
2019/09/05 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
python3多线程知识点总结
2019/09/26 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
科研先进个人典型材料
2014/01/31 职场文书
安全责任书范文
2014/03/12 职场文书
房屋授权委托书范本
2014/10/07 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书