vue elementUI 标签中使用方法

需求

最近vue项目中使用elementUI的table组件时,后端返回的表格数据不适合修改,编辑罗辑会直接拿去使用,但是后端返回的数据多为id,或者状态(0,1,2...)。对于用户来说不友好,希望在不改变数据的情况小将id或者状态显示正确的数据。

解决方法

通过在表格标签中使用方法,将对应的id与状态显示为用户需要的内容。

代码

html

javascript 复制代码
<el-table ref="table" :data="tableData" border stripe>
	<el-table-column type="selection" width="55" fixed="left"></el-table-column>
	<el-table-column v-for="item in tableTitleList" :key="item.key" :prop="item.key" :label="item.title" show-overflow-tooltip min-width="200">
		<template slot-scope="scope">
			<span v-if="scope.column.property === 'flag'">
                {{ setFlag(scope.row.flag) }}
            </span>
            <span v-else-if="scope.column.property === 'iscall'">
            	{{ setIsCall(scope.row.iscall) }}
            </span>
			<span v-else>{{ scope.row[scope.column.property] }}</span>
		</template>
	</el-table-column>
	<el-table-column label="操作" fixed="right" min-width="230">
		<template slot-scope="scope">
			<el-button class="icon-style" icon="el-icon-view" size="mini" @click="onDetails(scope.row)"></el-button>
			<el-button type="warning" class="icon-style" icon="el-icon-edit" size="mini" @click="onEdit(scope.row)"></el-button>
			<el-button type="danger" class="icon-style" icon="el-icon-delete" size="mini" @click="onDetails(scope.row)"></el-button>
		</template>
	</el-table-column>
</el-table>

js

javascript 复制代码
import api from './api'
export default {
  data() {
    return {
    	loading: false,
    	tableData: [],
    	tableTitleList: []
    }
  },
  created() {
    this.init()
  },
  methods: {
  	// 初始化
    init() {
		api.init().then(res => {
          if (res.code === 2000) {
          	this.tableData = res.data
            // 其他操作
            ...
            this.$nextTick(() => {
              this.loading = false
            })
          }
        }).catch(() => {
          this.loading = false
        })
      })
    },
    // 数据处理
    setFlag(str) {
      // 参数为字符串('1,2,3'),需要转为数组后,根据数据字段查询对应的值
      const flag = str.split(',')
      const flagList = flag.map(ever => {
        return this.getDictData('label', ever) // 查询数据字段的方法,返回值为对应的名称
      })
      return flagList.join(' | ') // 返回结果('张三 | 李四 | 张龙')
    },
    setIsCall(val) {
      // 参数为0 或 1
      if (val === 0 || val === '0') {
        return '未拨打'
      } else {
        return '已拨打'
      }
    },
  }
}
相关推荐
LaughingZhu11 小时前
Product Hunt 每日热榜 | 2026-07-23
前端·神经网络·react.js·搜索引擎·前端框架
自然 醒11 小时前
记录We码开发者工具的一个bug
前端·javascript·bug
葡萄城技术团队11 小时前
HTML元素单元格:用自定义 CellType 扩展 SpreadJS 的显示能力
前端·javascript·html
不好听61311 小时前
Fragment:React 的 `<></>` 和原生的 DocumentFragment,同名不同命
前端·react.js·dom
不好听61311 小时前
useState 完全解析:初始化、异步更新、以及为什么传函数能解决闭包问题
前端·react.js
神明不懂浪漫13 小时前
【第七章】Java中的常用类
java·开发语言·前端·经验分享·笔记
GuWenyue18 小时前
放弃云端API!一套React+WebGPU本地LLM方案,零数据上传、离线可用
前端·人工智能·前端框架
原则猫19 小时前
函数/变量提升
前端
独泪了无痕20 小时前
Vue3 Hooks使用实战解析
前端·vue.js
shawxlee1 天前
vue3在public下封装config.js自定义配置动态数据,可在打包后直接修改,方便后端部署及后续维护
前端·javascript·经验分享·vue·团队开发·js·项目优化