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 相关文章推荐
Javascript 面向对象 继承
May 13 Javascript
JavaScript的漂亮的代码片段
Jun 05 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
Jan 11 Javascript
js实现跨域的4种实用方法原理分析
Oct 29 Javascript
详解JavaScript对象的深浅复制
Mar 30 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
Jul 17 Javascript
JS库之Particles.js中文开发手册及参数详解
Sep 13 Javascript
JavaScript实现全选取消效果
Dec 14 Javascript
AnglarJs中的上拉加载实现代码
Feb 08 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
May 10 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
PHP基础学习小结
2011/04/17 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
js 获取Listbox选择的值的代码
2010/04/15 Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
python简单区块链模拟详解
2019/07/03 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
Django如何实现上传图片功能
2019/08/16 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
四风问题对照检查材料
2014/09/22 职场文书
党员民主评议自我评价
2014/10/20 职场文书
新生入学欢迎词
2015/01/26 职场文书
2015年网管个人工作总结
2015/05/22 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
python区块链持久化和命令行接口实现简版
2022/05/25 Python