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 16 Javascript
比较搞笑的js陷阱题
Feb 07 Javascript
JS面向对象编程之对象使用分析
Aug 19 Javascript
jquery关于图形报表的运用实现代码
Jan 06 Javascript
jQuery中[attribute*=value]选择器用法实例
Dec 31 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
Aug 21 Javascript
JavaScript学习笔记整理_关于表达式和语句
Sep 19 Javascript
Javascript数组中push方法用法分析
Oct 31 Javascript
Vue.js组件间通信方式总结【推荐】
Nov 23 Javascript
微信小程序时间选择插件使用详解
Dec 28 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
Feb 21 Javascript
绘制微信小程序验证码功能的实例代码
Jan 05 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
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
ASP Json Parser修正版
2009/12/06 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
node.js中的fs.lchownSync方法使用说明
2014/12/16 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
js实现聊天对话框
2020/02/08 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
Python反射用法实例简析
2017/12/22 Python
Python星号*与**用法分析
2018/02/02 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
Python的pygame安装教程详解
2020/02/10 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
天那边观后感
2015/06/09 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
python析构函数用法及注意事项
2021/06/22 Python
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
2021/12/06 HTML / CSS
Python中time与datetime模块使用方法详解
2022/03/31 Python
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS