vue项目两种方式实现竖向表格的思路分析


Posted in Vue.js onApril 28, 2021

问题描述

在我们做项目中,常见的是横向表格,但是偶尔的需求,也会做竖向的表格。比如下图这样的竖向表格:

vue项目两种方式实现竖向表格的思路分析

我们看到这样的效果图,第一时间想到的是使用UI框架,改一改搞定。但是饿了么UI并没有直接提供这样的案例,部分同学会想着使用饿了么UI中的el-table的合并行、合并列的方式去实现,其实如果这样去做的话,反而做麻烦了。比如下面的合并行合并列:

vue项目两种方式实现竖向表格的思路分析

类似于这样的效果图,其实并不一定非得使用UI组件,有的时候使用原生的方式去做。反而会更方便。本文介绍两种方式去实现这样的简单的竖向表格。实际场景中可能会更加复杂,但是还是那句话,只要有思路,就不是大问题。做编程,关键是思路:

方式一(原生方式)不太推荐

思路就是:表格样式自己画,使用浮动从左往右依次排开

<template>
  <div id="app">
    <ul class="proWrap">
      <template v-for="(item, index) in data">
        <li class="proItem" :key="index">
          <span>{{ item.title }}</span>
          <span>{{ item.value == "" ? "待完善" : item.value }}</span>
        </li>
      </template>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      data: [
        {
          title: "重要级别",
          value: "666",
        },
        {
          title: "售前状态",
          value: "666",
        },
        {
          title: "配合状态",
          value: "",
        },
        {
          title: "售前状态",
          value: "",
        },
        {
          title: "技术协议状态",
          value: "",
        },
        {
          title: "中标厂家",
          value: "",
        },
        {
          title: "配合状态",
          value: "",
        },
        {
          title: "配合反馈时间",
          value: "",
        },
      ],
    };
  },
  methods: {},
};
</script>

<style lang="less" scoped>
#app {
  width: 100%;
  min-height: 100vh;
  box-sizing: border-box;
  padding: 50px;
  .proWrap {
    width: 100%;
    border: 1px solid #e9e9e9;
    border-right: 0;
    border-bottom: 0;
    // 每行放几组,这里就除于几
    .proItem {
      width: 100% / 3;
      float: left; // 向左浮动,
      span {
        display: inline-block;
        width: calc(50% - 2px);
        height: 50px;
        line-height: 50px;
        text-align: center;
        border-right: 1px solid #e9e9e9;
        border-bottom: 1px solid #e9e9e9;
      }
      span:nth-child(1) {
        background: #fafafa;
      }
    }
    // 清除浮动,不清除会导致最左侧的边框消失
    &::after {
      content: "";
      display: block;
      clear: both;
    }
  }
}
// 去掉li的默认样式
li {
  list-style-type: none;
}
</style>

方式二(使用栅格布局组件)推荐

使用饿了么自带的栅格系统会方便一些,我们可以如果通过控制el-col的:span属性来设置每行出现几组,多了就自动换行。至于表格的样式,我们自己设置即可。这种方式很简单。代码附上:

<template>
  <div id="app">
    <el-col :span="howWidth" v-for="(item, index) in tableArr" :key="index">
      <div class="box">
        <div class="content1">{{ item.key }}</div>
        <div class="content2">{{ item.value == "" ? "待完善" : item.value }}</div>
      </div>
    </el-col>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableArr: [
        {
          key: "姓名",
          value: "孙悟空",
        },
        {
          key: "年龄",
          value: 500,
        },
        {
          key: "身高",
          value: "山一样高",
        },
        {
          key: "性别",
          value: "男",
        },
        {
          key: "住址",
          value: "花果山水帘洞",
        },
        {
          key: "学历",
          value: "天庭弼马温学历",
        },
        {
          key: "能力",
          value: "强",
        },
        {
          key: "外号",
          value: "齐天大圣",
        },
      ],
      howWidth: 8,
    };
  },
  methods: {},
};
</script>

<style lang="less" scoped>
#app {
  width: 100%;
  min-height: 100vh;
  box-sizing: border-box;
  padding: 50px;
  .box {
    width: 100%;
    height: 40px;
    display: flex;
    border-left: 1px solid #e9e9e9;
    border-top: 1px solid #e9e9e9;
    .content1 {
      width: 40%;
      height: 40px;
      line-height: 40px;
      text-align: center;
      background-color: #fafafa;
      border-right: 1px solid #e9e9e9;
      border-bottom: 1px solid #e9e9e9;
      color: #333;
      font-size: 14px;
    }
    .content2 {
      width: 60%;
      height: 40px;
      line-height: 40px;
      text-align: center;
      background-color: #fff;
      border-right: 1px solid #e9e9e9;
      border-bottom: 1px solid #e9e9e9;
      color: #b0b0b2;
      font-size: 14px;
    }
  }
}
</style>

到此这篇关于vue项目两种方式实现竖向表格的思路分析 的文章就介绍到这了,更多相关vue 竖向表格内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
vue实现广告栏上下滚动效果
Nov 26 Vue.js
Vue——前端生成二维码的示例
Dec 19 Vue.js
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
vue-resource 拦截器interceptors使用详解
Jan 18 Vue.js
vscode自定义vue模板的实现
Jan 27 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
详解vue3中组件的非兼容变更
Mar 03 Vue.js
Vue全家桶入门基础教程
May 14 Vue.js
Vue如何实现组件间通信
May 15 Vue.js
vue首次渲染全过程
浅谈vue2的$refs在vue3组合式API中的替代方法
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
vue backtop组件的实现完整代码
vue中三级导航的菜单权限控制
Mar 31 #Vue.js
vue3中的组件间通信
vue前端工程的搭建
You might like
咖啡的植物学知识
2021/03/03 咖啡文化
php json_encode奇怪问题说明
2011/09/27 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
python批量爬取下载抖音视频
2019/06/17 Python
python压包的概念及实例详解
2021/02/17 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
大四自我鉴定
2014/02/08 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
白酒营销策划方案
2014/08/17 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
班主任培训研修日志
2015/11/13 职场文书
2019年作为一名实习生的述职报告
2019/09/29 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
在CSS中使用when/else的方法
2022/01/18 HTML / CSS
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏