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 相关文章推荐
使用Java实现简单的server/client回显功能的方法介绍
May 03 Javascript
获得Javascript对象属性个数的示例代码
Nov 21 Javascript
Javascript学习笔记之相等符号与严格相等符号
Nov 23 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
轮播的简单实现方法
Jul 28 Javascript
新入门node.js必须要知道的概念(必看篇)
Aug 10 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
Dec 26 Javascript
JavaScript Uploadify文件上传实例
Feb 28 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
Jun 26 Javascript
vue-resource + json-server模拟数据的方法
Nov 02 Javascript
利用nvm管理多个版本的node.js与npm详解
Nov 02 Javascript
微信小程序加载机制及运行机制图解
Nov 27 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP静态新闻列表自动生成代码
2007/06/14 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
详解Python中time()方法的使用的教程
2015/05/22 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
带你了解python装饰器
2017/06/15 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
思想政治教育专业个人求职信范文
2013/12/20 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
庆七一活动总结
2014/08/27 职场文书
教师见习报告范文
2014/11/03 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript
各国货币符号大全
2022/02/17 杂记