element ui 穿梭框_vue2.0 + element ui 实现表格穿梭框

本文介绍如何在Vue2.0应用中结合Element UI库,实现表格穿梭框功能,包括从后台获取数据、左右表格数据交互、重复项检查以及提交操作。示例代码展示了数据初始化、数据获取、表格选择项处理和数据提交的方法。
摘要由CSDN通过智能技术生成

data() {return{

listLoading:true,

staffTemp: {

phone:"",

nickName:"",

staffTypeId:""},

staffList: [],

selectedStaffList: [],

staffData: [],

selectedStaffData: [],

tableKey:0,

rowKey:"rowKey",

staffOptions: [

{ key:28, display_name: "补货员"},

{ key:29, display_name: "测试员"}

],

}

},

methods: {//从后台获取左边表格的数据

getStaffList() {

fetchStaffList(this.staffTemp).then(res =>{if (res.value.staff.length === 0) {

alert("查无此人");

}this.staffList =res.value.staff;

});

},//将左边表格选择项存入staffData中

handleStaffChange(rows) {this.staffData =[];if(rows) {

rows.forEach(row=>{if(row) {this.staffData.push(row);

}

});

}

},//左边表格选择项移到右边

addStaff() {

setTimeout(()=>{this.$refs["staffTable"].clearSelection();this.$refs["selectedStaffTable"].clearSelection();

},0);

let repeat= false;this.selectedStaffList.forEach(item =>{if (this.staffData[0] && item.phone === this.staffData[0].phone) {

repeat= true;

alert("此员工已添加");return;

}

});if (repeat === false) {this.staffData.forEach(item =>{this.selectedStaffList.push(item);

});for (let i = 0; i < this.staffList.length; i++) {for (let j = 0; j < this.staffData.length; j++) {if(this.staffList[i] &&

this.staffData[j] &&

this.staffList[i].phone === this.staffData[j].phone

) {this.staffList.splice(i, 1);

}

}

}

}

},

// 右边表格选择项移到左边

removeStaff() {

setTimeout(()=>{this.$refs["staffTable"].clearSelection();this.$refs["selectedStaffTable"].clearSelection();

},0);this.selectedStaffData.forEach(item =>{this.staffList.push(item);

});for (let i = 0; i < this.selectedStaffList.length; i++) {for (let j = 0; j < this.selectedStaffData.length; j++) {if(this.selectedStaffList[i] &&

this.selectedStaffData[j] &&

this.selectedStaffList[i].phone === this.selectedStaffData[j].phone

) {this.selectedStaffList.splice(i, 1);

}

}

}

},//将右边表格选择项存入selectedStaffData中

handleSelectedStaffChange(rows) {this.selectedStaffData =[];if(rows) {

rows.forEach(row=>{if(row) {this.selectedStaffData.push(row);

}

});

}

},//提交

modifyStaff() {

let isEmpty= false;this.selectedStaffList.forEach(item =>{if (!item.staffTypeId) {

alert("请选择类型");

isEmpty= true;return;

}

});if (isEmpty === false) {

editStaff(this.selectedStaffList, this.deviceQuery.id).then(res =>{this.staffListVisible = false;this.$notify({

title:"成功",

message:"修改成功",

type:"success",

duration:2000});

});

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值