实现效果:当用户只有一个用户组时,不可进行移除操作,且超级管理员必须属于超级管理员用户组(超级管理员的roleId==1)
要求后台返回一个参数,表示这个用户只有一个用户组,再判断是否属于该用户组,属于则禁用
代码:
<div style="text-align: center" v-loading="addloading">
<el-transfer
style="text-align: left; display: inline-block"
v-model="value"
filterable
:titles="['可选用户', '已有用户']"
:button-texts="['移除', '添加']"
:data="allUser"
>
<span slot-scope="{ option }"> {{ option.label }}</span>
</el-transfer>
<div class="tips">
提示:当用户只有一个用户组时,不可进行移除操作,且超级管理员必须属于超级管理员用户组
</div>
</div>
data() {
return {
allUser: [],
value: [],
renderFunc(h, option) {
return (
<span>
{option.key} - {option.label}
</span>
);
},
addloading:false;}
//methods
generateData() {
this.addloading = true;
let arr = [];
let newArr = [];
let roleId = this.searchParams.roleId;
API.getUserList({ roleId: this.searchParams.roleId })
.then(response => {
var data = response.data.allUser;
//console.log(response.data);
if (response.data.inGroup.length > 0) {
//console.log(response.data.inGroup);
response.data.inGroup.forEach(function(e) {
newArr.push(e.id);
});
}
data.forEach(function(i) {
if (i.state == true) {
if (newArr.includes(i.id)) {
arr.push({
key: i.id,
label: i.userName,
disabled: true
});
} else {
arr.push({
key: i.id,
label: i.userName
});
}
} else if (i.id == 1 && roleId == 1) {
arr.push({
key: i.id,
label: i.userName,
disabled: true
});
} else {
arr.push({
key: i.id,
label: i.userName
});
}
});
this.allUser = arr;
this.value = newArr;
this.addloading = false;
})
.catch(error => {
console.log(error);
});
},}