前言

   vue中 element框架,其中表格组件,我既要行内数据格式化,又要插入html标签

   一贯思维,二者不可兼得也

一、element 表格 数据格式化

  

  demo

<el-table-column :prop="item.key"  v-for="item in levelName" :label="item.name" :formatter='handleSign'>
</el-table-column>

  再写 handleSign () 方法

//处理签到
handleSign(row,cellValue){
let signInId = ''
if(this.deviceSignList){
this.deviceSignList.map((item,index)=>{
if(item.signInId == row.signInId){
signInId = "签到"
}else{
signInId = "未签到"
}
})
}
return signInId
},

  

  目的:根据不能的值,相对应处理。一般状态会用的比较多,后台返回来的1,2,3,4 用户是不明白的

  运行结果

  

二、element 表格内容自定义模板

  

  demo

<el-table-column
label="姓名"
width="180">
<template slot-scope="scope">
<span v-html="scope.row.vdmSubjectVo.content"></span>
<el-popover trigger="hover" placement="top">
<p >姓名: {{ scope.row.name }}</p>
<p>住址: {{ scope.row.address }}</p>
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.name }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>

  

  目的,表格内要显示html标签,就要用到template 语法,要是返回的数据中有html标签(比如 字符串中拼接了 <span ></span>)就要用到 v-html

  运行结果

  

 三、二者结合

   你以为可以这样写

   

<el-table-column
label="姓名"
:formatter='handleSign'

width="180">
<template slot-scope="scope">
<span v-html="scope.row.vdmSubjectVo.content"></span>
<el-popover trigger="hover" placement="top">
<p >姓名: {{ scope.row.name }}</p>
<p>住址: {{ scope.row.address }}</p>
<div slot="reference" class="name-wrapper">
<el-tag size="medium">{{ scope.row.name }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>

  但是你不可以,因为scope.row.vdmSubjectVo.content 读取的是表格源数据,而不是你格式化后的数据

  解决方法

  你只能先把表格数据格式化后,在用 template + v-html 展示出来

  demo

  

<el-table-column align="center" header-align="center" prop="vdmSubjectVo.content" label="内容">
<template slot-scope="scope">
<span v-html="scope.row.vdmSubjectVo.content">
</span>
</template>
</el-table-column>
————————————华丽分割线—————————— 
formatterContent() 在你请求后端数据的成功回调中调用,数组循环调用哦,因为每一行都要格式化呀
 数据格式化(格式源数据)

formatterContent(cellValue){
      let content = JSON.parse(cellValue.vdmSubjectVo.content)
let option = ''
if(content){
content.map((item,index) =>{
if(item.rightAnswer){
option = '<span style="color:red;display:inline-block">'+option + item.index + " : "+ item.content+'</span><br/>'
}else{
option = option + item.index + " : "+ item.content +"<br/>"
}
})
}
let options ="内容:"+cellValue.vdmSubjectVo.subjectName +"<br/>"+option
return options
},

  

  目的:实现了数据格式化以及插入了html标签

  运行效果是这样的:

  

 Fannie式总结

  这个算是工作上实际遇到的问题,问题很小。也许短路一下,就没转过这个弯弯

  

vue+element 表格formatter数据格式化并且插入html标签的更多相关文章

  1. vue+Element 表格中的树形数据

    template部分   只在树形的结构中显示编辑与删除按钮 这里我只是简单的做了一个 v-if 判断在操作列中 ,判断是否存在级别这个字段 <div> <el-table :dat ...

  2. vue formatter element表格处理数据

    formatter 指定一个vue methods 方法 作用:对从数据库中取出的数据进行处理后展示. <el-table-column prop="partner1" // ...

  3. vue,element列表大数据卡顿问题,vue列表渲染慢,element表格渲染慢,表格渲染慢(卡),表格全选卡

    https://github.com/livelyPeng/pl-table 一个表格组件(完美解决万级数据渲染卡顿问题),流畅渲染万级数据并不会影响到el-table的原有功能 分析: 前端UI框架 ...

  4. vue element 导出 分页数据的excel表格

    1.安装相关依赖 npm install --save xlsx file-saver 2.导入相关插件 在组建头部导入相关插件 const FileSaver = require("fil ...

  5. vue+element 表格筛选

      筛选是element 组件 自己有的东西,按照文档撸 是没有问题 这里存在一个情况是,如果 筛选 的数据没有 那么整个表格为空白,产品要加提示 例如:暂无筛选的数据 解决方案:通过 ref 获取整 ...

  6. vue,element列表大数据卡顿问题,vue列表渲染慢

    https://github.com/livelyPeng... 一个表格组件(完美解决万级数据渲染卡顿问题),流畅渲染万级数据并不会影响到el-table的原有功能 分析: 前端UI框架使用的是El ...

  7. vue+element 表格导出Excel文件

    https://www.cnblogs.com/bobodeboke/p/8867481.html  非常感谢 这个大佬 才让我搞到了Blob.js 和 Export2Excel.js 如果最后运行时 ...

  8. vue+element 表格按需合并

    这个功能难度感觉一般般吧,记录一下,以后碰到了直接来复制,懒得再写了 效果如下: 前6列是合并,后面的有几行,动态显示几行 重点是在数据处理上面做文章,合并列大家都会,数据处理呢?这样来处理, 我们拿 ...

  9. vue中表格el-table-column数据翻译字段

    <el-table-column prop="isstate" label="状态"></el-table-column> 以上是显示后 ...

随机推荐

  1. 智表(ZCELL)插件产品选型说明书,市场主流插件对比,帮您选型

    智表(ZCELL)插件产品选型说明书,市场主流插件对比,帮您选型. 说明书下载:地址 一.    我们为什么需要智表插件产品 客户早已养成EXCEL中的操作习惯,BS架构下,普通的网页交互,与客户习惯 ...

  2. 简单了解Django应用app及分布式路由

    前言 应用在Django的项目中是一个独立的业务模块,可以包含自己的路由,视图,模板,模型. 一 创建应用程序 创建步骤 用manage.py中的子命令startapp创建应用文件夹 在setting ...

  3. vue页面跳转

    一.在template中的常见写法: <router-link to="/recommend"> <button class="button" ...

  4. Git创建工作目录与常用指令

    1.创建工作目录与常用指令 工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文. 日常使用只要记住下图6个命令: 2.提交管理 ...

  5. CentOS7.5 部署Ceph luminous

    环境 两台CentOS7.5,每台各两块硬盘部署OSD public network = 10.0.0.0/24 cluster network = 172.16.0.0/24 导入ceph的rpm ...

  6. [LeetCode] 448. 找到所有数组中消失的数字 ☆

    描述 给定一个范围在  1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您 ...

  7. 【zookeeper】linux中编写脚本批量启动zookeeper

    实现功能:一键启动.关闭主从端3个节点上的zookeeper,附加查看启动状态 mkdir bin --新建文件夹 cd bin 跳转到bin文件夹里 touch zookeeperstart.sh ...

  8. SQL SERVER-Extendevent检测TempDB增长

    --创建Session收集数tempDB增长数据 CREATE EVENT SESSION [Database_Growth_Watchdog] ON SERVER ADD EVENT sqlserv ...

  9. Android笔记(六十七) 自定义控件

    实际编程中,系统提供的控件往往无法满足我们的需求,一来是样子丑陋,二来是一些复杂的组合需要多次使用的话,每次都写一堆控件的组合会很耗费时间,所以我们将这些组件的组合自定义为一个新的控件,以后使用的时候 ...

  10. ClassLoader类加载器 & Java类加载机制 & 破坏双亲委托机制

    ClassLoader类加载器 Java 中的类加载器大致可以分成两类: 一类是系统提供的: 引导类加载器(Bootstrap classloader):它用来加载 Java 的核心库(如rt.jar ...