原文地址:言必有中后台管理模版
  往日给客户开发一个不难的后台管理连串,本来准备套用AdminLTE的,但客户嫌弃太臃肿,而且又要求有多tab页面切换,于是从自身代码库中找到好久前就写过的治本后台,依照须要重写。那是按照jQuery,加上自己编写基础样式,从零搭建起来的框架,在那一个轻量级模版的根底上展花费付vue项目。现在顺便将以此模版搭建成我的前端demo的田间管理种类,而那篇文章就讲述下何以兑现简单的后台管理连串。

效用请看:manage-demo:http://jeffzhong.space/sites/manage-demo/

2018正版葡京赌侠诗 1

类型架构

  基于gulp自动化工具,使用less预编译,使用swig模版引擎编译html。

  基础样式base.css,字体库raleway,图标库fontello,js基础库jQuery。

  同时使用webpack为vue.js配置好开发条件,在src文件夹里面可以直接付出vue项目,里面有简短的vue样例。当然想用react的也得以改变为react库。

文件目录

  • dist 文件生成目录
  • src 源文件目录,里面为vue项目标文书
  • img 图片文件夹
  • lib 类库文件夹
  • less less文件
  • pages 页面文件夹
  • index.html 首页(母板页)
  • gulpfile.js
  • webpack.config.js
  • package.json

  而我辈今天要做的就是最外层的框架页,也就是母板页,为了使其进一步便利,同时适应更加多类型的档次,只使用了最基础的jquery来落到实处效益。

基本功样式库

  每个前端开发者做过大批量门类后,基本都会有协调的体制库吧。我的base-css是参照了有些bootstrap和pure的样式库,精简了无数组件,极度的轻量级。详细代码请看https://github.com/edwardzhong/base-csss,less预编译,gulp自动化,可以自由采取所须求的机件后再封装,经过那样定制打包后的样式体积就更为的小了。该样式库主要不外乎如下组件:

  • normalize:html5标签修复
  • grid:响应式网格
  • alert
  • button
  • breadcrumb
  • dialog
  • form
  • menu
  • pager
  • pagination
  • panel
  • tab
  • table

有了根基样式之后,大家搭建系统就便宜广大了。

落到实处母板页

  后台管理体系最要害的就是母板页(index.html),大家一步步来贯彻它。

布局

  基本就是左右布局:左边导航部分定位宽度,左边内容部分宽度自适应。完成那么些布局有很种种方式,那里不详叙,从完结动画和自适应方面考虑,我动用的是相对定位的艺术。左侧的导航栏隐藏突显动画是通过安装margin-left和transition属性落成的。

    /*左边导航栏*/
    .menu-wrap {
        position: absolute;
        transition: margin-left .3s ease-in-out;
        top: 50px;
        left: 0;
        width: 200px;
        height: calc(100% - 50px);
        overflow-y: scroll;
    }
    /*右边内容部分*/
    .main {
        height: calc(100% - 50px);
        overflow: hidden;
        margin-left: 200px;
        transition: margin-left .3s ease-in-out;
    }

导航栏

  导航栏就是行使ul列表布局,若是要兑现多重的子菜单就在相应li下再嵌套一个ul列表即可,然后添加样式,添加css3动画片等。布局示例请看如下的代码:

    <ul id="menuList" class="side-menu">
        <li class="children">
          <a data-type="tab" title="Html Component" href="javascript:;"><i class="icon-doc-text"></i>Html Component</a>
          <ul style="height: 0px;">
            <li><a data-type="tab" title="Alert" href="./pages/alert.html"> Alert</a> </li>
            <li><a data-type="tab" title="Page" href="./pages/page.html"> Page</a> </li>
            <li><a data-type="tab" title="Panel" href="./pages/panel.html"> Panel</a> </li>
          </ul>
        </li>
        <li>
          <a title="My Blog" href="/"><i class="icon-bookmark"></i>My Blog</a>
        </li>
    </ul>

实现多tab内容面

  很多后台管理模版都是透过沙盘引擎编译页面内容,那样生成的各种页面都会蕴藏导航栏和内容块,那样的裨益就是编辑比较不难。不过点击导航栏里的链接就回重新加载整个页面,在网速不好的情形,就会看到所有页面在跳动。

  另一种艺术是行使frameset或iframe,嵌套页面。那样内容页和母版页是分其余,分别加载的。那样会感受相比好,编写的代码也是隔离的。但也是隔离了成效域,所以要专门处理框架内外层通讯的题材,同时编制也会稍麻烦。

  我那里接纳的是iframe方案,因为运用多iframe完毕母板页多tab展现比较有利。这样左侧导航栏点击后就会创建新的iframe并填入链接,然后再将该iframe插入内容块。同时tab栏也应和插入一一对应的tab标签,那样点击tab标签就隐藏突显对应iframe块。请看如下的html代码结构:

    <div id="main" class="main">
      <nav class="nav">
        <!-- tab标签 -->
        <ul id="nav" class="menu-tabs">
            <li><a>...</a><li>
            <li><a>...</a><li>
        </ul>
      </nav>
      <!-- 页面iframe -->
      <div class="page-con">
        <div class="page"><iframe src="..."></iframe></div>
        <div class="page"><iframe src="..."></iframe></div>
      </div>
    </div>

  母板页的添加iframe和添加tab标签的代码

    //添加页面
    function appendPage(url){
      $('.page-con .page').removeClass('active');
      $('.page-con').append('<div class="page active"><iframe src="'+url+'" frameborder="0" width="100%" height="100%"></iframe></div>');
    }

    //添加tab
    function appendTab(txt){
      $nav.find('li').removeClass('active');
      $nav.append('<li data-txt="'+txt+'" class="active"><a href="javascript:;">'+txt+'<i class="close">×</i></a></li>');
      var w=setTabWidth();
      //移动到新增tab
      $navParent.animate({'scrollLeft':w+'px'},600); 
    }

  当然那当中有不少细节,比如添加,删除,选拔,滚动页面,tab栏的挑三拣四关闭,tab栏内容超过页面宽度的拍卖,当前tab如何滚动到当下突显区等,具体落成能够查阅github代码。

内容页

  达成母板页之后,接下去就是增进内容页了。首先就是概念导航链接,添加了自定义属性data-type=”tab”的链接就是要在右手内容iframe打开的页面,否则就是开辟外部链接了。每个在iframe打开的a标签要配备title属性,因为自己是透过title来不一致页面是还是不是早已打开过,tab中曾经存在就不再打开。

  内容页既能够是静态页面,也得以用vue,react构造页面,demo里面有部分页面使用了vue来达成逻辑作用。

    <ul id="menuList" class="side-menu">
        <!-- 要添加到iframe中的链接 -->
        <li><a data-type="tab" title="Alert" href="./pages/alert.html"> Alert</a> </li>
        <!-- 外部链接跳转 -->
        <li><a title="My Blog" href="/"><i class="icon-bookmark"></i>My Blog</a></li>
    </ul>

总结

  这一个模版还有不少地方须求通盘,可以在此基础上修修改改添加相应功效,也可以在此基础上应用vue,react完结内容页的效用。
具体细节请查看代码:https://github.com/edwardzhong/manage-demo

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图