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 复合选择器应用的几个例子
Sep 11 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
Dec 09 Javascript
JavaScript判断浏览器类型的方法
Feb 10 Javascript
Javascript中typeof 用法小结
May 12 Javascript
jQuery网页右侧广告跟随滚动代码分享
Apr 20 Javascript
jQuery进行组件开发完整实例
Dec 15 Javascript
jQuery获取select选中的option的value值实现方法
Aug 29 Javascript
bootstrap组件之按钮式下拉菜单小结
Jan 19 Javascript
less简单入门(CSS 预处理语言)
Mar 08 Javascript
使用 Node.js 开发资讯爬虫流程
Jan 07 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
Sep 14 Javascript
Vue组件化开发之通用型弹出框的实现
Feb 28 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下安装配置fckeditor编辑器的方法
2011/03/02 PHP
PHP实现事件机制的方法
2015/07/10 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
简述AngularJS的控制器的使用
2015/06/16 Javascript
javascript中FOREACH数组方法使用示例
2016/03/01 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
解决Mac下使用python的坑
2019/08/13 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
Keras loss函数剖析
2020/07/06 Python
积极分子思想汇报
2014/01/04 职场文书
教师简历自我评价
2014/02/03 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
经营目标管理责任书
2014/07/25 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
小学班级管理心得体会
2016/01/07 职场文书