前端框架AdminLTE

中文教程

如何用vue整合adminlte模板

1、adminlte 下载地址 : https://github.com/almasaeed2010/AdminLTE/releases(点击tar.gz这个比较全   下载zip也行 是个干净的模板)

2、下载好后,将adminlte中index.html里body部分复制到vue项目中的index.vue(项目主页)中的template模板中,此时页面是一团糟,(adminlte,依赖于bootstrap3(4版本有问题),而bootstrap依赖于jquery(1.1+)。所以这两个依赖一定要提前引入,具体版本,看上述链接)

3、将adminlte中dist下的js、css、img复制到vue中的assets中

在main.js中引入

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/js/bootstrap.min.js';
//AdminLTE
import './assets/css/adminlte/skins/_all-skins.min.css';
import './assets/css/adminlte/AdminLTE.min.css';
 import './assets/js/adminlte/adminlte.js';
 

再看一下,比第一次效果好了许多。

但是图标都没显示出来,因为adminlte用了font-awesome,然后npm 安装

npm install font-awesome --save

在main.js中引入

//font-awesome
import 'font-awesome/css/font-awesome.min.css'

将图片的引用路径对应该一下。。

然后npm run serve启动一下,ok页面出来了。。(注意bootstrap要3版本的,不能是4版本的)

我把下载下来的adminlte文件里的index.html里的内容小心翼翼的删了许多,目的是清出一个干净的模板,but!!!  我发现 这个文件里有一个starter.html  是专门的模板   浪费了半天!!!老铁们 看到这  直接用starter模板就行了  可以省点时间。。。

下边是我整理出来的一个模板:

<template>
<div class="main hold-transition skin-blue sidebar-mini">
<div class="wrapper">
<header class="main-header">
<a href="index2.html" class="logo">
<span style="background:red;" class="logo-mini"><b>A</b>LT</span>
<span class="logo-lg"><b>Admin</b>LTE</span>
</a>
<!-- 顶部导航 -->
<nav class="navbar navbar-static-top">
<!-- 侧边栏控制按钮 三横杠-->
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
<span class="sr-only">Toggle navigation</span>
</a>
</nav>
</header>
<!-- 侧边栏 -->
<aside class="main-sidebar">
<section class="sidebar">
<!-- 面板 -->
<div class="user-panel">
<div class="pull-left image">
<img src="../assets/img/adminlte/user2-160x160.jpg" class="img-circle" alt="User Image">
</div>
<div class="pull-left info">
<p>Alexander Pierce</p>
<a href="#"><i class="fa fa-circle text-success"></i> Online</a>
</div>
</div>
<!-- 搜索表单 -->
<form action="#" method="get" class="sidebar-form">
<div class="input-group">
<input type="text" name="q" class="form-control" placeholder="Search...">
<span class="input-group-btn">
<button type="button" name="search" id="search-btn" class="btn btn-flat">
<i class="fa fa-search"></i>
</button>
</span>
</div>
</form>
<!-- 侧边栏菜单 -->
<ul class="sidebar-menu" data-widget="tree">
<!-- 侧边栏菜单头部 -->
<li class="header">MAIN NAVIGATION</li>
<li class="active treeview">
<a href="#">
<i class="fa fa-dashboard"></i>
<span>Dashboard</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li class="active">
<a href="index.html"><i class="fa fa-circle-o"></i> Dashboard v1</a>
</li>
<li>
<a href="index2.html"><i class="fa fa-circle-o"></i> Dashboard v2</a>
</li>
</ul>
</li>
<li>
<a href="pages/calendar.html">
<i class="fa fa-calendar"></i> <span>Calendar</span>
<span class="pull-right-container">
<small class="label pull-right bg-red">3</small>
<small class="label pull-right bg-blue">17</small>
</span>
</a>
</li> <li class="treeview">
<a href="#">
<i class="fa fa-share"></i> <span>Multilevel</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="#"><i class="fa fa-circle-o"></i> Level One</a></li>
<li class="treeview">
<a href="#"><i class="fa fa-circle-o"></i> Level One
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="#"><i class="fa fa-circle-o"></i> Level Two</a></li>
<li class="treeview">
<a href="#"><i class="fa fa-circle-o"></i> Level Two
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="#"><i class="fa fa-circle-o"></i> Level Three</a></li>
<li><a href="#"><i class="fa fa-circle-o"></i> Level Three</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#"><i class="fa fa-circle-o"></i> Level One</a></li>
</ul>
</li>
<li><a href="https://adminlte.io/docs"><i class="fa fa-book"></i> <span>Documentation</span></a></li>
<li class="header">LABELS</li>
<li><a href="#"><i class="fa fa-circle-o text-red"></i> <span>Important</span></a></li>
</ul>
</section>
</aside> <div class="content-wrapper" style="background:pink;">
这是内容显示区
</div> <footer class="main-footer" style="background:green;">
底部导航
</footer>
</div>
</div>
</template> <script>
export default {
data(){
return{
text:"主页"
}
}
}
</script> <style lang="less" scoped> </style>

下面就是 细节了,用子路由让各个模块显示在内容区。。

ok

发现点击按钮时,侧边栏会突然出现突然隐藏,然后我自己定了个过度的样式,分别加在 侧边栏和内容框上,然后效果就正常了

另外。内容为空时,整个内容区会压缩没,可以通过定位将整个容器拉扯开。

侧边栏的每一项都可以点击,我使用了router子路由,的方式,让对应的子模板显示在粉色框内,下面是路由配置:

routes: [
{
path: "/",
name: "index",
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () =>
import(/* webpackChunkName: "about" */ "./pages/index.vue"),
children:[
{
path:'/',
name:'com1',
component:()=>
import('./components/com1.vue')
},
{
path:'com2',
name:'com2',
component:()=>
import('./components/com2.vue')
} ]
}
]

不过每一个模板最外面的一层的类名不要乱起,我将一个模板的最外面一层,起了个box类名,结果内容与footer之间老多一块空隙,将footer挤到了下面,初步判断是,adminlte给box类名定义了样式,所以换成了其它类名就没事了,比如box1.

vue整合adminLTE的更多相关文章

  1. django rest framework 与 Vue 整合遇到的坑

    前提是已经有了Django项目与前端Vue打包好的dist文件 好,开始整合!!! 当然还是先设置Django的setting.py 1设置模板路径 2 设置静态文件路径 TEMPLATES = [ ...

  2. Yii2整合AdminLTE后台主题

    首先你要确保你已经安装好了Yii2 advanced高级模板,并且跑的通. 安装AdminLTE其实没有网上说的那么简单,网上千篇一律的推荐Composer安装,虽然Composer很方便,但是在中国 ...

  3. vue 整合element-ui

    本文主要介绍如何在vue框架中结合elementUI. 本文主要参考: http://element-cn.eleme.io/#/zh-CN/component/quickstart   1.阅读本文 ...

  4. vue 整合雪碧图功能

    1.通过命令新建一个vue项目 环境要求: 安装有 Node.js. vue. vue-cli . 创建项目: vue init webpack tx_demo cd tx_demo 进入项目,下载依 ...

  5. vue整合mui

    步骤1:下载https://github.com/dcloudio/mui   步骤2:将下载来的包中的dist文件夹 放到vue项目的assets中 步骤3:修改webpack配置 找到build下 ...

  6. SpringBoot+vue整合websocket

    0.引言 这里我先说下,网上对于websocket的解释有一堆不懂自己查,我这就不做原理解释,只上代码. 1.SpringBoot引入websocket maven 依赖 <dependency ...

  7. Vue整合d3.v5.js制作--柱状图(rect)

    先上效果图: 图中柱状图变成纯蓝色是鼠标滑动过的颜色(颜色可改,本人配色能力十分的强,建议直接用默认设置即可 ( ᖛ ̫ ᖛ )ʃ)) 1.环境说明 Vue版本:"vue": &q ...

  8. Vue整合d3.v5.js制作--折线图(line)

    先上效果图(x轴固定为时间轴): 图中出现的悬浮框是鼠标悬停效果 1.环境说明: vue版本:"vue": "^2.5.2" d3版本:"d3&quo ...

  9. vue整合外部js

    vue引入外部jsimport { TrackLine } from "../../../../../static/js/trajectory.js";import { initM ...

随机推荐

  1. Jmeter之JDBC取样器(数据库增删改查)

    1.将数据库的jar包存入jmeter/lib目录下 2.配置jmeter 测试计划中“添加jar包” 数据库访问配置:线程组->添加->配置原件->JDBC Connection ...

  2. webmagic学习之路-1:采集安居客列表页测试

    ---恢复内容开始--- package com.action; import java.util.ArrayList; import java.util.List; import java.util ...

  3. Java基础第三天--内部类、常用API

    形参和返回值 抽象类名作为形参和返回值 方法的形参是抽象类名,其实需要的是该抽象类的子类对象 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象 接口名作为形参和返回值 方法的形象是接口名,其实需 ...

  4. O043、计算节点宕机了怎么办

    参考https://www.cnblogs.com/CloudMan6/p/5562131.html   Rebuild 可以恢复损坏的instance .那如果是宿主机坏了怎么办呢?比如硬件故障或者 ...

  5. Python——用turtle画一个月饼

    今天是中秋节,首先在这里祝大家中秋快乐!那么提到中秋,我们首先想到的当然是香甜的月饼,所以我今天就在这里画一个月饼送给大家. 那么 要用Python画图,我们必须掌握并运用Turtle库,这个可以自己 ...

  6. mybatis如何接收字符串转换为date类型插入数据库

    今天遇到一个问题,先描述一下: 后台获取数据,有一个字段是时间字段,后台传过来的是字符串类型的,如:2016/11/16 10:26:17, 将该字符串放在map对象中(持久层用的是mybatis或者 ...

  7. shiro权限控制配置

    shiro配置流程 web.xml中配置shiro的filter spring中配置shiro的过滤器工厂,指定对不同地址权限控制 , 传入安全管理器 配置安全管理器,传入realm,realm中定义 ...

  8. app欢迎页问题

    今天替换app中的图片,打包成apk后,欢迎页的图片怎么替换都还是旧的,尝试多次以后,确定以及肯定是替换成功了的,而且替换的也都对,只好清理了一下项目,重新build,最后再打包,结果成功了!真是坑! ...

  9. jQuery实现照片墙,附步骤详解

    现在一直使用vue写项目,发现之前的js都很生疏了,写个小demo练下手,看一下最终效果展示 功能点:点击添加图片随机添加一张图片,图片可以拖动,可以点击删除 技能点: 主要使用了jQuery的一些方 ...

  10. kill命令和killall命令

    kill命令用于终止指定的进程(terminate a process),是Unix/Linux下进程管理的常用命令.通常,我们在需要终止某个或某些进程时,先使用ps/pidof/pstree/top ...