w2ui layout加载自定义html

简介:

1.views.py


# Init script view    

@app.route('/_init_scriptviews')

def init_scriptviews():

   sqlscript = """select script_conf->>'script_name' script_name

   from script_obj

   where script_conf->>'script_type' = 'unix'"""

   rows = g.db.query(sqlscript).dictresult()

   srows = [dict(caption=unicode(row['script_name'],"UTF8")) for row in rows]

   return jsonify(sview = srows)


@app.route('/_scriptviews')

def scriptview():

   return render_template('scriptViewData.html')  

# Init list view


2.scriptViewData.html(访问数据库数据)


<!-- JQUERY -->

<script src="{{url_for('static',filename='js/jquery-2.02.min.js')}}"></script>

<!-- Flask AJAX -->

<script type=text/javascript>

   $SCRIPT_ROOT={{request.script_root|tojson|safe}};

</script>


<ul id='scriptlist' class="inline">

</ul>

<script type="text/javascript">

   var list = document.getElementById("scriptlist");

   $.getJSON($SCRIPT_ROOT+'/_init_scriptviews',function(data){

       $.each(data.sview, function (key, val) {

           list.innerHTML += "<li>" + val.caption + "</li>";

       });

   });

</script>


3.layout.html(manager.html扩展模板)


<!doctype html>

<html>

   <head>

       <title>W2ui layout</title>

       <meta name="viewport" content="width=device-width, initial-scale=1.0" charset="UTF-8">

       <!-- JQUERY -->

       <script src="{{url_for('static',filename='js/jquery-2.02.min.js')}}"></script>

       <!-- Bootstrap -->

       <link rel=stylesheet type=text/css href="{{url_for('static',filename='css/bootstrap.min.css')}}" media="screen">

       <link rel=stylesheet type=text/css href="{{url_for('static',filename='css/bootstrap-responsive.min.css')}}">

       <script src="{{url_for('static',filename='js/bootstrap.min.js')}}"></script>

       <!-- w2ui -->

       <link rel=stylesheet type=text/css href="{{url_for('static',filename='css/w2ui-1.3.min.css')}}">

       <script src="{{url_for('static',filename='js/w2ui-1.3.min.js')}}"></script>

       <!-- sidebarcustom -->

       <link rel=stylesheet type=text/css href="{{url_for('static',filename='css/sidebar-custom-img.css')}}">

       <!-- Flask AJAX -->

       <script type=text/javascript>

           $SCRIPT_ROOT={{request.script_root|tojson|safe}};

       </script>

   </head>

   <body>

       <div class="container" style="margin-top:1px;">

           <div class="navbar" style="margin-bottom:1px">

               <div class="navbar-inner">

                   <ul class="nav">

                     <li ><a href="{{url_for('manager')}}">管理控制台</a></li>

                     <li ><a href="#">服务视图</a></li>

                     <li ><a href="#">报表服务</a></li>

                     <li ><a href="#">自动化任务</a></li>

                   </ul>

                   <ul class="nav pull-right">

                     <li>

                     {% if not session.logged_in %}

                       <a href="{{url_for('login')}}">登录</a>

                     {%else%}

                       <a href="{{url_for('logout')}}">注销</a>

                     {%endif%}

                   </ul>

               </div>

           </div>

           {%block body%}{%endblock%}

       </div>

   </body>

</html>


4.manager.html 扩展layout.html加载scriptViewData.html


{%extends "layout.html"%}

{%block body%}

{%if session.logged_in%}

<div id="toolbar" class="btn-group">

</div>

<div id="layout" style="height:560px"></div>

<script type="text/javascript">

   $(function () {

           // Toolbar Button define: treeview, scriptsview, listview

           $('#toolbar').w2toolbar({

               name: 'toolbar',

               items: [

                   { type:'button', id:'left', caption:'树形视图', hint:'显示/隐藏树形视图'},

                   { type:'button', id:'preview',caption:'脚本视图', hint:'显示/隐藏脚本视图'},

                   { type:'button', id:'bottom',caption:'列表视图', hint:'显示/隐藏列表视图'}

               ],

               // Click Event define:

               onClick: function (event) {

                   w2ui['layout'].toggle(event.target, window.instant);

               }

           });


           // Layout define: left, main, preview, bottom

           var pstyle = 'border: 1px solid #dfdfdf;padding:1px;';

           $('#layout').w2layout({

               name: 'layout',

               panels: [

                   { type: 'left', size: 200, resizable: true, style: pstyle},

                   { type: 'main', style: pstyle},

                   { type: 'preview', size: '60%', resizable: true, hidden: true, style: pstyle,content: '图形视图'},

                   { type: 'bottom', size: 180, resizable: true, hidden: true, style: pstyle, content: '列表视图'}

               ]

           });                

   });


   // Function define: init layout left with sidebar

   function initTreeView(){

       // init tree view sidebar,draw data from db

           $.getJSON($SCRIPT_ROOT+'/_init_treeviews',function(data){

               // debug return data

               // alert(data.mview)

               // define sidebar tree view

               $().w2sidebar({

                   name: 'treeview',

                   // init master node

                   nodes: [

                       { id: 'master', text: 'Master', img: 'icon-master', expanded: false, group: false,

                         // insert node into node 'master'

                         nodes: data.mview

                       }

                   ]

               });

               // Insert sidebar tree view into the left layout

               w2ui['layout'].content('left', w2ui['treeview'])                

           });

   }

   // Call function initTreeView

   initTreeView()

   // Fill scriptview content with /templates/scriptdata.html()

   $.ajax({

     url: $SCRIPT_ROOT + '/_scriptviews',

     success: function(data) {

       w2ui['layout'].content('main',data);

     }

   });        

</script>

{%endif%}

{%endblock%}



本文转自 pgmia 51CTO博客,原文链接:http://blog.51cto.com/heyiyi/1349644


相关文章
|
4月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
本文介绍了Twaver HTML5中数据的批量加载方法,通过使用`box.startBatch()`可以在大量数据加载时提高性能。文章通过示例代码展示了如何在React组件中使用批量加载功能,以减少界面重绘次数并提升效率。
64 2
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
|
16天前
「Mac畅玩鸿蒙与硬件46」UI互动应用篇23 - 自定义天气预报组件
本篇将带你实现一个自定义天气预报组件。用户可以通过选择不同城市来获取相应的天气信息,页面会显示当前城市的天气图标、温度及天气描述。这一功能适合用于动态展示天气信息的小型应用。
116 38
|
2月前
|
UED
「Mac畅玩鸿蒙与硬件31」UI互动应用篇8 - 自定义评分星级组件
本篇将带你实现一个自定义评分星级组件,用户可以通过点击星星进行评分,并实时显示评分结果。为了让界面更具吸引力,我们还将添加一只小猫图片作为评分的背景装饰。
78 6
|
2月前
|
前端开发 开发者
「Mac畅玩鸿蒙与硬件23」鸿蒙UI组件篇13 - 自定义组件的创建与使用
自定义组件可以帮助开发者实现复用性强、逻辑清晰的界面模块。通过自定义组件,鸿蒙应用能够提高代码的可维护性,并简化复杂布局的构建。本篇将介绍如何创建自定义组件,如何向组件传递数据,以及如何在不同页面间复用这些组件。
55 5
|
2月前
利用html2canvas插件自定义生成名片信息并保存图片
这是一个利用html2canvas插件自定义生成名片信息并保存图片,自定义上传头像,自定义输入个人信息内容,自定义图片名称,并将生成的图片保存到本地
50 1
利用html2canvas插件自定义生成名片信息并保存图片
|
3月前
|
API UED 容器
深入探索 Element UI:自定义滚动条与弹出层管理的技巧
在这篇博客中,我们将深入探讨 Element UI 中的自定义滚动条及弹出层管理技巧。文章详细介绍了 el-scrollbar 组件的使用和参数设置,以及 PopupManager 如何有效管理弹出层的 z-index。我们还将探讨如何实现灵活的全屏组件,利用 vue-popper 创建自定义弹出层,最后介绍 ClickOutside 指令的用法。这些高级技巧将帮助你提升 Element UI 应用程序的用户体验与交互灵活性。
336 1
深入探索 Element UI:自定义滚动条与弹出层管理的技巧
|
3月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
163 2
|
4月前
|
前端开发
Twaver-HTML5基础学习(28)工具条(添加自定义按钮_自定义事件)
这篇文章介绍了如何在Twaver-HTML5中创建工具条,添加自定义按钮,并绑定自定义事件,包括放大、缩小、占满屏幕和重置画布大小的功能。
61 11
|
4月前
|
缓存 前端开发 JavaScript
html最大限度提高加载速度
要提高HTML页面的加载速度,可以采用多种策略:优化HTML结构,精简标签和合并文件;使用异步加载资源,如添加`async`或`defer`属性;压缩文件,利用HTMLMinifier减小文件大小;优化图片,采用合适格式和尺寸;利用CDN托管静态资源;设置HTTP缓存头以利用浏览器缓存;减少HTTP请求,合并文件;启用Gzip压缩;优化服务器响应时间;使用优雅降级和渐进增强确保兼容性。综合应用这些方法能显著提升加载速度和用户体验。
|
4月前
|
数据安全/隐私保护
自定义密码访问单页HTML源码
自定义密码访问单页HTML源码,源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面
67 1