lemon oa前端页面——由user-base-list谈项目组织
content
user-base-list.jsp
中指定
<%pageContext.setAttribute("currentHeader", "user");%> // currentHeader值在/header/user.jsp中会被覆盖,在/header.jsp中起作用,
<%pageContext.setAttribute("currentMenu", "user");%> // 在/menu/user.jsp页面中会影响哪些accordion-body被收缩
主要布局是
<body>
<%@include file="/header/user.jsp"%>
<div class="row-fluid">
<%@include file="/menu/user.jsp"%> // 2个栅格
<!-- start of main -->
<section id="m-main" class="span10"> // 10个栅格
</section>
<!-- end of main -->
</div>
</body>
--------------------------------------------------------------------------------------------
header
/header/user.jsp中
<%pageContext.setAttribute("currentHeader", "scope");%>
<%@include file="/header.jsp"%>
/header.jsp中,主要定义页面头部,功能是导航菜单(首页,个人事务,统计报表,系统管理(下拉菜单)),用户管理(用户密码修改、用户退出)和未读消息三块
<ul class="nav">
<li class="divider-vertical"></li>
<li class="${currentHeader == 'dashboard' ? 'active' : ''}"><a href="${scopePrefix}/dashboard/dashboard.do">首页</a></li>
<li class="${currentHeader == 'bpm-workspace' ? 'active' : ''}"><a href="${scopePrefix}/bpm/workspace-home.do">个人事务</a></li>
<li class="${currentHeader == 'report' ? 'active' : ''}"><a href="${scopePrefix}/report/chart-mostActiveProcess.do">统计报表</a></li>
<li class="dropdown ${currentHeader == 'scope' ? 'active' : ''}">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">系统管理 <b class="caret"></b></a>
<ul class="dropdown-menu">
</ul>
</li>
</ul>
可以看到currentHeader是如何起作用的。
未读消息就是一个跳转到<a href="${scopePrefix}/msg/msg-info-listReceived.do">的链接,
然后页面会定时刷新<i id="unreadMsg" class="badge"></i>,显示有几条未读消息(调用MsgResource类中的unreadCount()方法)
--------------------------------------------------------------------------------------------
menu
/menu/user.jsp是用户管理的菜单,
是在页面的左侧边,<aside id="m-sidebar" class="accordion span2" data-spy="affix" data-offset-top="100">,span2说明占2个栅格的宽度
主要是一个<div class="accordion-group">,然后下面有一个<footer id="m-footer" class="text-center">
在<div class="accordion-group">中有<div id="collapse-user" class="accordion-body collapse ${currentMenu == 'user' ? 'in' : ''}">
然后在/lemon/webapp/s/bootstrap/3.2.0/css/bootstrap.css中有定义
.collapse {
display: none;
}
.collapse.in {
display: block;
}
lemon oa前端页面——由user-base-list谈项目组织的更多相关文章
- Python Django CMDB项目实战之-3创建form表单,并在前端页面上展示
基于之前的项目代码 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页.index页.文章页面 Python Django CMDB项目实战之-2创建APP. ...
- Python Django CMDB项目实战之-2创建APP、建模(models.py)、数据库同步、高级URL、前端页面展示数据库中数据
基于之前的项目代码来编写 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页index页文章页面 现在我们修改一个文章列表是从数据库中获取数据, 下面我们就需 ...
- vue- 项目之前端页面搭建1
项目分析 首页 导航.登录注册栏.轮播图.地板导航登录注册 选项卡免费课 课程分类.筛选.课程列表免费课详情 课程封面视频.优惠活动倒计时.选项卡我的购物车 全选.商品价格统计购买结算 购买成功 我的 ...
- Django实战(一)-----用户登录与注册系统3(前端页面、登录视图)
基本框架搭建好了后,我们就要开始丰富页面内容了.最起码,得有一个用户登录的表单不是么?(注册的事情我们先放一边.) 一. 原生HTML页面 删除原来的login.html文件中的内容,写入下面的代码: ...
- Flask--第三个例子,写一个接口,该接口返回html前端页面,模板的使用
将接口数据返回至html前端页面有两种方法 方法一: 1 @app.route('/index',methods=['get']) 2 def open_index(): 3 page=open(' ...
- 四: 使用vue搭建网站前端页面
---恢复内容开始--- 在搭建路由项目的时候的基本步骤 一:创建项目 安装好vue 搭好环境 (步骤在上篇博客中) 进入项目目录 cd 目录路径/ 目录名 创建项目 ...
- Lemon OA第4篇:常用功能
OA,Office Automation的简写,中文意思办公自动化,不同的人有不同的见解,可以简单的理解为网络化办公,高效.协同是其显著的特点,如今正在朝着智能的方向发展 平时不擅长文字,写出来几句话 ...
- Lemon OA第3篇:核心功能
对Lemon OA系统的核心功能进行梳理,分别介绍说明如下文. Portal页面 还是从用户主页开始说起: OA核心的功能就是流程,启动流程,办理流程,查看历史,3个常用功能都罗列在用户主页上,方便用 ...
- Lemon OA第1篇:简单介绍
官方网站:http://www.mossle.com/ 声明:我不是Lemon OA作者,只是分享好的资源.以下内容均代表个人见解~ 从官网说起 知道Lemon OA,也是最近研究Activiti,看 ...
随机推荐
- Android主题更换换肤
知识总览android主题换肤通常借助LayoutInflater#setFactory实现换肤. 换肤步骤: 通过解析外部的apk压缩文件,创建自定义的Resource对象去访问apk压缩文件的资源 ...
- k8s集群部署之环境介绍与etcd数据库集群部署
角色 IP 组件 配置 master-1 192.168.10.11 kube-apiserver kube-controller-manager kube-scheduler etcd 2c 2g ...
- python之字符串str操作方法
str.upper() (全部大写) str.lower() (全部小写) str.startswith() (以什么开头) str.endswith() (以什么结尾) str.count() (统 ...
- JavaScript设计模式基础之面向对象的JavaScript(一)
动态语言类型与鸭子类型 此内容取自JavaScript设计模式与开发实践一书 编程语言按照数据类型大体可以分为2类,一类就是静态类型语言,另一类则是动态类型语言 静态类型语言也可以称之为编译语言,而动 ...
- 「 HDOJ P2227 」 Find the nondecreasing subsequences
# 题目大意 就是找不下降子序列的个数. # 解题思路 一开始想着先离散化,然后再做个 $dp$,发现用 $dp$ 的话时间复杂度是 $\text{O}(n^2)$ 的,稳稳超时. 这里说说 $dp$ ...
- LCIS 最长上升公共子序列问题
首先点名一个串叫 L1,另一个叫L2. 明显的是一个DP,那么我们来探讨下如何求得答案. 朴素的算法 首先我们定义状态$dp[ i ][ j ]$表示L1中前i个与L2中前j个的最长公共上升子序列. ...
- mysql多源复制安装
多源复制的意思是多主一从. 多源复制的前提是必须要开启GTID模式. master1 :192.168.1.110 master2 :192.168.1.111 slave :192.168.1.15 ...
- for、while循环
for循环 # for 循环后面可以对Iterable或者Iterator进行遍历 # "abc"和[1,2,3]为可迭代对象,range(4)为迭代器 for i in &quo ...
- hdu1394(Minimum Inversion Number)线段树
明知道是线段树,却写不出来,搞了半天,戳,没办法,最后还是得去看题解(有待于提高啊啊),想做道题还是难啊. 还是先贴题吧 HDU-1394 Minimum Inversion Number Time ...
- 南邮CTF--md5_碰撞
南邮CTF--难题笔记 题目:md5 collision (md5 碰撞) 解析: 经过阅读源码后,发现其代码是要求 a !=b 且 md5(a) == md5(b) 才会显示flag,利用PHP语言 ...