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试卷自动排版系统
Jul 18 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
Apr 03 Javascript
jquery二级导航内容均分的原理及实现
Aug 13 Javascript
js向上无缝滚动,网站公告效果 具体代码
Nov 18 Javascript
javascript中的作用域和上下文使用简要概述
Dec 05 Javascript
javascript 拷贝节点cloneNode()使用介绍
Apr 03 Javascript
js上传图片及预览功能实例分析
Apr 24 Javascript
JS根据生日算年龄的方法
May 05 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
Mar 14 Javascript
JavaScript进制转换实现方法解析
Jan 18 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
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
基于Python实现一个简单的银行转账操作
2016/03/06 Python
python文件的md5加密方法
2016/04/06 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python psutil库安装教程
2018/03/19 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
介绍一下linux的文件权限
2014/07/20 面试题
杠杆的科学教学反思
2014/01/10 职场文书
企业活动策划方案
2014/06/02 职场文书
2014年民警工作总结
2014/11/25 职场文书
郭明义观后感
2015/06/08 职场文书
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android