Vue+Element自定义纵向表格表头教程


Posted in Javascript onOctober 26, 2020

如下所示:

Vue+Element自定义纵向表格表头教程

代码如下:

<table style="width: 100%" class="myTable">
 <tr v-for="(item,i) in statDatas" :key="i">
 <td class="column">{{ item.key }}</td>
 <td class="column">{{ item.value }}</td>
 </tr>
</table>

绑定的是 statDatas 属性是一个 json数组,由key value组成的json,如果需要多列就直接增加属性就可以。

优美样式:

.myTable {
 border-collapse: collapse;
 margin: 0 auto;
 text-align: center;
}
 
.myTable td,
.myTable th {
 border: 1px solid #cad9ea;
 color: #666;
 height: 60px;
}

补充知识:vue element table表头垂直表格(新增封装一个垂直表格的组件)

对话框中弹出查看信息,打开时表格,要求是表头在左侧

<table class="tableInfo" :model="editForm" id="printTest">
   <thead></thead>
   <tbody>
    <tr>
    <td>日报类型</td>
    <td>{{editForm.daily_type | filterType}}</td>
    </tr>
    <tr>
    <td>开始时间</td>
    <td>{{editForm.start_time | formatTimer('hours')}}</td>
    </tr>
    <tr>
    <td>结束时间</td>
    <td>{{editForm.end_time | formatTimer('hours') }}</td>
    </tr>
    <tr>
    <td>今日内容</td>
    <td>{{editForm.content}}</td>
    </tr>
    <tr>
    <td>计划</td>
    <td>{{editForm.plan}}</td>
    </tr>
   </tbody>
   </table>

效果

Vue+Element自定义纵向表格表头教程

------------------手动的华丽丽的的分割线------------------

最近封装了一个带插槽的垂直表头的table组件

效果如图

Vue+Element自定义纵向表格表头教程

封装的部分全部代码

<template>
 <div class="table_detail">
 <div class="list" v-for="item in detailData" :key="item.value">
  <div class="label">
  <el-badge
   :value="1"
   class="item"
   type="primary"
   v-if="item.label === '扣分项' || item.label === '加分项'" //这里是动态传表头进去
  />
  {{ item.label }}
  </div>
  <div class="text">
  <template v-if="$scopedSlots[item.prop]">
   <slot :name="item.prop" :files="item.text"></slot>
  </template>
  <template v-else>{{ item.text }}</template>
  </div>
 </div>
 </div>
</template>
<script>
export default {
 name: "table-detail",
 props: {
 detailData: {
  type: Array,
  default: () => []
 }
 },
 data() {
 return {
  visible: false
 }
 }
}
</script>
<style lang="scss">
.table_detail {
 width: auto;
 height: auto;
 margin: 0 10px 0 10px;
 border: 1px solid #ebeef5;
 border-bottom: none;
 .list {
 display: flex;
 justify-content: space-between;
 border-bottom: 1px solid #ebeef5;
 // font-size: 16px;
 .label {
  width: 95px;
  border-right: 1px solid #ebeef5;
  padding: 10px 10px 10px 0;
  text-align: right;
  font-weight: 400;
 }
 .text {
  flex: 1;
  text-align: left;
  padding: 10px 30px 10px 10px;
  font-weight: 500;
  word-wrap: break-word; //超出文本行自动换行
 word-break: break-all; //超出文本行自动换行
 overflow: hidden; //超出文本行自动换行
 }
 }
}
</style>

然后使用部分,先局内引入注册

然后使用

<table-detail :detailData="companyDetail">
 // 这部分使我们自己要用的预览文件的部分,不用的话可以不用写
   <template v-slot:file="{ files }">
    <app-upload
    :upload="new Upload(upload)"
    is-download
    is-preview
    is-view
    disabled
    />
    <ul>
    <li v-for="(file, i) in files" :key="i">
     {{ file.url }}
     <el-link
     type="primary"
     :href="file ? file.url : ''"
     target="_blank"
     >预览</el-link
     >
     <el-link type="primary" @click="download(file)">下载</el-link>
    </li>
    </ul>
   </template>
   </table-detail>

在data 里面定义 companyDetail: [],

然后在methods里面获取到数据之后赋值即可

this.companyDetail = [
   {
    label: `${this.labelTitle}项`,
    text: res.indexTitle
   },
   {
    label: `${this.labelTitle}值`,
    text: res.score
   },
   {
    label: `${this.labelTitle}时间`,
    text: this.$formatDate(res.reportTime, "YYYY.MM.DD", "YYYYMMDD")
   },
   {
    label: `${this.labelTitle}单位`,
    text: res.orgName
   },
   {
    label: `${this.labelTitle}原因`,
    text: res.description
   },
   {
    label: "申诉理由",
    text: res.reason
   },
   {
    label: "附件",
    prop: "file",
    text: files
   }
   ]

大致如上。

以上这篇Vue+Element自定义纵向表格表头教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
Feb 15 Javascript
jQuery 下拉列表 二级联动插件分享
Mar 29 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
Dec 16 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
AngularJS基础知识笔记之表格
May 10 Javascript
浅谈window.onbeforeunload() 事件调用ajax
Jun 29 Javascript
js微信分享API
Oct 11 Javascript
js实现四舍五入完全保留两位小数的方法
Aug 02 Javascript
深入理解jquery中extend的实现
Dec 22 Javascript
bootstrap表格分页实例讲解
Dec 30 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
Jun 14 Javascript
深入浅析AngularJs模版与v-bind
Jul 06 Javascript
vue3.0 的 Composition API 的使用示例
Oct 26 #Javascript
Vue中用JSON实现刷新界面不影响倒计时
Oct 26 #Javascript
jQuery实现简单评论区功能
Oct 26 #jQuery
vue.js封装switch开关组件的操作
Oct 26 #Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
Oct 26 #Javascript
vue render函数动态加载img的src路径操作
Oct 26 #Javascript
vue实现简单的登录弹出框
Oct 26 #Javascript
You might like
PHP中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
2018/05/15 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
安全检查管理制度
2014/02/02 职场文书
新春联欢会主持词
2014/03/24 职场文书
关于建议书的格式范文
2014/05/20 职场文书
机电一体化专业求职信
2014/07/22 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
区域经理岗位职责
2015/02/02 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
基于Go语言构建RESTful API服务
2021/07/25 Golang
muduo TcpServer模块源码分析
2022/04/26 Redis