欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue+element-ui初始化表格时某一列根据后台返回内容显示不同的icon

程序员文章站 2024-02-16 19:30:16
...

    这次的业务需求是这样的:①若从后台返回的数据中装备的经纬度为null,则详情列只显示“装备详情”这几个字的跳转链接;②若装备的经纬度不为null,则详情列显示一个定位icon+“装备详情”这几个字的跳转链接,如图所示:vue+element-ui初始化表格时某一列根据后台返回内容显示不同的icon

    需求已经确定,此时查看element的table实例element table表格,看能否找到灵感。发现有一实例中将“标签”一列的不同内容显示为不同type类型的tag标签,效果如下图所示:

vue+element-ui初始化表格时某一列根据后台返回内容显示不同的icon

    其“标签”列的HTML代码为:

    <el-table-column prop="tag" label="标签" width="100">
      <template slot-scope="scope">
        <el-tag :type="scope.row.tag === '家' ? 'primary' : 'success'" disable-transitions>{{scope.row.tag}}
        </el-tag>
      </template>
    </el-table-column>

    由此,实现代码可借助于三目表达式,当返回数据的经纬度为null时:

<el-button icon="">装备详情</el-button>

    当返回数据的经纬度不为null时:

<el-button icon="el-icon-location">装备详情</el-button>

    具体“装备详情”列的实现代码为:

      <el-table-column label="装备详情" fixed="right" width="100">
        <template slot-scope="scope">
          <el-button type="text" size="small" :icon="scope.row.longitude === null ? '' : 'el-icon-location'" @click="checkDetail(scope.row.id)">
            装备详情
          </el-button>
        </template>
      </el-table-column>

    所实现的效果如下图所示:

vue+element-ui初始化表格时某一列根据后台返回内容显示不同的icon

    至此,便实现了业务需求。