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 相关文章推荐
在textarea文本域中显示HTML代码的方法
Mar 06 Javascript
找到了一篇jQuery与Prototype并存的冲突的解决方法
Aug 29 Javascript
JavaScript 学习笔记(五)
Dec 31 Javascript
菜鸟学习JavaScript小实验之函数引用
Nov 17 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
JS获取Table中td值的方法
Mar 19 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
Aug 17 Javascript
ionic实现滑动的三种方式
Aug 27 Javascript
微信小程序 本地存储及登录页面处理实例详解
Jan 11 Javascript
vue加载完成后的回调函数方法
Sep 07 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
Mar 03 Javascript
JS apply用法总结和使用场景实例分析
Mar 14 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 fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
PHP 图片水印类代码
2012/08/27 PHP
php去除数组中重复数据
2014/11/18 PHP
yii中widget的用法
2014/12/03 PHP
浅析PHP开发规范
2018/02/05 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
js实现交通灯效果
2017/01/13 Javascript
基于JavaScript实现验证码功能
2017/04/01 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
JavaScript设计模式之装饰者模式实例详解
2019/01/17 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
Python执行时间的计算方法小结
2017/03/17 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
怎么写有吸引力的自荐信
2013/11/17 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
十佳党员事迹材料
2014/08/28 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js