【前端】Vue+Element UI案例:通用后台管理系统-Home组件:卡片、表格
创始人
2024-04-03 18:15:19
0

文章目录

    • 目标
    • 代码
      • 0.布局
      • 1.左上User卡片
      • 2.左下table卡片
        • 2.1数据:TableData.js
        • 2.2table
        • 2.3代码优化:循环
      • 3.右上数据卡片
        • 3.1数据:CountData
        • 3.2结构
        • 3.3布局
        • 3.4样式
    • 总代码
      • Home.vue
    • 参考

目标

在这里插入图片描述

  • 红框内部分
  • 都是卡片,鼠标悬停会有阴影
  • 左下是表格

代码

0.布局

分为左右两边,大约1:2。如果一共分为24份的话,就是8:16.

打开文档:我们可以选它,改成8:16.
在这里插入图片描述


1.左上User卡片

在这里插入图片描述
我们这里要的只是鼠标悬停产生阴影的效果,所以只用它的标签el-card即可。

我们把结构写上:

Admin

超级管理员

上次登录时间:2021-7-19

上次登陆地点:武汉

加上样式:

.user {// 垂直居中display: flex;align-items: center;// 外边距:分割线距离loginInfo的距离margin-bottom: 20px;// 内边距:分割线距离User的距离padding-bottom: 20px;border-bottom: 1px solid #ccc;img {width: 150px;height: 150px;border-radius: 50%;margin-right: 40px;}.userInfo {.name {font-size: 32px;margin-bottom: 10px;}.access {color: #999999;}}
}.loginInfo {p {line-height: 28px;font-size: 14px;color: #999999;span {color: #666666;margin-left: 60px;}}
}

效果:
在这里插入图片描述
其实这里花精力比较多的地方会是样式。但样式不是本篇的重点。

2.左下table卡片

2.1数据:TableData.js

把它单独放到一个js中再导出:

const TableData = [{name: 'oppo',todayBuy: 100,monthBuy: 300,totalBuy: 800},{name: 'vivo',todayBuy: 100,monthBuy: 300,totalBuy: 800},{name: '苹果',todayBuy: 100,monthBuy: 300,totalBuy: 800},{name: '小米',todayBuy: 100,monthBuy: 300,totalBuy: 800},{name: '三星',todayBuy: 100,monthBuy: 300,totalBuy: 800},{name: '魅族',todayBuy: 100,monthBuy: 300,totalBuy: 800}
]export default TableData

2.2table

我们的table也要有鼠标悬停有阴影的效果,所以它也要在el-card里。

找到文档中的table:data是对象数据,prop用于填入数据,label是列名。
在这里插入图片描述
代码:



效果:
在这里插入图片描述

2.3代码优化:循环

显然上述代码是重复代码,我们可以把它优化:把prop和label的值放在一个对象的键值对里:

const TableLabel={name:'课程',todayBuy:'今日购买',monthBuy:'本月购买',totalBuy:'总购买'
}export default TableLabel

在html里循环:



3.右上数据卡片

3.1数据:CountData

const CountData = [{name: "今日支付订单",value: 1234,icon: "success",color: "#2ec7c9",},{name: "今日收藏订单",value: 210,icon: "star-on",color: "#ffb980",},{name: "今日未支付订单",value: 1234,icon: "s-goods",color: "#5ab1ef",},{name: "本月支付订单",value: 1234,icon: "success",color: "#2ec7c9",},{name: "本月收藏订单",value: 210,icon: "star-on",color: "#ffb980",},{name: "本月未支付订单",value: 1234,icon: "s-goods",color: "#5ab1ef",},
]
export default CountData

3.2结构

显然我们可以用循环来写。

{{ priceFormate(item.value) }}

{{ item.name }}

效果:
在这里插入图片描述

3.3布局

一行三个,显然可以flex布局,每个的width是33.3%,这是排满的情况。
如果我们想要有点间隙,那就要width是32%。

看一下文档,想给卡片设置样式,可以添加属性body-style
在这里插入图片描述


css:

.num{display: flex;// 要换行flex-wrap: wrap;// 从头到尾均匀排列justify-content: space-between;margin-left:20px;.el-card{width: 32%;margin-bottom: 20px;}
}

3.4样式

css:

.num {display: flex;// 要换行flex-wrap: wrap;// 从头到尾均匀排列justify-content: space-between;margin-left: 20px;.el-card {width: 32%;margin-bottom: 20px;.icon {width: 80px;height: 80px;line-height: 80px;text-align: center;   font-size: 30px;                   color: #fff;}.details {// 竖着排且居中display: flex;flex-direction: column;justify-content: center;margin-left: 15px;.price {font-size: 30px;margin-bottom: 10px;line-height: 30px;height: 30px;}.desc {font-size: 14px;color: #999;text-align: center;}}}
}

效果:
在这里插入图片描述

总代码

Home.vue


参考

视频p20-p22

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...