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中几种去掉字串左右空格的方法
Dec 25 Javascript
对JavaScript的eval()中使用函数的进一步讨论
Jul 26 Javascript
javascript一些不错的函数脚本代码
Sep 10 Javascript
JavaScript 获取事件对象的注意点
Jul 29 Javascript
javascript面向对象入门基础详细介绍
Sep 05 Javascript
Jquery Validate 正则表达式实用验证代码大全
Aug 23 Javascript
js实现图片旋转的三种方法
Apr 10 Javascript
基于构造函数的五种继承方法小结
Jul 27 Javascript
AngularJs+Bootstrap实现漂亮的计算器
Aug 10 Javascript
利用Dectorator分模块存储Vuex状态的实现
Feb 05 Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
详解50行代码,Node爬虫练手项目
Apr 22 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 MYSQL 数据备份类
2009/06/19 PHP
php实现网站留言板功能
2015/11/04 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
深入理解js中this的用法
2016/05/28 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
基本DOM节点操作
2017/01/17 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
python处理PHP数组文本文件实例
2014/09/18 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
荷兰电脑专场:Paradigit
2018/05/05 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
诚信贷款承诺书
2014/05/30 职场文书
建国大业观后感600字
2015/06/01 职场文书
Python实现拼音转换
2021/06/07 Python
python tqdm用法及实例详解
2021/06/16 Python