VUE Elemen-uiのシャトルボックスの使い方について詳しく説明します。


本論文の例では、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>
 /*           */
 .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();
 
 },
 
 }
最終表示結果:

以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。