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 相关文章推荐
深入了解Vue3模板编译原理
Nov 19 Vue.js
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
vue watch监控对象的简单方法示例
Jan 07 Vue.js
vue实现防抖的实例代码
Jan 11 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
vue实现简单数据双向绑定
Apr 28 Vue.js
解读Vue组件注册方式
May 15 Vue.js
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
Vue的过滤器你真了解吗
Feb 24 Vue.js
vue首次渲染全过程
浅谈vue2的$refs在vue3组合式API中的替代方法
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
vue backtop组件的实现完整代码
vue中三级导航的菜单权限控制
Mar 31 #Vue.js
vue3中的组件间通信
vue前端工程的搭建
You might like
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
php之可变变量的实例详解
2017/09/12 PHP
如何处理JSON中的特殊字符
2016/11/30 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
Python中函数参数匹配模型详解
2019/06/09 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
python调用win32接口进行截图的示例
2020/11/11 Python
animation和transition的区别
2020/10/12 HTML / CSS
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
请介绍一下Ant
2016/07/22 面试题
工程招投标邀请书
2014/01/26 职场文书
领导干部保密承诺书
2014/08/30 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
英语感谢信范文
2015/01/20 职场文书
报案材料怎么写
2015/05/25 职场文书
八年级语文教学反思
2016/03/03 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript