若依 2.0

This commit is contained in:
RuoYi
2018-07-02 09:14:43 +08:00
parent fccd5830a4
commit ffd68de51b
455 changed files with 102717 additions and 0 deletions

View File

@@ -0,0 +1,109 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-dept-add">
<input id="treeId" name="parentId" type="hidden" th:value="${dept.deptId}" />
<div class="form-group">
<label class="col-sm-3 control-label ">上级部门:</label>
<div class="col-sm-8">
<input class="form-control" type="text" onclick="selectDeptTree()" id="treeName" readonly="true" th:value="${dept.deptName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="deptName">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示排序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="orderNum">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">负责人:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="leader">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系电话:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="phone">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">邮箱:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="email">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门状态:</label>
<div class="col-sm-8" th:with="type=${@dictService.selectDictData('sys_normal_disable')}">
<div th:each="dict : ${type}" th:class="${dict['cssClass']}">
<input type="radio" th:id="${dict['dictCode']}" name="status" th:value="${dict['dictValue']}" th:checked="${dict['isDefault'] == 'Y' ? true : false}">
<label th:for="${dict['dictCode']}" th:text="${dict['dictLabel']}"></label>
</div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript">
var prefix = ctx + "system/dept"
$("#form-dept-add").validate({
rules:{
deptName:{
required:true,
remote: {
url: prefix + "/checkDeptNameUnique",
type: "post",
dataType: "json",
data: {
"deptName" : function() {
return $("input[name='deptName']").val();
}
},
dataFilter: function(data, type) {
if (data == "0") return true;
else return false;
}
}
},
orderNum:{
required:true,
digits:true
},
},
messages: {
"deptName": {
remote: "部门已经存在"
}
},
submitHandler:function(form){
$.operate.save(prefix + "/save", $('#form-dept-add').serialize());
}
});
/*部门管理-新增-选择父部门树*/
function selectDeptTree() {
var deptId = $("#treeId").val();
var url = prefix + "/selectDeptTree/" + deptId;
$.modal.open("选择部门", url, '380', '380');
}
</script>
</body>
</html>

View File

@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<style type="text/css">
.fixed-table-container{position:relative;clear:both;border:1px solid #ddd;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}
</style>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="toolbar" role="group">
<div class="form-group">
<a type="button" class="btn btn-outline btn-default" onclick="$.operate.add(100)" shiro:hasPermission="system:dept:add">
<i class="fa fa-plus"></i> 新增
</a>
</div>
</div>
<table id="bootstrap-table" data-mobile-responsive="true"></table>
</div>
<div th:include="include :: footer"></div>
<script th:inline="javascript">
var addFlag = [[${@permissionService.hasPermi('system:dept:add')}]];
var editFlag = [[${@permissionService.hasPermi('system:dept:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('system:dept:remove')}]];
var prefix = ctx + "system/dept"
window.onload = function() {
loading();
};
function loading() {
var options = {
id: "deptId",
parentId: "parentId",
url: prefix + "/list",
createUrl: prefix + "/add/{id}",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove/{id}",
modalName: "部门",
columns: [{
field: 'deptName',
title: '部门名称',
},
{
field: 'orderNum',
title: '排序',
align: "center"
},
{
field: 'status',
title: '状态',
align: "center",
formatter: function(item, index) {
if (item.status == '0') {
return '<span class="badge badge-primary">正常</span>';
} else if (item.status == '1') {
return '<span class="badge badge-danger">停用</span>';
}
}
},
{
field: 'createTimeStr',
title: '创建时间',
align: "center"
},
{
title: '操作',
align: 'center',
formatter: function(row, index) {
if (row.parentId != 0) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.deptId + '\')"><i class="fa fa-edit">编辑</i></a> ');
actions.push('<a class="btn btn-info btn-xs ' + addFlag + '" href="#" onclick="$.operate.add(\'' + row.deptId + '\')"><i class="fa fa-plus">新增</i></a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.deptId + '\')"><i class="fa fa-remove">删除</i></a>');
return actions.join('');
} else {
return "";
}
}
}]
};
$.treeTable.init(options);
}
function remove(id) {
$.modal.confirm("确定删除该条" + $.table._option.modalName + "信息吗?", function() {
$.ajax({
type : 'post',
url: prefix + "/remove/" + id,
success : function(result) {
if (result.code == web_status.SUCCESS) {
$.modal.alertSuccess(result.msg);
loading();
} else {
$.modal.alertError(result.msg);
}
}
});
});
}
</script>
</body>
</html>

View File

@@ -0,0 +1,112 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-dept-edit" th:object="${dept}">
<input name="deptId" type="hidden" th:field="*{deptId}" />
<input id="treeId" name="parentId" type="hidden" th:field="*{parentId}" />
<div class="form-group">
<label class="col-sm-3 control-label ">上级部门:</label>
<div class="col-sm-8">
<input class="form-control" type="text" id="treeName" onclick="selectDeptTree()" readonly="true" th:field="*{parentName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="deptName" th:field="*{deptName}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示排序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="orderNum" th:field="*{orderNum}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">负责人:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="leader" th:field="*{leader}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系电话:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="phone" th:field="*{phone}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">邮箱:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="email" th:field="*{email}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门状态:</label>
<div class="col-sm-8" th:with="type=${@dictService.selectDictData('sys_normal_disable')}">
<div th:each="dict : ${type}" th:class="${dict['cssClass']}">
<input type="radio" th:id="${dict['dictCode']}" name="status" th:value="${dict['dictValue']}" th:field="*{status}">
<label th:for="${dict['dictCode']}" th:text="${dict['dictLabel']}"></label>
</div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript">
var prefix = ctx + "system/dept"
$("#form-dept-edit").validate({
rules:{
deptName:{
required:true,
remote: {
url: prefix + "/checkDeptNameUnique",
type: "post",
dataType: "json",
data: {
"deptId": function() {
return $("input[name='deptId']").val();
},
"deptName": function() {
return $("input[name='deptName']").val();
}
},
dataFilter: function(data, type) {
if (data == "0") return true;
else return false;
}
}
},
orderNum:{
required:true,
digits:true
},
},
messages: {
"deptName": {
remote: "部门已经存在"
}
},
submitHandler:function(form){
$.operate.save(prefix + "/save", $('#form-dept-edit').serialize());
}
});
/*部门管理-修改-选择部门树*/
function selectDeptTree() {
var deptId = $("#treeId").val();
var url = prefix + "/selectDeptTree/" + deptId;
$.modal.open("选择部门", url, '380', '380');
}
</script>
</body>
</html>

View File

@@ -0,0 +1,183 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link th:href="@{/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css}" rel="stylesheet"/>
<style>
body{height:auto;font-family: "Microsoft YaHei";}
button{font-family: "SimSun","Helvetica Neue",Helvetica,Arial;}
</style>
<body class="hold-transition box box-main">
<input id="treeId" name="treeId" type="hidden"/>
<input id="treeName" name="treeName" type="hidden" th:value="${treeName}"/>
<div class="wrapper"><div class="treeShowHideButton" onclick="search();">
<label id="btnShow" title="显示搜索" style="display:none;"></label>
<label id="btnHide" title="隐藏搜索"></label>
</div>
<div class="treeSearchInput" id="search">
<label for="keyword">关键字:</label><input type="text" class="empty" id="keyword" maxlength="50">
<button class="btn" id="btn" onclick="searchNode()"> 搜索 </button>
</div>
<div class="treeExpandCollapse">
<a href="javascript:" id="btnExpand">展开</a> /
<a href="javascript:" id="btnCollapse">折叠</a>
</div>
<div id="tree" class="ztree treeselect"></div>
</div>
<div class="layui-layer-btn">
<a class="layui-layer-btn0" th:onclick="'javascript:loadObj()'"><i class="fa fa-check"></i> 确定</a>
<a class="layui-layer-btn1" onclick="$.modal.close()"><i class="fa fa-close"></i> 关闭</a>
</div>
<div th:include="include::footer"></div>
<script th:src="@{/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js}"></script>
<script th:inline="javascript">
// 树结构初始化加载
var setting = {view:{selectedMulti:false},data:{key:{title:"title"},simpleData:{enable:true}},
callback:{onClick:function(event, treeId, treeNode){
var treeId = treeNode.id;
var treeName = treeNode.name;
$("#treeId").val(treeId);
$("#treeName").val(treeName);
}}
}, tree, loadTree = function(){
$.get(ctx + "system/dept/treeData", function(data) {
var treeName = $("#treeName").val();
tree = $.fn.zTree.init($("#tree"), setting, data);
// 展开第一级节点
var nodes = tree.getNodesByParam("level", 0);
for (var i = 0; i < nodes.length; i++) {
tree.expandNode(nodes[i], true, false, false);
selectCheckNode(treeName,nodes[i]);
}
// 展开第二级节点
nodes = tree.getNodesByParam("level", 1);
for (var i = 0; i < nodes.length; i++) {
tree.expandNode(nodes[i], true, false, false);
selectCheckNode(treeName,nodes[i]);
}
// 展开第二级节点
nodes = tree.getNodesByParam("level", 2);
for (var i = 0; i < nodes.length; i++) {
tree.expandNode(nodes[i], true, false, false);
selectCheckNode(treeName,nodes[i]);
}
}, null, null, "正在加载,请稍后...");
};
$(function() {
loadTree();
});
function selectCheckNode(treeName, node) {
if(treeName == node.name){
tree.selectNode(node, true);
}
}
$('#btnExpand').click(function() {
tree.expandAll(true);
});
$('#btnCollapse').click(function() {
tree.expandAll(false);
});
function loadObj(){
var treeId = $("#treeId").val();
var treeName = $("#treeName").val();
parent.$("#treeId").val(treeId);
parent.$("#treeName").val(treeName);
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
parent.layer.close(index);
}
var lastValue = "", nodeList = [], key = $("#keyword");
key.bind("focus", focusKey).bind("blur", blurKey).bind("change cut input propertychange", searchNode);
key.bind("keydown", function (e){if(e.which == 13){searchNode();}});
function focusKey(e) {
if (key.hasClass("empty")) {
key.removeClass("empty");
}
}
function blurKey(e) {
if (key.get(0).value === "") {
key.addClass("empty");
}
searchNode(e);
}
function searchNode() {
var value = $.trim(key.get(0).value);
var keyType = "name";
if (lastValue === value) {
return;
}
lastValue = value;
var nodes = tree.getNodes();
if (value == "") {
showAllNode(nodes);
return;
}
hideAllNode(nodes);
nodeList = tree.getNodesByParamFuzzy(keyType, value);
updateNodes(nodeList);
}
function hideAllNode(nodes){
var tree = $.fn.zTree.getZTreeObj("tree");
nodes = tree.transformToArray(nodes);
for(var i=nodes.length-1; i>=0; i--) {
tree.hideNode(nodes[i]);
}
}
function showAllNode(nodes){
nodes = tree.transformToArray(nodes);
for(var i=nodes.length-1; i>=0; i--) {
if(nodes[i].getParentNode()!=null){
tree.expandNode(nodes[i],false,false,false,false);
}else{
tree.expandNode(nodes[i],true,true,false,false);
}
tree.showNode(nodes[i]);
showAllNode(nodes[i].children);
}
}
function updateNodes(nodeList) {
tree.showNodes(nodeList);
for(var i=0, l=nodeList.length; i<l; i++) {
var treeNode = nodeList[i];
showChildren(treeNode);
showParent(treeNode)
}
}
function showChildren(treeNode){
if (treeNode.isParent){
for(var idx in treeNode.children){
var node = treeNode.children[idx];
tree.showNode(node);
showChildren(node);
}
}
}
function showParent(treeNode){
var parentNode;
while((parentNode = treeNode.getParentNode()) != null){
tree.showNode(parentNode);
tree.expandNode(parentNode, true, false, false);
treeNode = parentNode;
}
}
function search($this) {
$('#search').slideToggle(200);
$('#btnShow').toggle();
$('#btnHide').toggle();
$('#keyword').focus();
}
</script>
</body>
</html>