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 相关文章推荐
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
Feb 22 Javascript
js window.event对象详尽解析
Feb 17 Javascript
JavaScript 对象链式操作测试代码
Apr 25 Javascript
js动态为代码着色显示行号
May 29 Javascript
Javascript实现重力弹跳拖拽运动效果示例
Jun 28 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
Nov 19 Javascript
jquery实现保存已选用户
Jul 21 Javascript
JavaScript调用客户端Java程序的方法
Jul 27 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
Sep 04 Javascript
JS匿名函数类生成方式实例分析
Nov 26 Javascript
Vue中computed及watch区别实例解析
Aug 01 Javascript
解决Vue项目中tff报错的问题
Oct 21 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面向对象分析设计的经验原则
2008/09/20 PHP
php中设置多级目录session的问题
2011/08/08 PHP
php数组一对一替换实现代码
2012/08/31 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python实现从百度API获取天气的方法
2015/03/11 Python
python3音乐播放器简单实现代码
2020/04/20 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
python微信公众号开发简单流程
2018/03/23 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
教师应聘个人求职信
2013/12/10 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
优秀教师个人总结
2015/02/11 职场文书
小爸爸观后感
2015/06/15 职场文书
教育教学读书笔记
2015/07/02 职场文书
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL