el-descriptions合并列显示

有时候有这样的需求,需要将数据以列表形式展示,如图:

 

 

 这时候就要用

官方文档为:Descriptions 描述列表 | Element Plus (element-plus.org)

例码如下:

  <el-descriptions class="test">
    <el-descriptions-item v-for="item in descItem" :label="item.label + ':'"
                          :width="item.width" :key="item.value"
                          label-align="right" style="margin-right: 0;">
      <span :style="item.style">{{ item.value }}</span>
    </el-descriptions-item>
  </el-descriptions>

 item内可以放置文本,这里为了简便直接就用{{}}来取值了,放el-input也是可以的,多个框,双击内容取值就不会取到label了。

 

但有时候可能某个item的内容过长(用input能规避该问题,因为能隐藏溢出,自行拖动看到内容。但是这样不能一眼看完)

若是占据两三行,对整体格式影响不大,那么可以给el-descriptions添加类,然后在该组件下添加样式——需要去掉scoped,因为这个只认穿透,其余除非带!important基本不生效。

譬如

<style>
.test.el-descriptions .el-descriptions__body tbody{
   vertical-align: top; /* 对准方式 */
}
</style>

 

 

 

 

若是内容过多,那此时即使同一行内统一对齐顶部,看上去也会很违和。此时就要用到官方文档自带的两个属性

column:列表行内元素的数量,默认为3。也就是一行默认为3个item(为el-descriptions属性)

span:元素占据的列数,默认为1。也就是上面分配了3,那默认每个item占据一个格子(为el-descriptions-item属性)

 

 

 

 

若是当前元素span总和大于column,则会另起一行。

注:因此若是想要让某元素单独起一行,除非它是该行第一个元素更改自身span就行,不是的话还需要更改其前面元素的span

 

posted @ 2023-03-10 16:00  RicardoX3  阅读(6755)  评论(0编辑  收藏  举报