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 相关文章推荐
Javascript开发包大全整理
Dec 22 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
Aug 28 Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
Oct 04 Javascript
javascript 实现动态侧边栏实例详解
Nov 11 Javascript
node-sass安装失败的原因与解决方法
Sep 04 Javascript
jQuery Dom元素操作技巧
Feb 04 jQuery
Vue-component全局注册实例
Sep 06 Javascript
Vue源码解析之Template转化为AST的实现方法
Dec 14 Javascript
JavaScript函数定义方法实例详解
Mar 05 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
Apr 08 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实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
js数组的操作详解
2013/03/27 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
python正则分组的应用
2013/11/10 Python
简单解析Django框架中的表单验证
2015/07/17 Python
Python通过正则表达式选取callback的方法
2015/07/18 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
Python实现的双色球生成功能示例
2017/12/18 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
python实现电子书翻页小程序
2019/07/23 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
python自动化办公操作PPT的实现
2021/02/05 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
历史系毕业生自荐信
2013/10/28 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
企业党员个人自我评价
2014/09/20 职场文书
计划生育诚信协议书
2014/11/02 职场文书
物业工程部岗位职责
2015/02/11 职场文书
教师党员自我评价范文
2015/03/04 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL