穿梭框的动态禁用

实现效果:当用户只有一个用户组时,不可进行移除操作,且超级管理员必须属于超级管理员用户组(超级管理员的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);
        });
    },}

实现效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值