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 相关文章推荐
JS事件在IE与FF中的区别详细解析
Nov 20 Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 Javascript
jQuery实现的Div窗口震动效果实例
Aug 07 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
Jquery实现纵向横向菜单
Jan 24 Javascript
全国省市二级联动下拉菜单 js版
May 10 Javascript
JavaScript中的splice方法用法详解
Jul 20 Javascript
vue的一个分页组件的示例代码
Dec 25 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
Nov 12 Javascript
JS动态显示倒计时效果
Dec 12 Javascript
JQuery复选框全选效果如何实现
May 08 jQuery
vue 项目@change多个参数传值多个事件的操作
Jan 29 Vue.js
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
mysql5详细安装教程
2007/01/15 PHP
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
对javascript继承的理解
2016/10/11 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
python实现用于测试网站访问速率的方法
2015/05/26 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
HTML5 Canvas 起步(1) - 基本概念
2009/05/12 HTML / CSS
英国女性时尚品牌:Apricot
2018/12/04 全球购物
承办会议欢迎词
2014/01/17 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
个人委托书格式
2014/04/04 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
党务公开方案
2014/05/06 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
2017春节晚会开幕词
2016/03/03 职场文书