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实现的输入框选择时间插件用法实例
Feb 28 Javascript
jquery控制页面部分刷新的方法
Jun 24 Javascript
jQuery基于json与cookie实现购物车的方法
Apr 15 Javascript
JS把内容动态插入到DIV的实现方法
Jul 19 Javascript
JavaScript实现in-place思想的快速排序方法
Aug 07 Javascript
js removeChild 方法深入理解
Aug 16 Javascript
AngularJS轻松实现双击排序的功能
Aug 30 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
Vue 全局loading组件实例详解
May 29 Javascript
layui获取多选框中的值方法
Aug 15 Javascript
详解easyui 切换主题皮肤
Apr 04 Javascript
Vue单文件组件开发实现过程详解
Jul 30 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下统计用户在线时间的一种尝试
2010/08/26 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
php防止sql注入代码实例
2013/12/18 PHP
php实现快速排序的三种方法分享
2014/03/12 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
Python入门篇之对象类型
2014/10/17 Python
Python压缩和解压缩zip文件
2015/02/14 Python
python机器学习实战之树回归详解
2017/12/20 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
入党申请书自我鉴定
2013/10/12 职场文书
新郎父亲婚宴答谢词
2014/01/11 职场文书
2015元旦标语横幅
2014/12/09 职场文书
大学生入党自传2015
2015/06/26 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书