【Vue2+Element ui通用后台】整体布局、数据展示、axios封装

news2024/11/15 14:09:37

文章目录

  • Home组件
  • 表格
  • Axios封装

Home组件

我们新建 Home 组件来展示右侧的内容

整体布局我们使用layout布局,通过基础的 24 分栏,迅速简便地创建布局。由于左侧占比较小,我们分为 8 和 16 即可

然后每个卡片样式的部分,我们使用 Card 卡片

我们先增加一个个人信息的展示:

<template>
  <div>
    <el-row>
      <el-col :span="8">
        <el-card class="box-card">
          <div class="user">
            <img src="../assets/profile.jpg">
            <div class="userInfo">
              <p class="name">Admin</p>
              <p class="access">超级管理员</p>
            </div>
          </div>
          <div class="login-info">
            <p>上次登录的时间:<span>2022-11-11</span></p>
            <p>上次登录的地点:<span>深圳</span></p>
          </div>
        </el-card>
      </el-col>
      <el-col :span="16"><div class="grid-content bg-purple-light"></div></el-col>
    </el-row>
  </div>
</template>

<script>
export default {
  name: "Home"
}
</script>

<style lang="less" scoped>
.user{
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid #ccc;
  display: flex;
  align-items: center;
  img{
    margin-right: 40px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
  }
  .userInfo{
    .name{
      font-size: 32px;
      margin-bottom: 10px;
    }
    .access{
      color: #999999;
    }
  }
}

.login-info{
  p{
    line-height: 28px;
    font-size: 14px;
    color: #999999;
    span{
      color: #666666;
      margin-left: 60px;
    }
  }
}
</style>

然后在App.vue 中给 p 标签去掉默认样式


<style lang="less">
html,body,h3,p{
  margin: 0;
  padding: 0;
}
</style>

在这里插入图片描述

表格

在个人信息的卡片下面增加一个卡片,增加表格,我们可以直接把Table表格中的示例代码拿过来

		<el-card style="margin-top: 20px;height: 420px">
          <el-table
              :data="tableData"
              style="width: 100%">
            <el-table-column
                prop="date"
                label="日期">
            </el-table-column>
            <el-table-column
                prop="name"
                label="姓名">
            </el-table-column>
            <el-table-column
                prop="address">
            </el-table-column>
          </el-table>
        </el-card>

<script>
export default {
  name: "Home",
  data() {
    return {
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1519 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1516 弄'
      }]
    }
  }
}
</script>

目前样式如下:
在这里插入图片描述
我们可以再进行优化,使用 v-for 循环展示表格内容:

<el-card style="margin-top: 20px;height: 420px">
          <el-table
              :data="tableData"
              style="width: 100%">
            <el-table-column v-for="(val,key) in tableLabel"
                :prop="key"
                :label="val">
            </el-table-column>
          </el-table>
        </el-card>

<script>
export default {
  name: "Home",
  data() {
    return {
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1519 弄'
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1516 弄'
      }],
      tableLabel:{
        date:'日期',
        name:'姓名',
        address:'地址'
      }
    }
  }
}
</script>

接下来在右侧增加一个今日订单数据的展示:

<template>
  <div>
    <el-row>
      ......
      <el-col :span="16">
        <div class="num">
          <el-card v-for="item in countData" :key="item.name" :body-style="{display:'flex',padding:0}">
            <i class="icon" :class="`el-icon-${item.icon}`" :style="{background:item.color}"></i>
            <div class="detail">
              <p class="price">¥{{item.value}}</p>
              <p class="desc">{{item.name}}</p>
            </div>
          </el-card>
        </div>
      </el-col>
    </el-row>
  </div>
</template>

<script>
export default {
  name: "Home",
  data() {
    return { 
      ......
      countData:[
        {
          name:'今日支付订单',
          value:1234,
          icon:'success',
          color:'#2ec7c9'
        },{
          name:'今日收藏订单',
          value:210,
          icon:'star-on',
          color:'#ffb980'
        },
        {
          name:'今日支付订单',
          value:1234,
          icon:'success',
          color:'#2ec7c9'
        },{
          name:'今日收藏订单',
          value:210,
          icon:'star-on',
          color:'#ffb980'
        },
        {
          name:'今日支付订单',
          value:1234,
          icon:'success',
          color:'#2ec7c9'
        },{
          name:'今日收藏订单',
          value:210,
          icon:'star-on',
          color:'#ffb980'
        },
      ]
    }
  }
}
</script>

<style lang="less" scoped>
......

.num{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;// 贴边
  .icon{
    width: 80px;
    height: 80px;
    font-size: 30px;
    line-height: 80px;
    color:#ffffff;
    text-align: center;
  }
  .detail{
    margin-left: 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;

    .price{
      height: 30px;
      line-height: 30px;
      font-size: 30px;
      margin-bottom: 10px;
    }
    .desc{
      font-size: 14px;
      text-align: center;
      color:#999999;
    }
  }

  .el-card{
    width: 32%;
    margin-bottom: 20px;
  }
}
</style>

在icon中找到想要的 icon 图片

在card找到设置 card 卡片样式的方法,是增加 body-style 来设置 body 的样式

在这里插入图片描述

Axios封装

Axios中文网

首先使用npm install axios进行安装
安装好后在 package.json 中 dependencies 中会增加相应的依赖
在这里插入图片描述
然后我们在 src 下新建 utils/request.js ,然后我们在里边创建axios实例,
然后创建拦截器

import axios from "axios";

const http = axios.create({
    baseURL: '/api',
    timeout: 1000,
    headers: {'X-Custom-Header': 'foobar'}
});


// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

export default http

然后在 src 下新建 api/index.js,可以参考 实例方法

import http from '../utils/request'

// 请求首页数据
export const getData = ()=>{
    // 返回一个promise对象
    return http.get('/home/getData')
}

然后我们在首页中使用,打开 Home.vue

<script>
import {getData} from "@/api";

export default {
  name: "Home",
  data() {
    ......
  },
  mounted() {
    getData().then((data)=>{
        console.log(data)
    })
  }
}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/137142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flask session机制

信息收集 主页是一个登陆界面其他按钮点击不了&#xff0c;源代码也没什么东西。 除了admin用户不能直接登陆&#xff0c;其他用户都可以。 打开以后是一个文件上传&#xff0c;然后根据提示只能上传zip文件&#xff0c;我们随便上传一个 我在zip文件里面写了一个/etc/passw…

prometheus监控报警部署Alertmanager

Prometheus将告警分为两个部分&#xff1a;Prometheus 和 Alertmanager。其中Prometheus配置告警触发规则&#xff0c;对指标进行监控和计算&#xff0c;将再将告警信息发送到Alertmanager中。Alertmanager对告警进行管理&#xff0c;比如合并抑制等操作。 wget https://github…

10.移动端笔记-响应式布局

1.响应式开发 原理&#xff1a;使用媒体查询针对不同宽度的设备进行布局和样式设置&#xff0c;从而适配不同的设备 2.响应式布局容器 响应式需要一个父级做为布局容器&#xff0c;配合子级元素实现变化效果 原理&#xff1a;在不同屏幕下&#xff0c;通过媒体查询改变这个…

HAProxy的安装

1、将HAProxy上传到opt目录下 2、 解压到/usr/local/src tar -xvf haproxy-1.5.18.tar.gz -C /usr/local/src 3、进入解压后的目录&#xff0c;查看内核版本&#xff0c;进行编译 cd /usr/local/src/haproxy-1.5.18 uname -r make TARGETlinux310 PREFIX/usr/local/haproxy …

Keil MDK 配置详解与调试技术

工程配置介绍① 通用配置选项&#xff1b;② 操作系统选项&#xff1b;③ 勾选后可以减小镜像尺寸&#xff0c;加快运行速度&#xff1b;④ 浮点配置&#xff1b;⑤ 加载简要配置&#xff0c;分散加载情况需要配置&#xff1b;编译器输出选项&#xff1b;可执行…

今年你拿到了几个月的年终奖?

近期听到最多的三个消息&#xff1a;阳了 、 裁员 、 年终奖。 今年无疑是非常艰难的一年&#xff0c;无论国内还是国外裁员貌似从年初到年末从未停止过&#xff0c;加上疫情放开之后&#xff0c;大部分人都加入了羊群的行列&#xff0c;让我们的生活雪上加霜。 腾讯今年也陆…

结构化分析方法

目录 1.概述 2.数据流图 3.结构图 4.一个例子 4.1.需求 4.2.数据流图 4.3.结构图 5.辅助工具 5.1.数据字典 5.2.加工说明 1.概述 结构化方法是世界上第一个软件开发方法学&#xff0c;用来指导从需求分析、到设计开发各个阶段该怎么样做&#xff0c;采用什么样的方法…

ubuntu22.04搭建qemu环境测试内核

ubuntu22.04搭建qemu环境测试内核安装qemu创建qemu目录编译内核编译文件系统启动qemu安装qemu sudo apt-get install qemu krokodilkrokodil-SY-ZL-H110N-D3V:~/workspace$ dpkg -l | grep qemu ii ipxe-qemu 1.21.1git-20220113.fbbdc392…

R语言GD包基于栅格图像实现地理探测器与连续参数的自动离散化

本文介绍基于R语言中的GD包&#xff0c;依据栅格影像数据&#xff0c;实现自变量最优离散化方法选取与执行&#xff0c;并进行地理探测器&#xff08;Geodetector&#xff09;操作的方法。 首先&#xff0c;在R语言中进行地理探测器操作&#xff0c;可通过geodetector包、GD包等…

Qt扫盲-QSS概述

QSS概述一、概述二、详细一、概述 QSS 其实是Qt样式表&#xff0c;Qt样式表是Qt界面的一种强大的机制&#xff0c;除了通过继承QStyle已经可以实现的功能外&#xff0c;它还允许您自定义窗口组件的外观。Qt样式表的概念、术语和语法很大程度上受到HTML层叠样式表(CSS)的启发。…

作为网络工程师,你知道什么是VLAN 跳跃攻击吗?

您听说过 VLAN 跳跃吗&#xff1f;这是黑客用来访问他们无权进入的网络的一种技术。在本文中&#xff0c;我们将探讨什么是 VLAN 跳跃、它的工作原理以及恶意行为者如何利用它。我们还将了解可用于执行 VLAN 跳跃的工具以及企业如何保护自己免受这些攻击。 一、什么是VLAN&…

商业智能BI工具评估指南

随着行业软件业务功能的不断完善&#xff0c;同行业软件日趋趋同&#xff0c;竞争更加白热化。同时&#xff0c;随着企业数字化转型的深入&#xff0c;企业自身对数据的使用需求越来越强烈。在用户的业务处理过程中&#xff0c;在业务软件内直接给用户提供数据分析结果具有更高…

认识python和python基础知识点

目前python版本分为python2和python3,主流都是使用Python3&#xff0c;因为python2到2020年开源社区就不在维护了&#xff0c;目前公司开发使用也基本都是python3.下面的演示基于python3 Python的3.0版本&#xff0c;常被称为Python 3000&#xff0c;或简称Py3k。相对于P…

基于Java springboot 疫情在线网课管理系统

&#x1f345; 作者主页 超级帅帅吴 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; 文章目录一、前言介绍1.1 背景及意义1.2 系统运行环境二、系统设计2.1系统架构设计2.2角色功能图2.3登录时序图设计三、…

文件系统的认识

文件系统磁盘磁盘的物理结构磁盘的存储结构磁盘的逻辑抽象结构对磁盘组进行管理创建和删除文件时&#xff0c;os做了什么&#xff1f;创建一个文件时&#xff0c;os做了什么&#xff1f;删除一个文件&#xff0c;os做了什么&#xff1f;制作软硬链接软连接和硬链接区别制作静、…

Vue 使用过程中的问题总结(npm Nodejs Vue Vue-cli)

目录 关系图示 vue和webpack 的关系 Node.js npm package.json 有什么作用&#xff1f; Vue2 和 Vue3的区别 Vue-cli的版本区别 Vue在VsCode中的常见配置 Vuter Live server Prettier vscode vue 自动格式化 Vue.js devtools 常见报错 Vue 报错error:0308010C:di…

数学建模学习笔记-算法(线性规划模型)-下(例题运用)

目录 1.线性规划的基本公式 例题&#xff1a; ​编辑​编辑 1.符号 2.基本假设 3.模型的分析与建立 那么可以得出目标函数是 约束条件是 一.固定风险水平&#xff0c;优化收益 二.固定盈利水平&#xff0c;极小化风险 三.设置一个投资偏好系数S 语法解析 代码 输出结…

CET6 历年真题原词复现 核心词汇 做题技巧 听力拿分技巧汇总(这篇文章是英语四六级考试最后的版本,谢谢大家一路陪伴)

话不多说直接进入 这次是最后一次 也是最用心的一次关于CET6的整理&#xff0c;CET4很简单&#xff0c;我认为没有必要去整理或者帮助各位同学&#xff0c;cet4只是cet6的前置任务罢了&#xff0c;但要是你说你考完cet4就收手了&#xff0c;不考了&#xff0c;不考6级了。我只…

(十一) Docker network

Docker network一、概述1.1、简介1.2、常用基本命令1.2、作用二、网络模式2.1、四种模式介绍2.2、容器实例内默认网络IP生产规则三、模式说明1、bridge2、host3、none4、container5、自定义网络1、概念2、没有自定义网络时3、自定义网络4、Link5、自定义bridge网络与默认bridge…

寒假每日一题W2D1——选数异或

题目描述 给定一个长度为 n 的数列 A1,A2,⋅⋅⋅,An 和一个非负整数 x&#xff0c;给定 m 次查询&#xff0c;每次询问能否从某个区间 [l,r] 中选择两个数使得他们的异或等于 x。 输入输出格式及数据范围 输入输出样例 思路 ①对于两个数的异或值为x&#xff0c;可以化简为&…