首页 > 其他分享 >el-select(控制多个多选框的禁用和可用)

el-select(控制多个多选框的禁用和可用)

时间:2023-01-12 13:22:19浏览次数:34  
标签:status el name 禁用 disabledName Cities select 选框

实现效果:

点击冻结解冻可以控制左侧多选的禁用和可用状态

原理::disabled='disabledName>0&& disabledName.indexof(city)!==-1'
判断被禁用数组中包含不包含当前项,如包含则禁用,不包含则可用。

<template>
  <div style="display: flex; width: 800px">
    <div style="flex: 4">
      <el-checkbox-group v-model="checkedCities" @change="handleChange">
        <el-checkbox
          v-for="city in cities"
          :label="city"
          :key="city"
          :disabled="
            disabledName.length > 0 && disabledName.indexOf(city) != -1
          "
          >{{ city }}</el-checkbox
        >
      </el-checkbox-group>
    </div>
    <div style="flex: 1">
      <div
        v-for="city in Cities"
        :key="city"
        style="margin-bottom: 20px; display: flex"
      >
        <div style="margin-right: 20px">{{ city.name }}</div>
        <div>
          <span
            v-if="city.status"
            style="font-size: 16px; color: red"
            @click="handle(city.name, true)"
            >冻结</span
          >
          <span v-else @click="handle(city.name, false)" style="color: blue"
            >解冻</span
          >
        </div>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      checkedCities: [], //左边选中的数据
      Cities: [], //右边的遍历数据
      cities: [], //左边的el-checkbox遍历数据
      disabledName: [], //被禁用的el-checkbox项
      cityOptions: [
        { name: '上海' },
        { name: '北京' },
        { name: '广州' },
        { name: '深圳' },
      ],
    }
  },
  created() {
    this.cities = []
    this.cityOptions.forEach((v) => {
      this.cities.push(v.name)
    })
  },
  methods: {
    handleChange(value) {
      console.log(value, 'value')
      this.Cities = this.checkedCities.map((i) => {
        return {
          name: i,
          status: true,
        }
      })
      console.log(this.Cities, 'this.Cities')
    },
    handle(name, status) {
      this.Cities.forEach((item) => {
        if (item.name == name) {
          item.status = !status
        }
      })
      console.log(this.Cities, 'this.Cities')
      if (status == true) {
        this.disabledName.push(name) //点击冻结(true)表示把当前项添加到禁用列表里
        this.disabledName = [...new Set(this.disabledName)]
      } else {
        let index = this.disabledName.indexOf(name) //点击解冻(false)表示把当前项从禁用列表中去除
        this.disabledName.splice(index, 1)
      }
      console.log(this.disabledName, 'this.disabledName')
    },
  },
}
</script>


标签:status,el,name,禁用,disabledName,Cities,select,选框
From: https://www.cnblogs.com/hxy--Tina/p/17046379.html

相关文章

  • PLSQL Developer 12安装
    一、准备软件版本下载地址PLSQLDeveloper12.0.7https://www.allroundautomations.com/files/plsqldev1207x64.msiPLSQLDeveloper汉化包12.0https://www.......
  • 【Qt】记录WA_DeleteOnClose释放栈空间导致的程序异常崩溃问题
    背景项目中,有个需求是,父窗口关闭窗口时,子窗口也要同时关闭。我们通过设置属性Qt::WA_DeleteOnClose可以实现。//设置属性QWidget*widget=newQWidget();widget->s......
  • docker 安装ELK
    1、安装sudodockerrun-d--nameminio--restart=always-p9000:9000-p9001:9001-e"MINIO_ROOT_USER=minioroot"-e"MINIO_ROOT_PASSWORD=minioroot"-v/opt/d......
  • Redis-多机数据库-Sentinel
    SentinelSentinel(哨岗、哨兵)是Redis的高可用性(highavailability)解决方案:由一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主......
  • python--操作excel表格,openpyxl模块
    简介openpyxl是一个非常强大的读写Excel2010xlsx/xlsm/xltx/xltm的Python库,简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有官方......
  • linux 关闭防火墙firewall,centos中关闭防火墙(firewall)及SELinux
    https://blog.csdn.net/weixin_30983965/article/details/116864967centos在不断的版本更新迭代过程中,在centos7中默认使用的是firewall作为防火墙。centos7关闭firewall......
  • kernel.panic
       sysctl-a kernel.panic=0kernel.panic_on_io_nmi=0kernel.panic_on_oops=1kernel.panic_on_stackoverflow=0kernel.panic_on_unrecovered_nmi=0ke......
  • awk --help
    最近在使用linux的awk命令,感叹其强大之处,在文本操作上的便利支持,让在对数百万流水明细操作如鱼得水,先贴出来awk的man,接下来再细致记录常用命令。awk--help>awk.txt======......
  • el-button在chrome低版本(<88)中显示异常的问题
    1、问题内容:el-button按钮显示灰色背景色和边框。【浏览器版本:chrome75】 2、问题原因:el-button使用的:not(xxx,xxx,xxx),以逗号分隔的选择器列表作为参数是实验性的,尚......
  • getopts解析shell脚本命令行参数
    getopts命令格式getoptsoptstringname[arg]optstring为命令行所有选项组成的字符串,每个字母代表一个选项。如果字母后有冒号:,表明该选项需要选择参数。比如说,执行get......