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 相关文章推荐
随窗体滑动的小插件sticky源码
Jun 21 Javascript
网页右侧悬浮滚动在线qq客服代码示例
Apr 28 Javascript
使用jquery.upload.js实现异步上传示例代码
Jul 29 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
Jul 27 Javascript
js实现精确到秒的倒计时效果
May 29 Javascript
完美解决JS文件页面加载时的阻塞问题
Dec 18 Javascript
巧用canvas
Jan 21 Javascript
js实现九宫格的随机颜色跳转
Feb 19 Javascript
纯js实现的积木(div层)拖动功能示例
Jul 19 Javascript
详解react-redux插件入门
Apr 19 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
May 03 Javascript
node中短信api实现验证码登录的示例代码
Jan 20 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网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
ES6 Generator基本使用方法示例
2020/06/06 Javascript
仅利用30行Python代码来展示X算法
2015/04/01 Python
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
Python3多线程操作简单示例
2018/05/22 Python
Win8下python3.5.1安装教程
2020/07/29 Python
python实现远程控制电脑
2019/05/23 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
上班睡觉检讨书
2014/01/09 职场文书
学校花圃的标语
2014/06/18 职场文书
学校党员对照检查材料
2014/08/28 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
退休欢送会致辞
2015/07/31 职场文书
Python基础知识学习之类的继承
2021/05/31 Python
Flask response响应的具体使用
2021/07/15 Python