watch监听动态隐藏显示el-table列

本文介绍如何通过Vue的watch监听和v-if指令来实现在弹框多选状态下的el-table列动态显示和隐藏。当全部选中时,所有列显示;取消选择时,对应列将被隐藏。
摘要由CSDN通过智能技术生成

实现效果是根据弹框的多选控制table列的显示隐藏
在这里插入图片描述
默认全部选中,就是table全部显示,取消选择table列进行隐藏
下面是详细代码
el-table

 <el-table
      :data="tableData"
      border
      stripe
      :header-cell-style="tableHeaderColor"
      style="width: 100%; margin-top:2%;margin-left:0%"
      ref="tableDataRef"
    >
      <!-- :cell-style="getCellStyle" -->
      <el-table-column
        prop="handle"
        label="操作"
        width="300"
      >
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="danger"
            @click="putinorder(scope.row)"
          >加入采购申请</el-button>
          <el-button
            size="mini"
            type="danger"
            @click="outinorder(scope.row)"
          >出入库清单</el-button>
          <el-button
            size="mini"
            type="danger"
            style="margin-top:1%"
            @click="kplace(scope.row)"
          >库位</el-button>
          <el-button
            size="mini"
            type="danger"
            @click="cgcl(scope.row)"
            style="margin-top:1%"
          >采购策略</el-button>
        </template>
      </el-table-column>
      <!-- <el-table-column
        v-for="(item,index) in formThead"
        :key="index"
        :label="item.name"
        width="120px"
        :show-overflow-tooltip='true'
      >
        <template slot-scope="scope">
          {
   {
    scope.row[item.name] }}
        </template>
      </el-table-column> -->
      <el-table-column
        prop="num"
        label="产品编号"
        width="80"
        v-if="colData[0].istrue"
      >
      </el-table-column>
      <el-table-column
        prop="oe"
        label="产品OE号"
        v-if="colData[1].istrue"
        width="110"
      >
      </el-table-column>
      <el-table-column
        prop="name"
        :show-overflow-tooltip='true'
        label="产品名称"
        v-if="colData[2].istrue"
        width="160"
      >
      </el-table-column>
      <el-table-column
        prop="brand"
        label="产品品牌"
        width="80"
        v-if="colData[3].istrue"
      >
      </el-table-column>
      <el-table-column
        prop
隐藏el-table中的某行,你可以使用row-class-name属性和自定义方法来实现。在el-table的template中添加row-class-name属性,并将其绑定到一个自定义的方法上。在这个方法中,你可以根据行的数据来判断是否隐藏该行,如果需要隐藏,则返回一个自定义的class名称,否则返回空字符串。 示例代码如下: ``` <template> <el-table :data="tableData2" style="width: 100%" :row-class-name="tableRowClassName"> <el-table-column prop="date" label="日期" width="180"></el-table-column> <el-table-column prop="name" label="姓名" width="180"></el-table-column> <el-table-column prop="address" label="地址"></el-table-column> </el-table> </template> <script> export default { methods: { tableRowClassName: function (row, index) { if (row.date == '2016-05-01') { return 'hidden-row'; } return ''; } }, data: function () { return { tableData2: [ { date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-04', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-01', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }, { date: '2016-05-03', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' } ] } } } </script> <style> .el-table .hidden-row { display: none; } </style> ``` 在上面的示例代码中,我们定义了一个自定义class名称hidden-row,并在方法tableRowClassName中判断日期是否为'2016-05-01',如果是,则返回这个class名称,否则返回空字符串。在样式中,我们使用display: none来隐藏这个class名称对应的行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值