zoukankan      html  css  js  c++  java
  • element ui 表格节点 expand

    element ui 表格控件每次只展开一行

    在项目中经常会有表格嵌套表格或者表格嵌套表单动态渲染的情况,这时候就可以使用表格的原生控件expand属性具体用法看官网文档https://element.eleme.cn/#/zh-CN/component/table,但是官网给的是点开一行,再点击下一行时上一次点开的不收起,依然打开,这样数据渲染的时候会有问题。expand - change的使用方法为当用户对某一行展开或者关闭的时候会触发该事件(展开行时,回调的第二个参数为 expandedRows;树形表格时第二参数为 expanded)同时可以调用接口 具体参考官网

    代码如下

     <el-table
            v-loading="loading"
            ref="refTable"
            :data="eqTableData"
            :max-height="hight"
            :row-key="getRowKeys"   //获取当前行id
            :expand-row-keys="expands"    //只展开一行放入当前行id
            @expand-change="exChange"
          >
            <el-table-column type="expand">
              <template slot-scope="scope">
                <el-table
                  ref="tableChild"
                  :data="dataList"
                  align="center"
                >
                  <el-table-column
                    align="center"
                    label="时间"
                    prop="recordDate"
                  />
                  <el-table-column
                    label="参数"
                    prop="param"
                    min-width="50%"/>
                  <el-table-column
                    label="异常原因"
                    prop="reason"
                    min-width="50%"/>
                  <el-table-column
                    align="center"
                    label="预计读数"
                    prop="predictData"
                    min-width="50%"/>
                  <el-table-column
                    align="center"
                    label="实际读数"
                    prop="actualData"
                    min-width="50%"
                  />
                  <el-table-column
                    align="center"
                    label="操作"
                  >
                    <template slot-scope="scope">
                      <el-button
                        size="mini"
                        @click="handleIgnore(scope.$index, scope.row)">忽略</el-button>
                      <el-button
                        size="mini"
                        type="danger"
                        @click="handleCorrect(scope.$index, scope.row)">修正</el-button>
                    </template>
                  </el-table-column>
                </el-table>
              </template>
            </el-table-column>
            <el-table-column
              label="设备ID"
              prop="eqId"/>
            <el-table-column
              label="所在大厦"
              prop="blName"/>
            <el-table-column
              label="所在楼层"
              prop="flName"/>

          </el-table>
    export default {
    data() {
        return {
      //设置row-key只展示一行
     expands: [],//只展开一行放入当前行id
          getRowKeys: (row) => {/获取当前行id
            // console.log(row)
            return row.eqId   //这里看这一行中需要根据哪个属性值是id
          },
    eqTableData: [],
          dataList: []
    }
    }
    methods:{
     
    exChange(row, rowList) {
          // console.log(row)
          this.loading = true
          
      var that = this
          if (rowList.length) { // 只展开一行//说明展开了
            that.expands = []
            if (row) {
              that.expands.push(row.eqId)// 只展开当前行id
            }
          //  this.tablaData(row.eqId)  这里可以调用接口数据渲染
          } else { // 说明收起了
            that.expands = []
          }
        }
    }
    }
  • 相关阅读:
    new Date(str)返回 Invalid date问题
    时间倒计时
    js返回上一页并刷新 代码整理
    赋值变量值在标签里
    jQuery获取select选择的文本与值
    判断div里面的子集是否含有特定的类
    卷boot仅剩余XX空间
    ubuntu16.04 anaconda3安装
    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
    毕业设计
  • 原文地址:https://www.cnblogs.com/yearshar/p/11607252.html
Copyright © 2011-2022 走看看