Vue關(guān)于element穿梭框進行的修改成table表格穿梭框方式
更新時間:2024年04月18日 10:08:12 作者:像牛奶卻不是牛奶
這篇文章主要介紹了Vue關(guān)于element穿梭框進行的修改成table表格穿梭框方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
關(guān)于element穿梭框進行的修改成table表格穿梭框
直接先看樣式圖

<!--彈出層 -->
<el-dialog title="標(biāo)題" :visible.sync="introductionVisible" width="70%">
<el-form :model="introductionForm" label-width="100px">
<el-row style="display:flex;justify-content:space-around">
<el-col :span="10" style="border:1px solid #EBEEF5">
<span style="display:block;font-size:16px;text-align:center;padding:10px;border-bottom:1px solid #EBEEF5;margin-bottom:10px">請選擇</span>
<el-col :span="16">
<el-form-item label="姓名">
<el-input size="mini" v-model="studentName" :style="{width: '120px'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="24" style="margin-right:10px" >
<el-form-item label="所屬單位">
<select-builder table="org" v-model="orgId" :style="{width: '120px'}"></select-builder>
*[HTML]:自己封裝的組件,沒有的話也可以用input
<el-radio-group v-model="search_range">
<el-radio :label="0" style="margin-left: 10px; margin-right:10px;">本級</el-radio>
<el-radio :label="1">全部</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24" style="display:flex;justify-content:space-around;margin:-10px 0 10px 0">
<el-button type="primary" size="mini">查詢</el-button>
</el-col>
<el-table :data="data1" border ref="selection" @selection-change="checkAll" style="width: 100%">
<el-table-column type="selection" width="30"> </el-table-column>
<el-table-column prop="name" label="人員姓名" > </el-table-column>
<el-table-column prop="date" label="機構(gòu)路徑" ></el-table-column>
</el-table>
</el-col>
<el-col :span="2" style="display:flex;flex-direction:column;justify-content:center">
<el-button icon="el-icon-d-arrow-right" :disabled="nowSelectData.length?false:true" size="mini" type="primary" @click="handelSelect"></el-button>
<el-button icon="el-icon-d-arrow-left" :disabled="nowSelectRightData.length?false:true" size="mini" type="primary" @click="handleRemoveSelect" style="margin-top:10px;margin-left:0px;"></el-button>
</el-col>
<el-col :span="10" style="border:1px solid #EBEEF5;min-height:460px">
<span style="display:block;font-size:16px;text-align:center;padding:10px;border-bottom:1px solid #EBEEF5;margin-bottom:10px">已選擇</span>
<el-table :data="selectArr" border ref="selection" @selection-change="checkRightAll" style="width: 100%">
<el-table-column type="selection" width="30"></el-table-column>
<el-table-column prop="name" label="人員姓名"></el-table-column>
<el-table-column prop="date" label="機構(gòu)路徑"></el-table-column>
</el-table>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="introductionVisible = false">取 消</el-button>
<el-button type="primary" @click="introductionVisible = false">確 定</el-button>
</div>
</el-dialog>
- js
<script>
export default {
data() {
return {
studentName:'',
orgId:'',
search_range:'',
selectArr:[], // 右邊列表
options: [],
value: '',
data1:[{
date: '11000KV-三站1',
name: '王小虎1',
}, {
date: '11000KV-三站2',
name: '王小虎2',
}, {
date: '11000KV-三站3',
name: '王小虎3',
}, {
date: '11000KV-三站4',
name: '王小虎4',
}, {
date: '11000KV-三站5',
name: '王小虎5',
}, {
date: '11000KV-三站6',
name: '王小虎6',
}, {
date: '11000KV-三站7',
name: '王小虎7',
}],
nowSelectData: [], // 左邊選中列表數(shù)據(jù)
nowSelectRightData: [], // 右邊選中列表數(shù)據(jù)
};
},
methods: {
checkAll(val){
this.nowSelectData = val;
},
checkRightAll(val) {
this.nowSelectRightData = val;
},
// 選中
handelSelect(){
this.selectArr = this.handleConcatArr(this.selectArr, this.nowSelectData)
this.handleRemoveTabList(this.nowSelectData, this.data1);
this.nowSelectData = [];
},
// 取消
handleRemoveSelect() {
this.data1 = this.handleConcatArr(this.data1, this.nowSelectRightData)
this.handleRemoveTabList(this.nowSelectRightData, this.selectArr);
this.nowSelectRightData = [];
},
handleConcatArr(selectArr, nowSelectData) {
let arr = [];
arr = arr.concat(selectArr, nowSelectData);
return arr;
},
handleRemoveTabList(isNeedArr, originalArr) {
if(isNeedArr.length && originalArr.length) {
for(let i=0; i<isNeedArr.length; i++) {
for(let k=0; k<originalArr.length; k++) {
if(isNeedArr[i]["name"] === originalArr[k]["name"]) {
originalArr.splice(k, 1);
}
}
}
}
}
},
};
</script>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3+ts+element-plus 表單el-form取消回車默認提交
文章主要講述了在使用Element UI的el-form和el-input組件時,按回車鍵導(dǎo)致頁面刷新的問題,并提供了四種解決方法:阻止表單的默認提交事件、阻止keydown回車事件、在指定的el-input組件上阻止keydown回車事件以及在el-input中按特定組合鍵進行查找,感興趣的朋友一起看看吧2025-01-01
vue+echarts實現(xiàn)動態(tài)繪制圖表及異步加載數(shù)據(jù)的方法
vue寫的后臺管理,需要將表格數(shù)據(jù)繪制成圖表(折線圖,柱狀圖),圖表數(shù)據(jù)都是通過接口請求回來的。這篇文章主要介紹了vue+echarts 動態(tài)繪制圖表及異步加載數(shù)據(jù)的相關(guān)知識,需要的朋友可以參考下2018-10-10

