界面框架初步提交

This commit is contained in:
chiguangxu
2018-02-02 17:58:32 +08:00
parent f45edaddb5
commit 70ede8852f
3858 changed files with 214716 additions and 346632 deletions

View File

@@ -25,78 +25,140 @@
</script>
</head>
<body>
<ul class="nav nav-tabs">
<li><a href="${ctx}/sys/menu/">菜单列表</a></li>
<li class="active"><a href="${ctx}/sys/menu/form?id=${menu.id}&parent.id=${menu.parent.id}">菜单<shiro:hasPermission name="sys:menu:edit">${not empty menu.id?'修改':'添加'}</shiro:hasPermission><shiro:lacksPermission name="sys:menu:edit">查看</shiro:lacksPermission></a></li>
</ul><br/>
<form:form id="inputForm" modelAttribute="menu" action="${ctx}/sys/menu/saveOrUpdate" method="post" class="form-horizontal">
<form:hidden path="id"/>
<sys:message content="${message}"/>
<div class="control-group">
<label class="control-label">上级菜单:</label>
<div class="controls">
<sys:treeselect id="menu" name="parent.id" value="${menu.parent.id}" labelName="parent.name" labelValue="${menu.parent.name}"
title="菜单" url="/sys/menu/treeData" extId="${menu.id}" cssClass="required"/>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="history.go(-1)">&nbsp;返回&nbsp;</button>
</div>
<h3 class="page-title">
菜单管理
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i>菜单<shiro:hasPermission name="sys:menu:edit">${not empty menu.id?'修改':'添加'}</shiro:hasPermission><shiro:lacksPermission name="sys:menu:edit">查看</shiro:lacksPermission></div>
<div class="tools">
<a href="javascript:;" class="collapse"> </a>
<a href="#portlet-config" data-toggle="modal" class="config"> </a>
<a href="javascript:;" class="reload"> </a>
<a href="javascript:;" class="remove"> </a>
</div>
</div>
<div class="portlet-body form">
<div class="form-body">
<!-- BEGIN FORM-->
<form:form id="inputForm" modelAttribute="menu" action="${ctx}/sys/menu/saveOrUpdate" method="post" class="form-horizontal">
<form:hidden path="id"/>
<sys:message content="${message}"/>
<div class="form-group">
<label class="col-md-3 control-label">上级菜单:</label>
<div class="col-md-4">
<sys:treeselect id="menu" name="parent.id" value="${menu.parent.id}" labelName="parent.name" labelValue="${menu.parent.name}"
title="菜单" url="/sys/menu/treeData" extId="${menu.id}" cssClass="required form-control"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font> 名称:</label>
<div class="col-md-4">
<form:input path="name" htmlEscape="false" maxlength="50" class="required form-control"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">链接:</label>
<div class="col-md-4">
<form:input path="href" htmlEscape="false" maxlength="2000" class="form-control"/>
<span class="help-inline">点击菜单跳转的页面</span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">目标:</label>
<div class="col-md-4">
<form:input path="target" htmlEscape="false" maxlength="10" class="form-control"/>
<span class="help-inline">链接地址打开的目标窗口默认mainFrame</span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">是否顶部导航菜单:</label>
<div class="col-md-4">
<form:radiobutton path="isTop" value="1" />是
<form:radiobutton path="isTop" value="0" checked="true"/>否
<span class="help-inline">该菜单或操作是否顶部导航菜单</span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">图标:</label>
<div class="col-md-4">
<sys:iconselect id="icon" name="icon" value="${menu.icon}"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">排序:</label>
<div class="col-md-4">
<form:input path="sort" htmlEscape="false" maxlength="50" class="required digits form-control"/>
<span class="help-inline">排列顺序,升序。</span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">可见:</label>
<div class="col-md-4">
<form:radiobuttons path="isShow" items="${fns:getDictList('SYS_SHOW_HIDE')}" itemLabel="itemValue" itemValue="itemCode" htmlEscape="false" class="required"/>
<span class="help-inline">该菜单或操作是否显示到系统菜单中</span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">权限标识:</label>
<div class="col-md-4">
<form:input path="permission" htmlEscape="false" maxlength="100" class="form-control"/>
<span class="help-inline">控制器中定义的权限标识,如:@RequiresPermissions("权限标识")</span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">备注:</label>
<div class="col-md-4">
<form:textarea path="remarks" htmlEscape="false" rows="3" maxlength="200" class="form-control"/>
</div>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
<shiro:hasPermission name="sys:menu:edit"><button type="submit" class="btn btn-circle blue">&nbsp;&nbsp;保存&nbsp;&nbsp;</button></shiro:hasPermission>
<button type="button" class="btn btn-circle grey-salsa btn-outline" onclick="history.go(-1)">Cancel</button>
</div>
</div>
</div>
</form:form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label">名称:</label>
<div class="controls">
<form:input path="name" htmlEscape="false" maxlength="50" class="required input-xlarge"/>
<span class="help-inline"><font color="red">*</font> </span>
</div>
</div>
<div class="control-group">
<label class="control-label">链接:</label>
<div class="controls">
<form:input path="href" htmlEscape="false" maxlength="2000" class="input-xxlarge"/>
<span class="help-inline">点击菜单跳转的页面</span>
</div>
</div>
<div class="control-group">
<label class="control-label">目标:</label>
<div class="controls">
<form:input path="target" htmlEscape="false" maxlength="10" class="input-small"/>
<span class="help-inline">链接地址打开的目标窗口默认mainFrame</span>
</div>
</div>
<div class="control-group">
<label class="control-label">图标:</label>
<div class="controls">
<sys:iconselect id="icon" name="icon" value="${menu.icon}"/>
</div>
</div>
<div class="control-group">
<label class="control-label">排序:</label>
<div class="controls">
<form:input path="sort" htmlEscape="false" maxlength="50" class="required digits input-small"/>
<span class="help-inline">排列顺序,升序。</span>
</div>
</div>
<div class="control-group">
<label class="control-label">可见:</label>
<div class="controls">
<form:radiobuttons path="isShow" items="${fns:getDictList('SYS_SHOW_HIDE')}" itemLabel="itemValue" itemValue="itemCode" htmlEscape="false" class="required"/>
<span class="help-inline">该菜单或操作是否显示到系统菜单中</span>
</div>
</div>
<div class="control-group">
<label class="control-label">权限标识:</label>
<div class="controls">
<form:input path="permission" htmlEscape="false" maxlength="100" class="input-xxlarge"/>
<span class="help-inline">控制器中定义的权限标识,如:@RequiresPermissions("权限标识")</span>
</div>
</div>
<div class="control-group">
<label class="control-label">备注:</label>
<div class="controls">
<form:textarea path="remarks" htmlEscape="false" rows="3" maxlength="200" class="input-xxlarge"/>
</div>
</div>
<div class="form-actions">
<shiro:hasPermission name="sys:menu:edit"><input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>&nbsp;</shiro:hasPermission>
<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
</div>
</form:form>
</div>
</div>
</body>
</html>

View File

@@ -4,8 +4,9 @@
<head>
<title>菜单管理</title>
<link href="${ctxStatic}/treeTable/themes/vsStyle/treeTable.min.css" rel="stylesheet" type="text/css" />
<script src="${ctxStatic}/treeTable/jquery.treeTable.min.js" type="text/javascript"></script>
<link href="${ctxStatic}/global/plugins/treeTable/themes/vsStyle/treeTable.min.css" rel="stylesheet" type="text/css" />
<script src="${ctxStatic}/global/plugins/treeTable/jquery.treeTable.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#treeTable").treeTable({expandLevel : 3}).show();
@@ -18,39 +19,85 @@
</script>
</head>
<body>
<ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/sys/menu/">菜单列表</a></li>
<shiro:hasPermission name="sys:menu:edit"><li><a href="${ctx}/sys/menu/form">菜单添加</a></li></shiro:hasPermission>
</ul>
<sys:message content="${message}"/>
<form id="listForm" method="post">
<table id="treeTable" class="table table-striped table-bordered table-condensed hide">
<thead><tr><th>名称</th><th>链接</th><th style="text-align:center;">排序</th><th>可见</th><th>权限标识</th><shiro:hasPermission name="sys:menu:edit"><th>操作</th></shiro:hasPermission></tr></thead>
<tbody><c:forEach items="${list}" var="menu">
<tr id="${menu.id}" pId="${menu.parent.id ne 1?menu.parent.id:0}">
<td nowrap><i class="icon-${not empty menu.icon?menu.icon:' hide'}"></i><a href="${ctx}/sys/menu/form?id=${menu.id}">${menu.name}</a></td>
<td title="${menu.href}">${fns:abbr(menu.href,30)}</td>
<td style="text-align:center;">
<shiro:hasPermission name="sys:menu:edit">
<input type="hidden" name="ids" value="${menu.id}"/>
<input name="sorts" type="text" value="${menu.sort}" style="width:50px;margin:0;padding:0;text-align:center;">
</shiro:hasPermission><shiro:lacksPermission name="sys:menu:edit">
${menu.sort}
</shiro:lacksPermission>
</td>
<td>${menu.isShow eq '1'?'显示':'隐藏'}</td>
<td title="${menu.permission}">${fns:abbr(menu.permission,30)}</td>
<shiro:hasPermission name="sys:menu:edit"><td nowrap>
<a href="${ctx}/sys/menu/form?id=${menu.id}">修改</a>
<a href="${ctx}/sys/menu/delete?id=${menu.id}" onclick="return confirmx('要删除该菜单及所有子菜单项吗?', this.href)">删除</a>
<a href="${ctx}/sys/menu/form?parent.id=${menu.id}">添加下级菜单</a>
</td></shiro:hasPermission>
</tr>
</c:forEach></tbody>
</table>
<shiro:hasPermission name="sys:menu:edit"><div class="form-actions pagination-left">
<input id="btnSubmit" class="btn btn-primary" type="button" value="保存排序" onclick="updateSort();"/>
</div></shiro:hasPermission>
</form>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default">&nbsp;刷新&nbsp;</button>
<shiro:hasPermission name="sys:menu:edit"><button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/sys/menu/form'">&nbsp;新增菜单&nbsp;</button></shiro:hasPermission>
</div>
<h3 class="page-title">
菜单管理
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-cogs"></i>菜单列表
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title=""
title=""> </a> <a href="#portlet-config" data-toggle="modal"
class="config" data-original-title="" title=""> </a> <a
href="javascript:;" class="reload" data-original-title=""
title=""> </a> <a href="javascript:;" class="remove"
data-original-title="" title=""> </a>
</div>
</div>
<div class="portlet-body">
<div class="row" >
<div class="col-md-12">
<sys:message content="${message}"/>
<form id="listForm" method="post">
<table id="treeTable" class="table table-striped table-bordered table-condensed">
<thead><tr><th>名称</th><th>链接</th><th style="text-align:center;">排序</th><th>可见</th><th>权限标识</th><shiro:hasPermission name="sys:menu:edit"><th>操作</th></shiro:hasPermission></tr></thead>
<tbody><c:forEach items="${list}" var="menu">
<tr id="${menu.id}" pId="${menu.parent.id ne 1?menu.parent.id:0}">
<td nowrap><i class="icon-${not empty menu.icon?menu.icon:' hide'}"></i><a href="${ctx}/sys/menu/form?id=${menu.id}">${menu.name}</a></td>
<td title="${menu.href}">${fns:abbr(menu.href,30)}</td>
<td style="text-align:center;">
<shiro:hasPermission name="sys:menu:edit">
<input type="hidden" name="ids" value="${menu.id}"/>
<input name="sorts" type="text" value="${menu.sort}" style="width:50px;margin:0;padding:0;text-align:center;">
</shiro:hasPermission><shiro:lacksPermission name="sys:menu:edit">
${menu.sort}
</shiro:lacksPermission>
</td>
<td>${menu.isShow eq '1'?'显示':'隐藏'}</td>
<td title="${menu.permission}">${fns:abbr(menu.permission,30)}</td>
<shiro:hasPermission name="sys:menu:edit"><td nowrap>
<a href="${ctx}/sys/menu/form?id=${menu.id}">修改</a>
<a href="${ctx}/sys/menu/delete?id=${menu.id}" onclick="return confirmx('要删除该菜单及所有子菜单项吗?', this.href)">删除</a>
<a href="${ctx}/sys/menu/form?parent.id=${menu.id}">添加下级菜单</a>
</td></shiro:hasPermission>
</tr>
</c:forEach></tbody>
</table>
<shiro:hasPermission name="sys:menu:edit"><div class="form-actions pagination-left">
<input id="btnSubmit" class="btn btn-primary" type="button" value="保存排序" onclick="updateSort();"/>
</div></shiro:hasPermission>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -4,8 +4,10 @@
<head>
<title>角色管理</title>
<link href="${ctxStatic}/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.min.css" rel="stylesheet" type="text/css"/>
<script src="${ctxStatic}/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.min.js" type="text/javascript"></script>
<link href="${pageContext.request.contextPath}/static/global/plugins/jquery-ztree/3.5.12/css/zTreeStyle/zTreeStyle.min.css" rel="stylesheet" type="text/css"/>
<script src="${pageContext.request.contextPath}/static/global/plugins/jquery-ztree/3.5.12/js/jquery.ztree.all-3.5.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#name").focus();
@@ -65,66 +67,119 @@
</script>
</head>
<body>
<ul class="nav nav-tabs">
<li><a href="${ctx}/sys/role/">角色列表</a></li>
<li class="active"><a href="${ctx}/sys/role/form?id=${role.id}">角色<shiro:hasPermission name="sys:role:edit">${not empty role.id?'修改':'添加'}</shiro:hasPermission><shiro:lacksPermission name="sys:role:edit">查看</shiro:lacksPermission></a></li>
</ul><br/>
<form:form id="inputForm" modelAttribute="sysRole" action="${ctx}/sys/role/saveOrUpdate" method="post" class="form-horizontal">
<form:hidden path="id"/>
<sys:message content="${message}"/>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<div class="control-group">
<label class="control-label">角色名称:</label>
<div class="controls">
<input id="oldName" name="oldName" type="hidden" value="${role.name}">
<form:input path="name" htmlEscape="false" maxlength="50" class="required"/>
<span class="help-inline"><font color="red">*</font> </span>
</div>
</div>
<div class="control-group">
<label class="control-label">角色类型:</label>
<div class="controls"><%--
<form:input path="roleType" htmlEscape="false" maxlength="50" class="required"/>
<span class="help-inline" title="activiti有3种预定义的组类型security-role、assignment、user 如果使用Activiti Explorer需要security-role才能看到manage页签需要assignment才能claim任务">
工作流组用户组类型security-role管理员、assignment可进行任务分配、user普通用户</span> --%>
<form:select path="roleType" class="input-medium">
<form:option value="assignment">任务分配</form:option>
<form:option value="security-role">管理角色</form:option>
<form:option value="user">普通角色</form:option>
</form:select>
<span class="help-inline" title="activiti有3种预定义的组类型security-role、assignment、user 如果使用Activiti Explorer需要security-role才能看到manage页签需要assignment才能claim任务">
工作流组用户组类型任务分配assignment、管理角色security-role、普通角色user</span>
</div>
</div>
<button type="button" class="btn btn-default" onclick="history.go(-1)">&nbsp;返回&nbsp;</button>
</div>
<div class="control-group">
<label class="control-label">数据范围:</label>
<div class="controls">
<form:select path="dataScope" class="input-medium">
<form:options items="${fns:getDictList('SYS_DATA_SCOPE')}" itemLabel="itemValue" itemValue="itemCode" htmlEscape="false"/>
</form:select>
<span class="help-inline">特殊情况下,设置为“按明细设置”,可进行跨机构授权</span>
<h3 class="page-title">
菜单管理
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i>角色<shiro:hasPermission name="sys:role:edit">${not empty role.id?'修改':'添加'}</shiro:hasPermission><shiro:lacksPermission name="sys:role:edit">查看</shiro:lacksPermission></div>
<div class="tools">
<a href="javascript:;" class="collapse"> </a>
<a href="#portlet-config" data-toggle="modal" class="config"> </a>
<a href="javascript:;" class="reload"> </a>
<a href="javascript:;" class="remove"> </a>
</div>
</div>
<div class="portlet-body form">
<div class="form-body">
<!-- BEGIN FORM-->
<form:form id="inputForm" modelAttribute="sysRole" action="${ctx}/sys/role/saveOrUpdate" method="post" class="form-horizontal">
<form:hidden path="id"/>
<sys:message content="${message}"/>
<div class="form-group">
<label class="col-md-3 control-label">角色名称:</label>
<div class="col-md-4">
<input id="oldName" name="oldName" type="hidden" value="${role.name}">
<form:input path="name" htmlEscape="false" maxlength="50" class="required form-control"/>
<span class="help-inline"><font color="red">*</font> </span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">角色类型:</label>
<div class="col-md-4"><%--
<form:input path="roleType" htmlEscape="false" maxlength="50" class="required"/>
<span class="help-inline" title="activiti有3种预定义的组类型security-role、assignment、user 如果使用Activiti Explorer需要security-role才能看到manage页签需要assignment才能claim任务">
工作流组用户组类型security-role管理员、assignment可进行任务分配、user普通用户</span> --%>
<form:select path="roleType" class="form-control">
<form:option value="assignment">任务分配</form:option>
<form:option value="security-role">管理角色</form:option>
<form:option value="user">普通角色</form:option>
</form:select>
<span class="help-inline" title="activiti有3种预定义的组类型security-role、assignment、user 如果使用Activiti Explorer需要security-role才能看到manage页签需要assignment才能claim任务">
工作流组用户组类型任务分配assignment、管理角色security-role、普通角色user</span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">数据范围:</label>
<div class="col-md-4">
<form:select path="dataScope" class="form-control">
<form:options items="${fns:getDictList('SYS_DATA_SCOPE')}" itemLabel="itemValue" itemValue="itemCode" htmlEscape="false"/>
</form:select>
<span class="help-inline">特殊情况下,设置为“按明细设置”,可进行跨机构授权</span>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">角色授权:</label>
<div class="col-md-4">
<div id="menuTree" class="ztree" style="margin-top:3px;float:left;"></div>
<form:hidden path="menuIds"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">备注:</label>
<div class="col-md-4">
<form:textarea path="remark" htmlEscape="false" rows="3" maxlength="200" class="form-control"/>
</div>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
<shiro:hasPermission name="sys:role:edit"><button type="submit" class="btn btn-circle blue">&nbsp;&nbsp;保存&nbsp;&nbsp;</button></shiro:hasPermission>
<button type="button" class="btn btn-circle grey-salsa btn-outline" onclick="history.go(-1)">Cancel</button>
</div>
</div>
</div>
</form:form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label">角色授权:</label>
<div class="controls">
<div id="menuTree" class="ztree" style="margin-top:3px;float:left;"></div>
<form:hidden path="menuIds"/>
</div>
</div>
<div class="control-group">
<label class="control-label">备注:</label>
<div class="controls">
<form:textarea path="remark" htmlEscape="false" rows="3" maxlength="200" class="input-xlarge"/>
</div>
</div>
<div class="form-actions">
<shiro:hasPermission name="sys:role:edit"><input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>&nbsp;</shiro:hasPermission>
<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
</div>
</form:form>
</div>
</div>
</body>
</html>

View File

@@ -5,25 +5,80 @@
<title>角色管理</title>
</head>
<body>
<ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/sys/role/">角色列表</a></li>
<shiro:hasPermission name="sys:role:edit"><li><a href="${ctx}/sys/role/form">角色添加</a></li></shiro:hasPermission>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default">&nbsp;刷新&nbsp;</button>
<shiro:hasPermission name="sys:role:edit">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/sys/role/form'">&nbsp;新增角色&nbsp;</button>
</shiro:hasPermission>
</ul>
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<tr><th>角色名称</th><th>数据范围</th><th>描述</th><shiro:hasPermission name="sys:role:edit"><th>操作</th></shiro:hasPermission></tr>
<c:forEach items="${list}" var="role">
<tr>
<td><a href="form?id=${role.id}">${role.name}</a></td>
<td>${fns:getDictLabel('SYS_DATA_SCOPE',role.dataScope,'无')}</td>
<td title="${role.remark}">${fns:abbr(role.remark,30)}</td>
<shiro:hasPermission name="sys:role:edit"><td>
<a href="${ctx}/sys/role/assign?id=${role.id}">分配</a>
<a href="${ctx}/sys/role/form?id=${role.id}">修改</a>
<a href="${ctx}/sys/role/delete?id=${role.id}" onclick="return confirmx('确认要删除该角色吗?', this.href)">删除</a>
</td></shiro:hasPermission>
</tr>
</c:forEach>
</table>
</div>
<h3 class="page-title">
角色管理
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-cogs"></i>角色列表
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title=""
title=""> </a> <a href="#portlet-config" data-toggle="modal"
class="config" data-original-title="" title=""> </a> <a
href="javascript:;" class="reload" data-original-title=""
title=""> </a> <a href="javascript:;" class="remove"
data-original-title="" title=""> </a>
</div>
</div>
<div class="portlet-body">
<div class="row" >
<div class="col-md-12">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<tr><th>角色名称</th><th>数据范围</th><th>描述</th><shiro:hasPermission name="sys:role:edit"><th>操作</th></shiro:hasPermission></tr>
<c:forEach items="${list}" var="role">
<tr>
<td><a href="form?id=${role.id}">${role.name}</a></td>
<td>${fns:getDictLabel('SYS_DATA_SCOPE',role.dataScope,'无')}</td>
<td title="${role.remark}">${fns:abbr(role.remark,30)}</td>
<shiro:hasPermission name="sys:role:edit"><td>
<a href="${ctx}/sys/role/assign?id=${role.id}">分配</a>
<a href="${ctx}/sys/role/form?id=${role.id}">修改</a>
<a href="${ctx}/sys/role/delete?id=${role.id}" onclick="return confirmx('确认要删除该角色吗?', this.href)">删除</a>
</td></shiro:hasPermission>
</tr>
</c:forEach>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>