mirror of
https://github.com/201206030/novel-plus.git
synced 2025-06-24 04:46:37 +00:00
上传后台管理系统代码
This commit is contained in:
@ -0,0 +1,67 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">标签名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据值:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="value" name="value" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">类型:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="type" name="type" th:value="${type}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">描述:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="description" name="description" th:value="${description}" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">排序(升序):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="sort" name="sort" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">备注信息:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="remarks" name="remarks" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/common/dict/add.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<button shiro:hasPermission="common:dict:add" type="button"
|
||||
class="btn btn-primary" onclick="add()">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="common:dict:batchRemove"
|
||||
type="button" class="btn btn-danger" onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
<div class="columns pull-right col-md-2">
|
||||
<select data-placeholder="选择类别" class="form-control chosen-select"
|
||||
tabindex="2" style="width: 100%">
|
||||
<option value="">选择类别</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--shiro控制bootstraptable行内按钮看见性-->
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
var s_edit_h = 'hidden';
|
||||
var s_remove_h = 'hidden';
|
||||
var s_resetPwd_h = 'hidden';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="common:dict:edit">
|
||||
<script type="text/javascript">
|
||||
s_edit_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="common:dict:remove">
|
||||
<script type="text/javascript">
|
||||
var s_remove_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="common:dict:add">
|
||||
<script type="text/javascript">
|
||||
var s_add_h = '';
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript"
|
||||
src="/js/appjs/common/dict/dict.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,81 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="id" name="id" th:value="${dict.id}"
|
||||
class="form-control" type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">标签名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name" th:value="${dict.name}"
|
||||
class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据值:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="value" name="value" th:value="${dict.value}"
|
||||
class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">类型:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="type" name="type" th:value="${dict.type}"
|
||||
class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">描述:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="description" name="description"
|
||||
th:value="${dict.description}" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">排序:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="sort" name="sort" th:value="${dict.sort}"
|
||||
class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden">
|
||||
<label class="col-sm-3 control-label ">父级编号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="parentId" name="parentId"
|
||||
th:value="${dict.parentId}" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">备注信息:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="remarks" name="remarks"
|
||||
th:value="${dict.remarks}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/common/dict/edit.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
220
novel-admin/src/main/resources/templates/common/file/file.html
Normal file
220
novel-admin/src/main/resources/templates/common/file/file.html
Normal file
@ -0,0 +1,220 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>小说精品屋 - 文件管理器</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link href="/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
|
||||
<link href="/css/font-awesome.css?v=4.4.0" rel="stylesheet">
|
||||
<link href="/css/animate.css" rel="stylesheet">
|
||||
<link href="/css/layui.css" rel="stylesheet">
|
||||
<link href="/css/style.css?v=4.1.0" rel="stylesheet">
|
||||
<style>
|
||||
.aactive {
|
||||
color: #13b5b7 !important;
|
||||
}
|
||||
.hactive:hover{
|
||||
color: #13b5b7 !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content" id="app">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<div class="file-manager">
|
||||
<button type="button" class="layui-btn" id="test1">
|
||||
<i class="fa fa-cloud"></i>上传文件
|
||||
</button>
|
||||
<div class="hr-line-dashed"></div>
|
||||
<ul class="folder-list" style="padding: 0">
|
||||
<li><a href="javascript:void(0)" class="file-control hactive" :class="{'aactive':type === ''}"
|
||||
v-on:click="changeType('')"><i class="fa fa-folder"></i>所有文件</a></li>
|
||||
|
||||
<li><a href="javascript:void(0)" class="file-control hactive" :class="{'aactive':type === 0}"
|
||||
v-on:click="changeType(0)"><i class="fa fa-folder"></i>图片</a></li>
|
||||
|
||||
<li><a href="javascript:void(0)" :class="{'aactive':type === 1}"
|
||||
v-on:click="changeType(1)" class="file-control hactive"><i class="fa fa-folder"></i>文档</a>
|
||||
</li>
|
||||
|
||||
<li><a href="javascript:void(0)" v-on:click="changeType(2)" :class="{'aactive':type === 2}"
|
||||
class="file-control hactive"><i class="fa fa-folder"></i>视频</a></li>
|
||||
|
||||
<li><a href="javascript:void(0)" v-on:click="changeType(3)" :class="{'aactive':type === 3}"
|
||||
class="file-control hactive"><i class="fa fa-folder"></i>音乐</a></li>
|
||||
|
||||
<li><a href="javascript:void(0)" v-on:click="changeType(99)" :class="{'aactive':type === 99}"
|
||||
class="file-control hactive"><i class="fa fa-folder"></i>其他</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-9 animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="file-box" v-for="row in rows">
|
||||
<div class="file">
|
||||
<a href="#">
|
||||
<span class="corner"></span>
|
||||
<div class="image">
|
||||
<img alt="image" class="img-responsive" :src="row.url">
|
||||
</div>
|
||||
<div class="file-name">
|
||||
<br/>
|
||||
<small>{{row.createDate}}</small>
|
||||
</div>
|
||||
<button
|
||||
class="btn btn-warning btn-xs copy" :url="row.url">复制
|
||||
</button> <button class="btn btn-danger btn-xs"
|
||||
@click="remove(row.id)">删除
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="incomeNum"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<ul id="page"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 全局js -->
|
||||
<script src="/js/jquery.min.js?v=2.1.4"></script>
|
||||
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
|
||||
<script src="/js/bootstrap-paginator.min.js"></script>
|
||||
|
||||
<script src="/js/content.js?v=1.0.0"></script>
|
||||
<script src="/js/layui.js"></script>
|
||||
<script src="/js/plugins/clipboard/clipboard.min.js"></script>
|
||||
<script src="/js/plugins/layer/layer.min.js"></script>
|
||||
<script src="/js/vue.min.js"></script>
|
||||
|
||||
<script>
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
limit: 12,
|
||||
offset: 0,
|
||||
total: 0,
|
||||
file: '',
|
||||
type: '',
|
||||
rows: '',
|
||||
},
|
||||
methods: {
|
||||
getData: function () {
|
||||
$.getJSON("/common/sysFile/list", {
|
||||
limit: this.limit,
|
||||
offset: this.offset,
|
||||
type: this.type
|
||||
}, function (r) {
|
||||
app.total = r.total;
|
||||
app.rows = r.rows;
|
||||
app.page();
|
||||
});
|
||||
},
|
||||
page: function () {
|
||||
var options = {
|
||||
currentPage: app.offset / 12 + 1, //当前页
|
||||
totalPages: Math.ceil(app.total / 12), //总页数
|
||||
numberofPages: 4, //显示的页数
|
||||
bootstrapMajorVersion: 3,
|
||||
alignment: 'center',
|
||||
size: 'large',
|
||||
shouldShowPage: true,
|
||||
itemTexts: function (type, page, current) { //修改显示文字
|
||||
switch (type) {
|
||||
case "first":
|
||||
return "首页";
|
||||
case "prev":
|
||||
return "上一页";
|
||||
case "next":
|
||||
return "下一页";
|
||||
case "last":
|
||||
return "尾页";
|
||||
case "page":
|
||||
return page;
|
||||
}
|
||||
},
|
||||
onPageClicked: function (event, originalEvent, type, page) {
|
||||
app.offset = (page - 1) * 12;
|
||||
app.getData();
|
||||
}
|
||||
};
|
||||
$('#page').bootstrapPaginator(options);
|
||||
},
|
||||
remove: function (id) {
|
||||
layer.confirm('确定要删除选中的记录?', {
|
||||
btn: ['确定', '取消']
|
||||
}, function () {
|
||||
$.ajax({
|
||||
url: "/common/sysFile/remove",
|
||||
type: "post",
|
||||
data: {
|
||||
'id': id
|
||||
},
|
||||
success: function (r) {
|
||||
if (r.code == 0) {
|
||||
layer.msg(r.msg);
|
||||
app.getData();
|
||||
} else {
|
||||
layer.msg(r.msg);
|
||||
app.getData();
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
changeType: function (i) {
|
||||
this.type = i;
|
||||
this.offset = 0;
|
||||
this.getData();
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
this.changeType('')
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var clipboard = new Clipboard('button.copy', {
|
||||
text: function (trigger) {
|
||||
layer.msg('文件路径已复制到粘贴板');
|
||||
return $(trigger).attr('url');
|
||||
}
|
||||
});
|
||||
layui.use('upload', function () {
|
||||
var upload = layui.upload;
|
||||
//执行实例
|
||||
var uploadInst = upload.render({
|
||||
elem: '#test1', //绑定元素
|
||||
url: '/common/sysFile/upload', //上传接口
|
||||
size: 1000,
|
||||
accept: 'file',
|
||||
done: function (r) {
|
||||
layer.msg(r.msg);
|
||||
app.getData();
|
||||
},
|
||||
error: function (r) {
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// function changeType(i) {
|
||||
// app.type = i;
|
||||
// app.offset = 0;
|
||||
// app.getData();
|
||||
// }
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,108 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">表名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="tableName" name="tableName" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="columnName" name="columnName" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列类型:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="columnType" name="columnType" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">映射java类型:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="javaType" name="javaType" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列注释:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="columnComment" name="columnComment" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列排序(升序):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="columnSort" name="columnSort" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列标签名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="columnLabel" name="columnLabel" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">页面显示类型:1、文本框 2、下拉框 3、数值4、日期 5、文本域6、富文本 7、上传图片【单文件】
|
||||
8、上传图片【多文件】9、上传文件【单文件】 10、上传文件【多文件】:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="pageType" name="pageType" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">是否必填:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="isRequired" name="isRequired" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">页面显示为下拉时使用,字典类型从字典表中取出:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="dictType" name="dictType" class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/common/genColumns/add.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,132 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="id" name="id" th:value="${genColumns.id}"
|
||||
type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">表名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="tableName" name="tableName" class="form-control"
|
||||
th:value="${genColumns.tableName}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="columnName" name="columnName" class="form-control"
|
||||
th:value="${genColumns.columnName}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列类型:</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="columnType" name="columnType" class="form-control"
|
||||
th:value="${genColumns.columnType}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">映射java类型:</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="javaType" name="javaType" class="form-control"
|
||||
th:value="${genColumns.javaType}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列注释:</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="columnComment" name="columnComment" class="form-control"
|
||||
th:value="${genColumns.columnComment}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列排序(升序):</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="columnSort" name="columnSort" class="form-control"
|
||||
th:value="${genColumns.columnSort}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">列标签名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="columnLabel" name="columnLabel" class="form-control"
|
||||
th:value="${genColumns.columnLabel}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">页面显示类型:1、文本框 2、下拉框 3、数值4、日期 5、文本域6、富文本 7、上传图片【单文件】 8、上传图片【多文件】9、上传文件【单文件】 10、上传文件【多文件】:</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="pageType" name="pageType" class="form-control"
|
||||
th:value="${genColumns.pageType}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">是否必填:</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="isRequired" name="isRequired" class="form-control"
|
||||
th:value="${genColumns.isRequired}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">页面显示为下拉时使用,字典类型从字典表中取出:</label>
|
||||
<div class="col-sm-8">
|
||||
<input readonly id="dictType" name="dictType" class="form-control"
|
||||
th:value="${genColumns.dictType}"
|
||||
type="text">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header">
|
||||
</head>
|
||||
<link rel="stylesheet" href="/js/plugins/edittable/jquery.edittable.css">
|
||||
<link rel="stylesheet" href="/js/plugins/edittable/main.css">
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<input id="genColumns" type="hidden" th:value="${genColumns}"/>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<div id="edittable"></div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button style="padding: 0px 12px;" type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
|
||||
<script type="text/javascript" src="/js/plugins/edittable/jquery.edittable.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/common/genColumns/edit.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,49 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<input type="hidden" id="tableName" th:value="${tableName}"/>
|
||||
<!--<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<button shiro:hasPermission="common:genColumns:add" type="button"
|
||||
class="btn btn-primary" onclick="add()">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="common:genColumns:batchRemove" type="button"
|
||||
class="btn btn-danger"
|
||||
onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
|
||||
<form id="searchForm">
|
||||
<div class="columns pull-right col-md-2">
|
||||
<input id="id" name="id" type="text" class="form-control"
|
||||
placeholder="主键">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>-->
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button onclick="save()" type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/common/genColumns/genColumns.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,135 @@
|
||||
package ${package}.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
||||
|
||||
import ${package}.domain.${className}DO;
|
||||
import ${package}.service.${className}Service;
|
||||
import com.java2nb.common.utils.PageBean;
|
||||
import com.java2nb.common.utils.Query;
|
||||
import com.java2nb.common.utils.R;
|
||||
|
||||
/**
|
||||
* ${comments}
|
||||
*
|
||||
* @author ${author}
|
||||
* @email ${email}
|
||||
* @date ${datetime}
|
||||
*/
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/${pathName}/${classname}")
|
||||
public class ${className}Controller {
|
||||
@Autowired
|
||||
private ${className}Service ${classname}Service;
|
||||
|
||||
@GetMapping()
|
||||
@RequiresPermissions("${pathName}:${classname}:${classname}")
|
||||
String ${className}() {
|
||||
return "${pathName}/${classname}/${classname}";
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取${comments}列表", notes = "获取${comments}列表")
|
||||
@ResponseBody
|
||||
@GetMapping("/list")
|
||||
@RequiresPermissions("${pathName}:${classname}:${classname}")
|
||||
public R list(@RequestParam Map<String, Object> params) {
|
||||
//查询列表数据
|
||||
Query query = new Query(params);
|
||||
List<${className}DO> ${classname}List = ${classname}Service.list(query);
|
||||
int total = ${classname}Service.count(query);
|
||||
PageBean pageBean = new PageBean(${classname}List, total);
|
||||
return R.ok().put("data", pageBean);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "新增${comments}页面", notes = "新增${comments}页面")
|
||||
@GetMapping("/add")
|
||||
@RequiresPermissions("${pathName}:${classname}:add")
|
||||
String add() {
|
||||
return "${pathName}/${classname}/add";
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改${comments}页面", notes = "修改${comments}页面")
|
||||
@GetMapping("/edit/{${pk.attrname}}")
|
||||
@RequiresPermissions("${pathName}:${classname}:edit")
|
||||
String edit(@PathVariable("${pk.attrname}") ${pk.javaType} ${pk.attrname}, Model model) {
|
||||
${className}DO ${classname} = ${classname}Service.get(${pk.attrname});
|
||||
model.addAttribute("${classname}", ${classname});
|
||||
return "${pathName}/${classname}/edit";
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查看${comments}页面", notes = "查看${comments}页面")
|
||||
@GetMapping("/detail/{${pk.attrname}}")
|
||||
@RequiresPermissions("${pathName}:${classname}:detail")
|
||||
String detail(@PathVariable("${pk.attrname}") ${pk.javaType} ${pk.attrname}, Model model) {
|
||||
${className}DO ${classname} = ${classname}Service.get(${pk.attrname});
|
||||
model.addAttribute("${classname}", ${classname});
|
||||
return "${pathName}/${classname}/detail";
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@ApiOperation(value = "新增${comments}", notes = "新增${comments}")
|
||||
@ResponseBody
|
||||
@PostMapping("/save")
|
||||
@RequiresPermissions("${pathName}:${classname}:add")
|
||||
public R save( ${className}DO ${classname}) {
|
||||
if (${classname}Service.save(${classname}) > 0) {
|
||||
return R.ok();
|
||||
}
|
||||
return R.error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
@ApiOperation(value = "修改${comments}", notes = "修改${comments}")
|
||||
@ResponseBody
|
||||
@RequestMapping("/update")
|
||||
@RequiresPermissions("${pathName}:${classname}:edit")
|
||||
public R update( ${className}DO ${classname}) {
|
||||
${classname}Service.update(${classname});
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@ApiOperation(value = "删除${comments}", notes = "删除${comments}")
|
||||
@PostMapping("/remove")
|
||||
@ResponseBody
|
||||
@RequiresPermissions("${pathName}:${classname}:remove")
|
||||
public R remove( ${pk.javaType} ${pk.attrname}) {
|
||||
if (${classname}Service.remove(${pk.attrname}) > 0) {
|
||||
return R.ok();
|
||||
}
|
||||
return R.error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@ApiOperation(value = "批量删除${comments}", notes = "批量删除${comments}")
|
||||
@PostMapping("/batchRemove")
|
||||
@ResponseBody
|
||||
@RequiresPermissions("${pathName}:${classname}:batchRemove")
|
||||
public R remove(@RequestParam("ids[]") ${pk.javaType}[] ${pk.attrname}s) {
|
||||
${classname}Service.batchRemove(${pk.attrname}s);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package ${package}.dao;
|
||||
|
||||
import ${package}.domain.${className}DO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* ${comments}
|
||||
* @author ${author}
|
||||
* @email ${email}
|
||||
* @date ${datetime}
|
||||
*/
|
||||
@Mapper
|
||||
public interface ${className}Dao {
|
||||
|
||||
${className}DO get(${pk.javaType} ${pk.attrname});
|
||||
|
||||
List<${className}DO> list(Map<String,Object> map);
|
||||
|
||||
int count(Map<String,Object> map);
|
||||
|
||||
int save(${className}DO ${classname});
|
||||
|
||||
int update(${className}DO ${classname});
|
||||
|
||||
int remove(${pk.javaType} ${pk.columnName});
|
||||
|
||||
int batchRemove(${pk.javaType}[] ${pk.attrname}s);
|
||||
}
|
@ -0,0 +1,94 @@
|
||||
package ${package}.dao;
|
||||
|
||||
import ${package}.domain.${className}DO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
/**
|
||||
* ${comments}
|
||||
*
|
||||
* @author ${author}
|
||||
* @email ${email}
|
||||
* @date ${datetime}
|
||||
*/
|
||||
@Mapper
|
||||
public interface ${className}Mapper {
|
||||
|
||||
@Select("select #foreach($column in $columns)
|
||||
`$column.columnName`#if($velocityCount != $columns.size()), #end
|
||||
#end from ${tableName} where ${pk.columnName} = #{id}")
|
||||
${className}DO get(${pk.javaType} ${pk.attrname});
|
||||
|
||||
@Select("<script>" +
|
||||
"select * from ${tableName} " +
|
||||
"<where>" +
|
||||
#foreach($column in $columns)
|
||||
"<if test=\"$column.attrname != null and $column.attrname.trim() != ''\">"+ "and $column.columnName = #{$column.attrname} " + "</if>" +
|
||||
#end
|
||||
"</where>"+
|
||||
" <choose>" +
|
||||
"<when test=\"sort != null and sort.trim() != ''\">" +
|
||||
"order by ${sort} ${order}" +
|
||||
"</when>" +
|
||||
"<otherwise>" +
|
||||
"order by ${pk.columnName} desc" +
|
||||
"</otherwise>" +
|
||||
"</choose>"+
|
||||
"<if test=\"offset != null and limit != null\">"+
|
||||
"limit #{offset}, #{limit}" +
|
||||
"</if>"+
|
||||
"</script>")
|
||||
List<${className}DO> list(Map<String,Object> map);
|
||||
|
||||
@Select("<script>" +
|
||||
"select count(*) from ${tableName} " +
|
||||
"<where>" +
|
||||
#foreach($column in $columns)
|
||||
"<if test=\"$column.attrname != null and $column.attrname.trim() != ''\">"+ "and $column.columnName = #{$column.attrname} " + "</if>" +
|
||||
#end
|
||||
"</where>"+
|
||||
"</script>")
|
||||
int count(Map<String,Object> map);
|
||||
|
||||
@Insert("insert into ${tableName} (#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName || $pk.extra != 'auto_increment')
|
||||
`$column.columnName`#if($velocityCount != $columns.size()), #end
|
||||
#end
|
||||
#end)"
|
||||
+ "values (#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName || $pk.extra != 'auto_increment')
|
||||
#{$column.attrname}#if($velocityCount != $columns.size()), #end
|
||||
#end
|
||||
#end)")
|
||||
int save(${className}DO ${classname});
|
||||
|
||||
int saveSelective(${className}DO ${classname});
|
||||
|
||||
@Update("<script>"+
|
||||
"update ${tableName} " +
|
||||
"<set>" +
|
||||
#foreach($column in $columns)
|
||||
"<if test=\"$column.attrname != null\">`$column.columnName` = #{$column.attrname}, </if>" +
|
||||
#end
|
||||
"</set>" +
|
||||
"where ${pk.columnName} = #{${pk.attrname}}"+
|
||||
"</script>")
|
||||
int update(${className}DO ${classname});
|
||||
|
||||
@Delete("delete from ${tableName} where ${pk.columnName} =#{${pk.attrname}}")
|
||||
int remove(${pk.javaType} ${pk.columnName});
|
||||
|
||||
@Delete("<script>"+
|
||||
"delete from ${tableName} where ${pk.columnName} in " +
|
||||
"<foreach item=\"${pk.attrname}\" collection=\"array\" open=\"(\" separator=\",\" close=\")\">" +
|
||||
"#{${pk.attrname}}" +
|
||||
"</foreach>"+
|
||||
"</script>")
|
||||
int batchRemove(${pk.javaType}[] ${pk.attrname}s);
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="${package}.dao.${className}Dao">
|
||||
|
||||
<select id="get" resultType="${package}.domain.${className}DO">
|
||||
select #foreach($column in $columns)`$column.columnName`#if($velocityCount != $columns.size()),#end#end from ${tableName} where ${pk.columnName} = #{value}
|
||||
</select>
|
||||
|
||||
<select id="list" resultType="${package}.domain.${className}DO">
|
||||
select #foreach($column in $columns)`$column.columnName`#if($velocityCount != $columns.size()),#end#end from ${tableName}
|
||||
<where>
|
||||
#foreach($column in $columns)
|
||||
<if test="$column.attrname != null and $column.attrname.trim() != ''"> and $column.columnName = #{$column.attrname} </if>
|
||||
#end
|
||||
</where>
|
||||
<choose>
|
||||
<when test="sort != null and sort.trim() != ''">
|
||||
order by ${sort} ${order}
|
||||
</when>
|
||||
<otherwise>
|
||||
order by ${pk.columnName} desc
|
||||
</otherwise>
|
||||
</choose>
|
||||
<if test="offset != null and limit != null">
|
||||
limit #{offset}, #{limit}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="count" resultType="int">
|
||||
select count(*) from ${tableName}
|
||||
<where>
|
||||
#foreach($column in $columns)
|
||||
<if test="$column.attrname != null and $column.attrname.trim() != ''"> and $column.columnName = #{$column.attrname} </if>
|
||||
#end
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<insert id="save" parameterType="${package}.domain.${className}DO"#if($pk.extra == 'auto_increment') useGeneratedKeys="true" keyProperty="$pk.attrname"#end>
|
||||
insert into ${tableName}
|
||||
(
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName || $pk.extra != 'auto_increment')
|
||||
`$column.columnName`#if($velocityCount != $columns.size()), #end
|
||||
|
||||
#end
|
||||
#end
|
||||
)
|
||||
values
|
||||
(
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName || $pk.extra != 'auto_increment')
|
||||
#{$column.attrname}#if($velocityCount != $columns.size()), #end
|
||||
|
||||
#end
|
||||
#end
|
||||
)
|
||||
</insert>
|
||||
|
||||
<insert id="saveSelective" parameterType="${package}.domain.${className}DO"#if($pk.extra == 'auto_increment') useGeneratedKeys="true" keyProperty="$pk.attrname"#end>
|
||||
insert into ${tableName}
|
||||
(
|
||||
#foreach($column in $columns)
|
||||
<if test="$column.attrname != null"> `$column.columnName`#if($velocityCount != $columns.size()), #end </if>
|
||||
#end
|
||||
)
|
||||
values
|
||||
(
|
||||
#foreach($column in $columns)
|
||||
<if test="$column.attrname != null"> #{$column.attrname}#if($velocityCount != $columns.size()), #end </if>
|
||||
#end
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="update" parameterType="${package}.domain.${className}DO">
|
||||
update ${tableName}
|
||||
<set>
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName)
|
||||
<if test="$column.attrname != null">`$column.columnName` = #{$column.attrname}#if($velocityCount != $columns.size()), #end</if>
|
||||
#end
|
||||
#end
|
||||
</set>
|
||||
where ${pk.columnName} = #{${pk.attrname}}
|
||||
</update>
|
||||
|
||||
<delete id="remove">
|
||||
delete from ${tableName} where ${pk.columnName} = #{value}
|
||||
</delete>
|
||||
|
||||
<delete id="batchRemove">
|
||||
delete from ${tableName} where ${pk.columnName} in
|
||||
<foreach item="${pk.attrname}" collection="array" open="(" separator="," close=")">
|
||||
#{${pk.attrname}}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
</mapper>
|
@ -0,0 +1,30 @@
|
||||
package ${package}.service;
|
||||
|
||||
import ${package}.domain.${className}DO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* ${comments}
|
||||
*
|
||||
* @author ${author}
|
||||
* @email ${email}
|
||||
* @date ${datetime}
|
||||
*/
|
||||
public interface ${className}Service {
|
||||
|
||||
${className}DO get(${pk.javaType} ${pk.attrname});
|
||||
|
||||
List<${className}DO> list(Map<String, Object> map);
|
||||
|
||||
int count(Map<String, Object> map);
|
||||
|
||||
int save(${className}DO ${classname});
|
||||
|
||||
int update(${className}DO ${classname});
|
||||
|
||||
int remove(${pk.javaType} ${pk.attrname});
|
||||
|
||||
int batchRemove(${pk.javaType}[] ${pk.attrname}s);
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package ${package}.service.impl;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import ${package}.dao.${className}Dao;
|
||||
import ${package}.domain.${className}DO;
|
||||
import ${package}.service.${className}Service;
|
||||
|
||||
|
||||
|
||||
@Service
|
||||
public class ${className}ServiceImpl implements ${className}Service {
|
||||
@Autowired
|
||||
private ${className}Dao ${classname}Dao;
|
||||
|
||||
@Override
|
||||
public ${className}DO get(${pk.javaType} ${pk.attrname}){
|
||||
return ${classname}Dao.get(${pk.attrname});
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<${className}DO> list(Map<String, Object> map){
|
||||
return ${classname}Dao.list(map);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int count(Map<String, Object> map){
|
||||
return ${classname}Dao.count(map);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int save(${className}DO ${classname}){
|
||||
return ${classname}Dao.save(${classname});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(${className}DO ${classname}){
|
||||
return ${classname}Dao.update(${classname});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int remove(${pk.javaType} ${pk.attrname}){
|
||||
return ${classname}Dao.remove(${pk.attrname});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int batchRemove(${pk.javaType}[] ${pk.attrname}s){
|
||||
return ${classname}Dao.batchRemove(${pk.attrname}s);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName)
|
||||
<div class="form-group">
|
||||
#if($column.pageType != 11 && $column.pageType != 12)
|
||||
<label class="col-sm-3 control-label">${column.columnLabel}:</label>
|
||||
#end
|
||||
<div class="col-sm-8">
|
||||
#if($column.pageType == 4)
|
||||
<input type="text" class="laydate-icon layer-date form-control"
|
||||
id="${column.attrname}"
|
||||
name="${column.attrname}"
|
||||
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
|
||||
style="background-color: #fff;" readonly="readonly"/>
|
||||
#elseif($column.pageType == 1)
|
||||
<input id="${column.attrname}" name="${column.attrname}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
#elseif($column.pageType == 2)
|
||||
|
||||
<select data-placeholder="--选择--" id="${column.attrname}"
|
||||
name="${column.attrname}"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="${column.dictType}">
|
||||
</select>
|
||||
#elseif($column.pageType == 3)
|
||||
<input id="${column.attrname}" name="${column.attrname}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
#elseif($column.pageType == 5)
|
||||
<textarea id="${column.attrname}" name="${column.attrname}"
|
||||
class="form-control"></textarea>
|
||||
#elseif($column.pageType == 6)
|
||||
<input type="hidden" id="${column.attrname}" name="${column.attrname}"/>
|
||||
<div id="contentEditor${column.attrname}">
|
||||
|
||||
</div>
|
||||
#elseif($column.pageType == 7)
|
||||
<img title="点击选择图片" id="picImage${column.attrname}"
|
||||
style="cursor:pointer;width: 100px;height: 100px"
|
||||
src="/img/webuploader.png"/>
|
||||
<input id="${column.attrname}" name="${column.attrname}"
|
||||
class="form-control"
|
||||
type="hidden">
|
||||
#elseif($column.pageType == 11)
|
||||
<input type="hidden" id="${column.attrname}" name="${column.attrname}"/>
|
||||
#*#else
|
||||
<input id="${column.attrname}" name="${column.attrname}"
|
||||
class="form-control"
|
||||
type="text">*#
|
||||
#end
|
||||
|
||||
</div>
|
||||
</div>
|
||||
#end
|
||||
#end
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/wangEditor/release/wangEditor.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/${pathName}/${classname}/add.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,121 @@
|
||||
var E = window.wangEditor;
|
||||
$("[id^='contentEditor']").each(function (index, ele) {
|
||||
var relName = $(ele).attr("id").substring(13);
|
||||
var editor = new E('#contentEditor' + relName);
|
||||
// 自定义菜单配置
|
||||
editor.customConfig.menus = [
|
||||
'head', // 标题
|
||||
'bold', // 粗体
|
||||
'fontSize', // 字号
|
||||
'fontName', // 字体
|
||||
'italic', // 斜体
|
||||
'underline', // 下划线
|
||||
'strikeThrough', // 删除线
|
||||
'foreColor', // 文字颜色
|
||||
//'backColor', // 背景颜色
|
||||
//'link', // 插入链接
|
||||
'list', // 列表
|
||||
'justify', // 对齐方式
|
||||
'quote', // 引用
|
||||
'emoticon', // 表情
|
||||
'image', // 插入图片
|
||||
//'table', // 表格
|
||||
//'video', // 插入视频
|
||||
//'code', // 插入代码
|
||||
'undo', // 撤销
|
||||
'redo' // 重复
|
||||
];
|
||||
editor.customConfig.onchange = function (html) {
|
||||
// html 即变化之后的内容
|
||||
$("#" + relName).val(html);
|
||||
}
|
||||
editor.customConfig.uploadImgShowBase64 = true;
|
||||
editor.create();
|
||||
|
||||
})
|
||||
|
||||
$("[id^='picImage']").each(function (index, ele) {
|
||||
var relName = $(ele).attr("id").substring(8);
|
||||
layui.use('upload', function () {
|
||||
var upload = layui.upload;
|
||||
//执行实例
|
||||
var uploadInst = upload.render({
|
||||
elem: '#picImage' + relName, //绑定元素
|
||||
url: '/common/sysFile/upload', //上传接口
|
||||
size: 1000,
|
||||
accept: 'file',
|
||||
done: function (r) {
|
||||
$("#picImage" + relName).attr("src", r.fileName);
|
||||
$("#" + relName).val(r.fileName);
|
||||
},
|
||||
error: function (r) {
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$().ready(function () {
|
||||
validateRule();
|
||||
});
|
||||
|
||||
$.validator.setDefaults({
|
||||
submitHandler: function () {
|
||||
save();
|
||||
}
|
||||
});
|
||||
function save() {
|
||||
$.ajax({
|
||||
cache: true,
|
||||
type: "POST",
|
||||
url: "/${pathName}/${classname}/save",
|
||||
data: $('#signupForm').serialize(),// 你的formid
|
||||
async: false,
|
||||
error: function (request) {
|
||||
parent.layer.alert("Connection error");
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 0) {
|
||||
parent.layer.msg("操作成功");
|
||||
parent.reLoad();
|
||||
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
||||
parent.layer.close(index);
|
||||
|
||||
} else {
|
||||
parent.layer.alert(data.msg)
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
function validateRule() {
|
||||
var icon = "<i class='fa fa-times-circle'></i> ";
|
||||
$("#signupForm").validate({
|
||||
ignore: "",
|
||||
rules: {
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName && $column.isRequired == 1)
|
||||
${column.attrname}: {
|
||||
required: true
|
||||
}#if($velocityCount != $columns.size()), #end
|
||||
#end
|
||||
#end
|
||||
},
|
||||
messages: {
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName && $column.isRequired == 1)
|
||||
${column.attrname}: {
|
||||
required: icon + "请选择${column.columnLabel}"
|
||||
}#if($velocityCount != $columns.size()), #end
|
||||
#end
|
||||
#end
|
||||
}
|
||||
})
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="${pk.columnName}" name="${pk.columnName}" th:value="${${classname}.${pk.columnName}}"
|
||||
type="hidden">
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName)
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">${column.columnLabel}:</label>
|
||||
|
||||
#if($column.pageType == 4)
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${${classname}.${column.attrname}}==null?null:${#dates.format(${classname}.${column.attrname},'yyyy-MM-dd HH:mm:ss')}">
|
||||
</div>
|
||||
#elseif($column.pageType == 2)
|
||||
<div style="padding-top:8px" class="col-sm-8 dict-type" dict-type="${column.dictType}"
|
||||
th:attr="dict-value=${${classname}.${column.attrname}}">
|
||||
</div>
|
||||
|
||||
#elseif($column.pageType == 6)
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:utext="${${classname}.${column.attrname}}"></div>
|
||||
#elseif($column.pageType == 7)
|
||||
<div style="padding-top:8px" class="col-sm-8">
|
||||
<img id="picImage${column.attrname}"
|
||||
style="cursor:pointer;width: 100px;height: 100px"
|
||||
th:src="${${classname}.${column.attrname}}==null?'/img/webuploader.png':${${classname}.${column.attrname}}"/>
|
||||
</div>
|
||||
#else
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${${classname}.${column.attrname}}">
|
||||
</div>
|
||||
#*#else
|
||||
<input id="${column.attrname}" name="${column.attrname}"
|
||||
class="form-control"
|
||||
type="text">*#
|
||||
#end
|
||||
|
||||
|
||||
</div>
|
||||
#end
|
||||
#end
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,55 @@
|
||||
package ${package}.domain;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.java2nb.common.jsonserializer.LongToStringSerializer;
|
||||
|
||||
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* ${comments}
|
||||
*
|
||||
* @author ${author}
|
||||
* @email ${email}
|
||||
* @date ${datetime}
|
||||
*/
|
||||
public class ${className}DO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
#foreach ($column in $columns)
|
||||
//$column.columnComment
|
||||
#if($column.javaType == "Long")
|
||||
//java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值)
|
||||
//所以通过序列化成字符串来解决
|
||||
@JsonSerialize(using = LongToStringSerializer.class)
|
||||
#end
|
||||
#if($column.javaType == "Date")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
#end
|
||||
private $column.javaType $column.attrname;
|
||||
#end
|
||||
|
||||
#foreach ($column in $columns)
|
||||
/**
|
||||
* 设置:${column.columnComment}
|
||||
*/
|
||||
public void set${column.attrName}($column.javaType $column.attrname) {
|
||||
this.$column.attrname = $column.attrname;
|
||||
}
|
||||
/**
|
||||
* 获取:${column.columnComment}
|
||||
*/
|
||||
public $column.javaType get${column.attrName}() {
|
||||
return $column.attrname;
|
||||
}
|
||||
#end
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">作者:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="author" name="author" class="form-control"
|
||||
type="text" th:value="${property.author}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">邮箱:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="email" name="email" class="form-control" type="text"
|
||||
th:value="${property.email}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">本地项目Src路径:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="srcPath" name="srcPath" class="form-control"
|
||||
type="text" th:value="${property.srcPath}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">包名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="package" name="package" class="form-control"
|
||||
type="text" th:value="${property.package}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">自动去掉表前缀:</label>
|
||||
<div class="col-sm-2 i-checks icheckbox_square-green checked">
|
||||
<input id="autoRemovePre" name="autoRemovePre"
|
||||
class="form-control" type="checkbox"
|
||||
value="true"
|
||||
th:checked="${property.autoRemovePre}">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">去掉指定表前缀:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="tablePrefix" name="tablePrefix" class="form-control"
|
||||
type="text" th:value="${property.tablePrefix}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/common/generator/edit.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="${pk.columnName}" name="${pk.columnName}" th:value="${${classname}.${pk.columnName}}"
|
||||
type="hidden">
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName)
|
||||
<div class="form-group">
|
||||
#if($column.pageType != 11 && $column.pageType != 12)
|
||||
<label class="col-sm-3 control-label">${column.columnLabel}:</label>
|
||||
#end
|
||||
<div class="col-sm-8">
|
||||
#if($column.pageType == 4)
|
||||
<input type="text" class="laydate-icon layer-date form-control"
|
||||
id="${column.attrname}"
|
||||
name="${column.attrname}"
|
||||
th:value="${${classname}.${column.attrname}}==null?null:${#dates.format(${classname}.${column.attrname},'yyyy-MM-dd HH:mm:ss')}"
|
||||
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
|
||||
style="background-color: #fff;" readonly="readonly"/>
|
||||
#elseif($column.pageType == 1)
|
||||
<input id="${column.attrname}" name="${column.attrname}"
|
||||
th:value="${${classname}.${column.attrname}}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
#elseif($column.pageType == 2)
|
||||
|
||||
<select data-placeholder="--选择--" id="${column.attrname}"
|
||||
name="${column.attrname}"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="${column.dictType}"
|
||||
th:attr="dict-value=${${classname}.${column.attrname}}" >
|
||||
</select>
|
||||
#elseif($column.pageType == 3)
|
||||
<input id="${column.attrname}" name="${column.attrname}"
|
||||
th:value="${${classname}.${column.attrname}}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
#elseif($column.pageType == 5)
|
||||
<textarea id="${column.attrname}" name="${column.attrname}"
|
||||
class="form-control" th:text="${${classname}.${column.attrname}}"></textarea>
|
||||
#elseif($column.pageType == 6)
|
||||
<input type="hidden" id="${column.attrname}" name="${column.attrname}" th:value="${${classname}.${column.attrname}}"/>
|
||||
<div id="contentEditor${column.attrname}">
|
||||
|
||||
</div>
|
||||
#elseif($column.pageType == 7)
|
||||
<img title="点击选择图片" id="picImage${column.attrname}"
|
||||
style="cursor:pointer;width: 100px;height: 100px"
|
||||
th:src="${${classname}.${column.attrname}}==null?'/img/webuploader.png':${${classname}.${column.attrname}}"/>
|
||||
<input id="${column.attrname}" name="${column.attrname}" th:value="${${classname}.${column.attrname}}"
|
||||
class="form-control"
|
||||
type="hidden">
|
||||
#elseif($column.pageType == 11)
|
||||
<input type="hidden" id="${column.attrname}" name="${column.attrname}" th:value="${${classname}.${column.attrname}}"/>
|
||||
#*#else
|
||||
<input id="${column.attrname}" name="${column.attrname}"
|
||||
class="form-control"
|
||||
type="text">*#
|
||||
#end
|
||||
</div>
|
||||
</div>
|
||||
#end
|
||||
#end
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/wangEditor/release/wangEditor.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/${pathName}/${classname}/edit.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,119 @@
|
||||
var E = window.wangEditor;
|
||||
$("[id^='contentEditor']").each(function (index, ele) {
|
||||
var relName = $(ele).attr("id").substring(13);
|
||||
var editor = new E('#contentEditor' + relName);
|
||||
// 自定义菜单配置
|
||||
editor.customConfig.menus = [
|
||||
'head', // 标题
|
||||
'bold', // 粗体
|
||||
'fontSize', // 字号
|
||||
'fontName', // 字体
|
||||
'italic', // 斜体
|
||||
'underline', // 下划线
|
||||
'strikeThrough', // 删除线
|
||||
'foreColor', // 文字颜色
|
||||
//'backColor', // 背景颜色
|
||||
//'link', // 插入链接
|
||||
'list', // 列表
|
||||
'justify', // 对齐方式
|
||||
'quote', // 引用
|
||||
'emoticon', // 表情
|
||||
'image', // 插入图片
|
||||
//'table', // 表格
|
||||
//'video', // 插入视频
|
||||
//'code', // 插入代码
|
||||
'undo', // 撤销
|
||||
'redo' // 重复
|
||||
];
|
||||
editor.customConfig.onchange = function (html) {
|
||||
// html 即变化之后的内容
|
||||
$("#" + relName).val(html);
|
||||
}
|
||||
editor.customConfig.uploadImgShowBase64 = true;
|
||||
editor.create();
|
||||
editor.txt.html($("#" + relName).val());
|
||||
|
||||
})
|
||||
|
||||
$("[id^='picImage']").each(function (index, ele) {
|
||||
var relName = $(ele).attr("id").substring(8);
|
||||
layui.use('upload', function () {
|
||||
var upload = layui.upload;
|
||||
//执行实例
|
||||
var uploadInst = upload.render({
|
||||
elem: '#picImage' + relName, //绑定元素
|
||||
url: '/common/sysFile/upload', //上传接口
|
||||
size: 1000,
|
||||
accept: 'file',
|
||||
done: function (r) {
|
||||
$("#picImage" + relName).attr("src", r.fileName);
|
||||
$("#" + relName).val(r.fileName);
|
||||
},
|
||||
error: function (r) {
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$().ready(function () {
|
||||
validateRule();
|
||||
});
|
||||
|
||||
$.validator.setDefaults({
|
||||
submitHandler: function () {
|
||||
update();
|
||||
}
|
||||
});
|
||||
function update() {
|
||||
$.ajax({
|
||||
cache: true,
|
||||
type: "POST",
|
||||
url: "/${pathName}/${classname}/update",
|
||||
data: $('#signupForm').serialize(),// 你的formid
|
||||
async: false,
|
||||
error: function (request) {
|
||||
parent.layer.alert("Connection error");
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 0) {
|
||||
parent.layer.msg("操作成功");
|
||||
parent.reLoad();
|
||||
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
||||
parent.layer.close(index);
|
||||
|
||||
} else {
|
||||
parent.layer.alert(data.msg)
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
function validateRule() {
|
||||
var icon = "<i class='fa fa-times-circle'></i> ";
|
||||
$("#signupForm").validate({
|
||||
ignore: "",
|
||||
rules: {
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName && $column.isRequired == 1)
|
||||
${column.attrname}:
|
||||
{
|
||||
required: true
|
||||
}#if($velocityCount != $columns.size()), #end
|
||||
#end
|
||||
#end
|
||||
},
|
||||
messages: {
|
||||
#foreach($column in $columns)
|
||||
#if($column.columnName != $pk.columnName && $column.isRequired == 1)
|
||||
${column.attrname}:
|
||||
{
|
||||
required: icon + "请选择${column.columnLabel}"
|
||||
}#if($velocityCount != $columns.size()), #end
|
||||
#end
|
||||
#end
|
||||
}
|
||||
})
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<!--<button type="button" class="btn btn-primary"
|
||||
onclick="batchDownload()">
|
||||
<i class="" aria-hidden="true"></i>批量下载
|
||||
</button>
|
||||
<button type="button" class="btn btn-success"
|
||||
onclick="batchCode()">
|
||||
<i class="" aria-hidden="true"></i>批量生成
|
||||
</button>-->
|
||||
<button type="button" class="btn btn-info"
|
||||
onclick="edit()">
|
||||
<i class="" aria-hidden="true"></i>生成配置
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
|
||||
<div class="columns pull-right col-md-2">
|
||||
<input id="tableName" type="text" class="form-control"
|
||||
placeholder="表名">
|
||||
</div>
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/common/generator/list.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<button shiro:hasPermission="${pathName}:${classname}:add" type="button"
|
||||
class="btn btn-primary" onclick="add()">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="${pathName}:${classname}:batchRemove" type="button"
|
||||
class="btn btn-danger"
|
||||
onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
|
||||
<form id="searchForm">
|
||||
<div class="columns pull-right col-md-2">
|
||||
<input id="id" name="id" type="text" class="form-control"
|
||||
placeholder="主键">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--shiro控制bootstraptable行内按钮看见性 -->
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
var s_detail_h = 'hidden';
|
||||
var s_edit_h = 'hidden';
|
||||
var s_remove_h = 'hidden';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="test:order:detail">
|
||||
<script type="text/javascript">
|
||||
s_detail_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="${pathName}:${classname}:edit">
|
||||
<script type="text/javascript">
|
||||
s_edit_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="${pathName}:${classname}:remove">
|
||||
<script type="text/javascript">
|
||||
var s_remove_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/${pathName}/${classname}/${classname}.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,197 @@
|
||||
var prefix = "/${pathName}/${classname}"
|
||||
$(function () {
|
||||
load();
|
||||
});
|
||||
|
||||
function load() {
|
||||
$('#exampleTable')
|
||||
.bootstrapTable(
|
||||
{
|
||||
method: 'get', // 服务器数据的请求方式 get or post
|
||||
url: prefix + "/list", // 服务器数据的加载地址
|
||||
// showRefresh : true,
|
||||
// showToggle : true,
|
||||
// showColumns : true,
|
||||
iconSize: 'outline',
|
||||
toolbar: '#exampleToolbar',
|
||||
striped: true, // 设置为true会有隔行变色效果
|
||||
dataType: "json", // 服务器返回的数据类型
|
||||
pagination: true, // 设置为true会在底部显示分页条
|
||||
// queryParamsType : "limit",
|
||||
// //设置为limit则会发送符合RESTFull格式的参数
|
||||
singleSelect: false, // 设置为true将禁止多选
|
||||
// contentType : "application/x-www-form-urlencoded",
|
||||
// //发送到服务器的数据编码类型
|
||||
pageSize: 10, // 如果设置了分页,每页数据条数
|
||||
pageNumber: 1, // 如果设置了分布,首页页码
|
||||
//search : true, // 是否显示搜索框
|
||||
showColumns: false, // 是否显示内容下拉框(选择显示的列)
|
||||
sidePagination: "server", // 设置在哪里进行分页,可选值为"client" 或者 "server"
|
||||
queryParams: function (params) {
|
||||
//说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对
|
||||
var queryParams = getFormJson("searchForm");
|
||||
queryParams.limit = params.limit;
|
||||
queryParams.offset = params.offset;
|
||||
return queryParams;
|
||||
},
|
||||
// //请求服务器数据时,你可以通过重写参数的方式添加一些额外的参数,例如 toolbar 中的参数 如果
|
||||
// queryParamsType = 'limit' ,返回参数必须包含
|
||||
// limit, offset, search, sort, order 否则, 需要包含:
|
||||
// pageSize, pageNumber, searchText, sortName,
|
||||
// sortOrder.
|
||||
// 返回false将会终止请求
|
||||
responseHandler: function (rs) {
|
||||
|
||||
if (rs.code == 0) {
|
||||
return rs.data;
|
||||
} else {
|
||||
parent.layer.alert(rs.msg)
|
||||
return {total: 0, rows: []};
|
||||
}
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
checkbox: true
|
||||
},
|
||||
{
|
||||
title: '序号',
|
||||
formatter: function () {
|
||||
return arguments[2] + 1;
|
||||
}
|
||||
},
|
||||
#foreach($column in $columns)
|
||||
#if($column.pageType == 2)
|
||||
{
|
||||
field: '${column.attrname}',
|
||||
title: '${column.columnLabel}',
|
||||
formatter: function (value, row, index) {
|
||||
return formatDict("${column.dictType}", value);
|
||||
}
|
||||
},
|
||||
#elseif($column.pageType == 7)
|
||||
{
|
||||
field: '${column.attrname}',
|
||||
title: '${column.columnLabel}',
|
||||
formatter: function (value, row, index) {
|
||||
return "<img width='100' height='100' src='" + value + "'>";
|
||||
}
|
||||
},
|
||||
#else
|
||||
{
|
||||
field: '${column.attrname}',
|
||||
title: '${column.columnLabel}'
|
||||
},
|
||||
|
||||
#end
|
||||
|
||||
#end
|
||||
{
|
||||
title: '操作',
|
||||
field: 'id',
|
||||
align: 'center',
|
||||
formatter: function (value, row, index) {
|
||||
var d = '<a class="btn btn-primary btn-sm ' + s_detail_h + '" href="#" mce_href="#" title="详情" onclick="detail(\''
|
||||
+ row.${pk.attrname}
|
||||
+ '\')"><i class="fa fa-file"></i></a> ';
|
||||
var e = '<a class="btn btn-primary btn-sm ' + s_edit_h + '" href="#" mce_href="#" title="编辑" onclick="edit(\''
|
||||
+ row.${pk.attrname}
|
||||
+ '\')"><i class="fa fa-edit"></i></a> ';
|
||||
var r = '<a class="btn btn-warning btn-sm ' + s_remove_h + '" href="#" title="删除" mce_href="#" onclick="remove(\''
|
||||
+ row.${pk.attrname}
|
||||
+ '\')"><i class="fa fa-remove"></i></a> ';
|
||||
return d + e + r;
|
||||
}
|
||||
}]
|
||||
});
|
||||
}
|
||||
function reLoad() {
|
||||
$('#exampleTable').bootstrapTable('refresh');
|
||||
}
|
||||
function add() {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '增加',
|
||||
maxmin: true,
|
||||
shadeClose: false, // 点击遮罩关闭层
|
||||
area: ['800px', '520px'],
|
||||
content: prefix + '/add' // iframe的url
|
||||
});
|
||||
}
|
||||
function detail(id) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '详情',
|
||||
maxmin: true,
|
||||
shadeClose: false, // 点击遮罩关闭层
|
||||
area: ['800px', '520px'],
|
||||
content: prefix + '/detail/' + id // iframe的url
|
||||
});
|
||||
}
|
||||
function edit(id) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '编辑',
|
||||
maxmin: true,
|
||||
shadeClose: false, // 点击遮罩关闭层
|
||||
area: ['800px', '520px'],
|
||||
content: prefix + '/edit/' + id // iframe的url
|
||||
});
|
||||
}
|
||||
function remove(id) {
|
||||
layer.confirm('确定要删除选中的记录?', {
|
||||
btn: ['确定', '取消']
|
||||
}, function () {
|
||||
$.ajax({
|
||||
url: prefix + "/remove",
|
||||
type: "post",
|
||||
data: {
|
||||
'${pk.attrname}': id
|
||||
},
|
||||
success: function (r) {
|
||||
if (r.code == 0) {
|
||||
layer.msg(r.msg);
|
||||
reLoad();
|
||||
} else {
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
function resetPwd(id) {
|
||||
}
|
||||
function batchRemove() {
|
||||
var rows = $('#exampleTable').bootstrapTable('getSelections'); // 返回所有选择的行,当没有选择的记录时,返回一个空数组
|
||||
if (rows.length == 0) {
|
||||
layer.msg("请选择要删除的数据");
|
||||
return;
|
||||
}
|
||||
layer.confirm("确认要删除选中的'" + rows.length + "'条数据吗?", {
|
||||
btn: ['确定', '取消']
|
||||
// 按钮
|
||||
}, function () {
|
||||
var ids = new Array();
|
||||
// 遍历所有选择的行数据,取每条数据对应的ID
|
||||
$.each(rows, function (i, row) {
|
||||
ids[i] = row['${pk.attrname}'];
|
||||
});
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
data: {
|
||||
"ids": ids
|
||||
},
|
||||
url: prefix + '/batchRemove',
|
||||
success: function (r) {
|
||||
if (r.code == 0) {
|
||||
layer.msg(r.msg);
|
||||
reLoad();
|
||||
} else {
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
}, function () {
|
||||
|
||||
});
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
-- 菜单SQL
|
||||
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
|
||||
VALUES ('1', '${comments}', '${pathName}/${classname}', '${pathName}:${classname}:${classname}', '1', 'fa', '6');
|
||||
|
||||
-- 按钮父菜单ID
|
||||
set @parentId = @@identity;
|
||||
|
||||
-- 菜单对应按钮SQL
|
||||
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
|
||||
SELECT @parentId, '查看', null, '${pathName}:${classname}:detail', '2', null, '6';
|
||||
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
|
||||
SELECT @parentId, '新增', null, '${pathName}:${classname}:add', '2', null, '6';
|
||||
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
|
||||
SELECT @parentId, '修改', null, '${pathName}:${classname}:edit', '2', null, '6';
|
||||
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
|
||||
SELECT @parentId, '删除', null, '${pathName}:${classname}:remove', '2', null, '6';
|
||||
INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
|
||||
SELECT @parentId, '批量删除', null, '${pathName}:${classname}:batchRemove', '2', null, '6';
|
40
novel-admin/src/main/resources/templates/common/log/log.html
Normal file
40
novel-admin/src/main/resources/templates/common/log/log.html
Normal file
@ -0,0 +1,40 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<button type="button" class="btn btn-danger"
|
||||
onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right" role="group">
|
||||
<button class="btn btn-success" onclick="reLoad()">
|
||||
<i class="fa fa-search" aria-hidden="true"></i>查询
|
||||
</button>
|
||||
</div>
|
||||
<div class="pull-right search col-md-2">
|
||||
<input id="searchOperation" type="text" class="form-control"
|
||||
placeholder="操作">
|
||||
</div>
|
||||
<div class="pull-right search col-md-2">
|
||||
<input id="searchUsername" type="text" class="form-control"
|
||||
placeholder="用户">
|
||||
</div>
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/common/log/log.js"></script>
|
||||
</body>
|
||||
</html>
|
34
novel-admin/src/main/resources/templates/error/403.html
Normal file
34
novel-admin/src/main/resources/templates/error/403.html
Normal file
@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>403 页面</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link href="/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
|
||||
<link href="/css/font-awesome.css?v=4.4.0" rel="stylesheet">
|
||||
<link href="/css/animate.css" rel="stylesheet">
|
||||
<link href="/css/style.css?v=4.1.0" rel="stylesheet">
|
||||
</head>
|
||||
<body class="gray-bg">
|
||||
<div class="middle-box text-center animated fadeInDown">
|
||||
<h1>403</h1>
|
||||
<h3 class="font-bold">您没有访问权限!</h3>
|
||||
<div class="error-desc">
|
||||
抱歉,请联系管理员哦~
|
||||
<form class="form-inline m-t" role="form">
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control"
|
||||
placeholder="请输入您需要查找的内容 …">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">搜索</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 全局js -->
|
||||
<script src="/js/jquery.min.js?v=2.1.4"></script>
|
||||
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
|
||||
</body>
|
||||
</html>
|
41
novel-admin/src/main/resources/templates/error/404.html
Normal file
41
novel-admin/src/main/resources/templates/error/404.html
Normal file
@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>404 页面</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
|
||||
<link rel="shortcut icon" href="favicon.ico"> <link href="/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
|
||||
<link href="/css/font-awesome.css?v=4.4.0" rel="stylesheet">
|
||||
|
||||
<link href="/css/animate.css" rel="stylesheet">
|
||||
<link href="/css/style.css?v=4.1.0" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<body class="gray-bg">
|
||||
<div class="middle-box text-center animated fadeInDown">
|
||||
<h1>404</h1>
|
||||
<h3 class="font-bold">页面未找到!</h3>
|
||||
|
||||
<div class="error-desc">
|
||||
抱歉,页面好像去火星了~
|
||||
<form class="form-inline m-t" role="form">
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control" placeholder="请输入您需要查找的内容 …">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">搜索</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 全局js -->
|
||||
<script src="/js/jquery.min.js?v=2.1.4"></script>
|
||||
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
43
novel-admin/src/main/resources/templates/error/500.html
Normal file
43
novel-admin/src/main/resources/templates/error/500.html
Normal file
@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title>500错误</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
|
||||
<link rel="shortcut icon" href="favicon.ico"> <link href="/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
|
||||
<link href="/css/font-awesome.css?v=4.4.0" rel="stylesheet">
|
||||
|
||||
<link href="/css/animate.css" rel="stylesheet">
|
||||
<link href="/css/style.css?v=4.1.0" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<body class="gray-bg">
|
||||
|
||||
|
||||
<div class="middle-box text-center animated fadeInDown">
|
||||
<h1>500</h1>
|
||||
<h3 class="font-bold">服务器内部错误</h3>
|
||||
|
||||
<div class="error-desc">
|
||||
服务器好像出错了...
|
||||
<br/>您可以返回主页看看
|
||||
<br/><a href="/" class="btn btn-primary m-t">主页</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 全局js -->
|
||||
<script src="/js/jquery.min.js?v=2.1.4"></script>
|
||||
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
30
novel-admin/src/main/resources/templates/error/error.html
Normal file
30
novel-admin/src/main/resources/templates/error/error.html
Normal file
@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>500错误</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
<link rel="shortcut icon" href="favicon.ico"> <link href="/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
|
||||
<link href="/css/font-awesome.css?v=4.4.0" rel="stylesheet">
|
||||
<link href="/css/animate.css" rel="stylesheet">
|
||||
<link href="/css/style.css?v=4.1.0" rel="stylesheet">
|
||||
</head>
|
||||
<body class="gray-bg">
|
||||
<div class="middle-box text-center animated fadeInDown">
|
||||
<h1>500</h1>
|
||||
<h3 class="font-bold">服务器内部错误</h3>
|
||||
<div class="error-desc">
|
||||
服务器好像出错了...<br/>
|
||||
您可以返回主页看看<br/>
|
||||
<div th:text="${exception}"></div>
|
||||
<div th:text="${url}"></div>
|
||||
<a href="/" class="btn btn-primary m-t">主页</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 全局js -->
|
||||
<script src="/js/jquery.min.js?v=2.1.4"></script>
|
||||
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
|
||||
</body>
|
||||
</html>
|
50
novel-admin/src/main/resources/templates/include.html
Normal file
50
novel-admin/src/main/resources/templates/include.html
Normal file
@ -0,0 +1,50 @@
|
||||
<head th:fragment="header">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title></title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link href="css/bootstrap.min.css?v=3.3.6"
|
||||
th:href="@{/css/bootstrap.min.css?v=3.3.6}" rel="stylesheet">
|
||||
<link href="/css/font-awesome.css?v=4.4.0"
|
||||
th:href="@{/css/font-awesome.css?v=4.4.0}" rel="stylesheet">
|
||||
<link href="/css/plugins/bootstrap-table/bootstrap-table.min.css"
|
||||
th:href="@{/css/plugins/bootstrap-table/bootstrap-table.min.css}"
|
||||
rel="stylesheet">
|
||||
<link href="/css/plugins/jsTree/style.min.css" rel="stylesheet">
|
||||
<link href="/css/plugins/jqTreeGrid/jquery.treegrid.css"
|
||||
rel="stylesheet">
|
||||
<link href="css/animate.css" th:href="@{/css/animate.css}"
|
||||
rel="stylesheet">
|
||||
<link href="/css/plugins/chosen/chosen.css" rel="stylesheet">
|
||||
<link href="/css/style.css?v=4.1.0" th:href="@{/css/style.css?v=4.1.0}"
|
||||
rel="stylesheet">
|
||||
<link rel="stylesheet" href="/js/plugins/layer/laydate/skins/default/laydate.css" />
|
||||
<link href="/css/layui.css" rel="stylesheet">
|
||||
</head>
|
||||
<div th:fragment="footer">
|
||||
<script src="/js/jquery.min.js?v=2.1.4"></script>
|
||||
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
|
||||
<script src="/js/plugins/bootstrap-table/bootstrap-table.js"></script>
|
||||
<script src="/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
|
||||
<script
|
||||
src="/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
|
||||
<script src="/js/plugins/validate/jquery.validate.min.js"></script>
|
||||
<script src="/js/plugins/validate/messages_zh.min.js"></script>
|
||||
<script src="/js/plugins/jsTree/jstree.min.js"></script>
|
||||
<script src="/js/plugins/jqTreeGrid/jquery.treegrid.min.js"></script>
|
||||
<script src="/js/plugins/jqTreeGrid/jquery.treegrid.extension.js"></script>
|
||||
<script src="/js/plugins/jqTreeGrid/jquery.treegrid.bootstrap3.js"></script>
|
||||
<script src="/js/plugins/chosen/chosen.jquery.js"></script>
|
||||
<script src="/js/plugins/layer/layer.js"></script>
|
||||
<script src="/js/common.js"/>
|
||||
<!--summernote-->
|
||||
<script src="/js/plugins/summernote/summernote.js"></script>
|
||||
<!--<script src="/js/plugins/summernote/summernote-zh-CN.min.js"></script>-->
|
||||
<script type="text/javascript" src="/js/plugins/layer/laydate/laydate.js" ></script>
|
||||
<script src="/js/layui.js"></script>
|
||||
<script type="text/javascript" src="/js/dict-util.js"></script>
|
||||
|
||||
|
||||
</div>
|
302
novel-admin/src/main/resources/templates/index.html
Normal file
302
novel-admin/src/main/resources/templates/index.html
Normal file
@ -0,0 +1,302 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="renderer" content="webkit">
|
||||
<title>小说精品屋通用后台权限管理系统</title>
|
||||
<meta name="keywords" content="小说精品屋后台管理系统">
|
||||
<meta name="description" content="小说精品屋后台管理系统">
|
||||
<!--[if lt IE 9]>
|
||||
<meta http-equiv="refresh" content="0;ie.html"/>
|
||||
<![endif]-->
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link href="/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
|
||||
<link href="/css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
|
||||
<link href="/css/plugins/toastr/toastr.min.css" rel="stylesheet">
|
||||
<link href="/css/animate.css" rel="stylesheet">
|
||||
<link href="/css/style.css?v=4.1.0" rel="stylesheet">
|
||||
</head>
|
||||
<body class="fixed-sidebar full-height-layout gray-bg"
|
||||
style="overflow: hidden">
|
||||
<div id="wrapper">
|
||||
<!--左侧导航开始-->
|
||||
<nav class="navbar-default navbar-static-side" role="navigation">
|
||||
<div class="nav-close">
|
||||
<i class="fa fa-times-circle"></i>
|
||||
</div>
|
||||
<div class="sidebar-collapse">
|
||||
<ul class="nav" id="side-menu">
|
||||
<li class="nav-header">
|
||||
<div>
|
||||
<span><img alt="image" class="img-circle" height="60" width="60" th:src="${picUrl}"/></span>
|
||||
<h3 th:text="${name}" class="" style="color: #ffffff">
|
||||
小说精品屋后台管理系统
|
||||
</h3>
|
||||
</div>
|
||||
</li>
|
||||
<li th:each="menu : ${menus}"><a href="#"> <i
|
||||
class="fa fa fa-bar-chart-o" th:class="${menu.attributes.icon}"></i>
|
||||
<span class="nav-label" th:text="${menu.text}">基础信息</span> <span
|
||||
class="fa arrow"></span>
|
||||
</a>
|
||||
<ul class="nav nav-second-level">
|
||||
<li th:each="cmenu : ${menu.children}"><a class="J_menuItem" href="graph_echarts.html"
|
||||
th:text="${cmenu.text}"
|
||||
th:href="${cmenu.attributes.url}">系统管理</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<!--左侧导航结束-->
|
||||
<!--右侧部分开始-->
|
||||
<div id="page-wrapper" class="gray-bg dashbard-1">
|
||||
<div class="row border-bottom">
|
||||
<nav class="navbar navbar-static-top" role="navigation"
|
||||
style="margin-bottom: 0">
|
||||
<div class="navbar-header">
|
||||
|
||||
<a class="navbar-minimalize minimalize-styl-2 btn btn-default "
|
||||
href="#" title="收起菜单"><i class="fa fa-bars"></i> </a>
|
||||
<!--<form role="search" class="navbar-form-custom"
|
||||
method="post" action="">
|
||||
<div class="form-group">
|
||||
<input type="text" placeholder="请输入您需要查找的内容 …"
|
||||
class="form-control" name="top-search" id="top-search">
|
||||
</div>
|
||||
</form>-->
|
||||
</div>
|
||||
<ul class="nav navbar-top-links navbar-right">
|
||||
<!--<li class="dropdown"><a class="dropdown-toggle count-info"
|
||||
data-toggle="dropdown" href="#"> <i class="fa fa-envelope"></i>
|
||||
<span class="label label-warning">{{total}}</span>通知
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-messages">
|
||||
<li v-for="row in rows" class="m-t-xs">
|
||||
<div class="dropdown-messages-box">
|
||||
<a class="pull-left"> <i
|
||||
class="fa fa-server"></i>
|
||||
</a>
|
||||
<div class="media-body">
|
||||
<small class="pull-right">{{row.before}}</small>
|
||||
<strong>{{row.sender}}</strong>
|
||||
{{row.title}} <br>
|
||||
<small class="text-muted">{{row.updateDate}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="text-center link-block">
|
||||
<a class="J_menuItem" href="/oa/notify/selfNotify"> <i
|
||||
class="fa fa-envelope"></i> <strong> 查看所有消息</strong>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>-->
|
||||
<li class="hidden-xs"><a @click="personal" href="#" ><i class="fa fa-id-card"></i> 个人</a></li>
|
||||
<!-- <li class="dropdown hidden-xs"><a
|
||||
class="right-sidebar-toggle" aria-expanded="false"> <i
|
||||
class="fa fa-tasks"></i> 主题
|
||||
</a></li>-->
|
||||
<li class="hidden-xs"><a href="/logout"
|
||||
> <i
|
||||
class="fa fa-sign-out"></i> 退出
|
||||
</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="row content-tabs">
|
||||
<button class="roll-nav roll-left J_tabLeft">
|
||||
<i class="fa fa-backward"></i>
|
||||
</button>
|
||||
<nav class="page-tabs J_menuTabs">
|
||||
<div class="page-tabs-content">
|
||||
<a href="javascript:;" class="active J_menuTab"
|
||||
data-id="index_v1.html">首页</a>
|
||||
</div>
|
||||
</nav>
|
||||
<button style="right: 80px" class="roll-nav roll-right J_tabRight">
|
||||
<i class="fa fa-forward"></i>
|
||||
</button>
|
||||
<div style="right: 0px" class="btn-group roll-nav roll-right">
|
||||
<button class="dropdown J_tabClose" data-toggle="dropdown">
|
||||
关闭操作<span class="caret"></span>
|
||||
</button>
|
||||
<ul role="menu" class="dropdown-menu dropdown-menu-right">
|
||||
<li class="J_tabShowActive"><a>定位当前选项卡</a></li>
|
||||
<li class="divider"></li>
|
||||
<li class="J_tabCloseAll"><a>关闭全部选项卡</a></li>
|
||||
<li class="J_tabCloseOther"><a>关闭其他选项卡</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row J_mainContent" id="content-main">
|
||||
<iframe class="J_iframe" name="iframe0" width="100%" height="100%"
|
||||
src="" th:src="@{/main}" frameborder="0" data-id="index_v1.html"
|
||||
seamless></iframe>
|
||||
</div>
|
||||
<div class="footer" style="text-align: center">
|
||||
小说精品屋后台管理系统
|
||||
</div>
|
||||
</div>
|
||||
<!--右侧部分结束-->
|
||||
<!--右侧边栏开始-->
|
||||
<div id="right-sidebar">
|
||||
<div class="sidebar-container">
|
||||
<ul class="nav nav-tabs navs-3">
|
||||
|
||||
<li class="active"><a data-toggle="tab" href="#tab-1"> <i
|
||||
class="fa fa-gear"></i> 主题
|
||||
</a></li>
|
||||
<li class=""><a data-toggle="tab" href="#tab-2"> 通知 </a></li>
|
||||
<li><a data-toggle="tab" href="#tab-3"> 项目进度 </a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div id="tab-1" class="tab-pane active">
|
||||
<div class="sidebar-title">
|
||||
<h3>
|
||||
<i class="fa fa-comments-o"></i> 主题设置
|
||||
</h3>
|
||||
<small><i class="fa fa-tim"></i>
|
||||
你可以从这里选择和预览主题的布局和样式,这些设置会被保存在本地,下次打开的时候会直接应用这些设置。
|
||||
</small>
|
||||
</div>
|
||||
<div class="skin-setttings">
|
||||
<div class="title">主题设置</div>
|
||||
<div class="setings-item">
|
||||
<span>收起左侧菜单</span>
|
||||
<div class="switch">
|
||||
<div class="onoffswitch">
|
||||
<input type="checkbox" name="collapsemenu"
|
||||
class="onoffswitch-checkbox" id="collapsemenu"> <label
|
||||
class="onoffswitch-label" for="collapsemenu"> <span
|
||||
class="onoffswitch-inner"></span> <span
|
||||
class="onoffswitch-switch"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setings-item">
|
||||
<span>固定顶部</span>
|
||||
|
||||
<div class="switch">
|
||||
<div class="onoffswitch">
|
||||
<input type="checkbox" name="fixednavbar"
|
||||
class="onoffswitch-checkbox" id="fixednavbar"> <label
|
||||
class="onoffswitch-label" for="fixednavbar"> <span
|
||||
class="onoffswitch-inner"></span> <span
|
||||
class="onoffswitch-switch"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setings-item">
|
||||
<span> 固定宽度 </span>
|
||||
<div class="switch">
|
||||
<div class="onoffswitch">
|
||||
<input type="checkbox" name="boxedlayout"
|
||||
class="onoffswitch-checkbox" id="boxedlayout"> <label
|
||||
class="onoffswitch-label" for="boxedlayout"> <span
|
||||
class="onoffswitch-inner"></span> <span
|
||||
class="onoffswitch-switch"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="title">皮肤选择</div>
|
||||
<div class="setings-item default-skin nb">
|
||||
<span class="skin-name "> <a href="#" class="s-skin-0">
|
||||
默认皮肤 </a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="setings-item blue-skin nb">
|
||||
<span class="skin-name "> <a href="#" class="s-skin-1">
|
||||
蓝色主题 </a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="setings-item yellow-skin nb">
|
||||
<span class="skin-name "> <a href="#" class="s-skin-3">
|
||||
黄色/紫色主题 </a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="tab-2" class="tab-pane">
|
||||
|
||||
<div class="sidebar-title">
|
||||
<h3>
|
||||
<i class="fa fa-comments-o"></i> 最新通知
|
||||
</h3>
|
||||
<small><i class="fa fa-tim"></i> 您当前有10条未读信息</small>
|
||||
</div>
|
||||
</div>
|
||||
<div id="tab-3" class="tab-pane">
|
||||
|
||||
<div class="sidebar-title">
|
||||
<h3>
|
||||
<i class="fa fa-cube"></i> 最新任务
|
||||
</h3>
|
||||
<small><i class="fa fa-tim"></i> 您当前有14个任务,10个已完成</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 全局js -->
|
||||
<script src="/js/jquery.min.js?v=2.1.4"></script>
|
||||
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
|
||||
<script src="/js/plugins/metisMenu/jquery.metisMenu.js"></script>
|
||||
<script src="/js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
|
||||
<script src="/js/plugins/layer/layer.min.js"></script>
|
||||
<!-- 自定义js -->
|
||||
<script src="/js/app.js?v=4.1.0"></script>
|
||||
<script type="text/javascript" src="/js/contabs.js"></script>
|
||||
<!-- 第三方插件 -->
|
||||
<script src="/js/plugins/pace/pace.min.js"></script>
|
||||
<!-- vue -->
|
||||
<script type="text/javascript"
|
||||
src="/js/vue.min.js">
|
||||
|
||||
</script>
|
||||
<!-- Toastr script -->
|
||||
<script src="/js/plugins/toastr/toastr.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
var dictList = [];//全局页面操作对象,请将常用数据挂载在这个对象
|
||||
$.ajax({
|
||||
url : '/common/dict/list',
|
||||
data: {'limit':1000,'offset':0},
|
||||
success : function(data) {
|
||||
dictList = data.rows;
|
||||
}
|
||||
});
|
||||
|
||||
var wrapper = new Vue({
|
||||
el: '#wrapper',
|
||||
data: {
|
||||
total: '',
|
||||
rows: '',
|
||||
},
|
||||
methods: {
|
||||
personal: function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '个人设置',
|
||||
maxmin: true,
|
||||
shadeClose: false,
|
||||
area: ['800px', '600px'],
|
||||
content: '/sys/user/personal'
|
||||
});
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
}
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
129
novel-admin/src/main/resources/templates/login.html
Normal file
129
novel-admin/src/main/resources/templates/login.html
Normal file
@ -0,0 +1,129 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>后台管理-登陆</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta http-equiv="Access-Control-Allow-Origin" content="*">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<link rel="stylesheet" href="/layuimini/lib/layui-v2.5.4/css/layui.css" media="all">
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
|
||||
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<style>
|
||||
html, body {width: 100%;height: 100%;overflow: hidden}
|
||||
body {background: #009688;}
|
||||
body:after {content:'';background-repeat:no-repeat;background-size:cover;-webkit-filter:blur(3px);-moz-filter:blur(3px);-o-filter:blur(3px);-ms-filter:blur(3px);filter:blur(3px);position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;}
|
||||
.layui-container {width: 100%;height: 100%;overflow: hidden}
|
||||
.admin-login-background {width:360px;height:300px;position:absolute;left:50%;top:40%;margin-left:-180px;margin-top:-100px;}
|
||||
.logo-title {text-align:center;letter-spacing:2px;padding:14px 0;}
|
||||
.logo-title h1 {color:#009688;font-size:25px;font-weight:bold;}
|
||||
.login-form {background-color:#fff;border:1px solid #fff;border-radius:3px;padding:14px 20px;box-shadow:0 0 8px #eeeeee;}
|
||||
.login-form .layui-form-item {position:relative;}
|
||||
.login-form .layui-form-item label {position:absolute;left:1px;top:1px;width:38px;line-height:36px;text-align:center;color:#d2d2d2;}
|
||||
.login-form .layui-form-item input {padding-left:36px;}
|
||||
.captcha {width:60%;display:inline-block;}
|
||||
.captcha-img {display:inline-block;width:34%;float:right;}
|
||||
.captcha-img img {height:34px;border:1px solid #e6e6e6;height:36px;width:100%;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-container">
|
||||
<div class="admin-login-background">
|
||||
<div class="layui-form login-form">
|
||||
<form id="signupForm" class="layui-form" action="">
|
||||
<div class="layui-form-item logo-title">
|
||||
<h1>小说精品屋后台登录</h1>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-icon layui-icon-username" for="username"></label>
|
||||
<input type="text" name="username" placeholder="用户名或者邮箱" autocomplete="off" class="layui-input" >
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-icon layui-icon-password" for="password"></label>
|
||||
<input type="password" name="password" placeholder="密码" autocomplete="off" class="layui-input" >
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-icon layui-icon-vercode" for="captcha"></label>
|
||||
<input type="text" name="verify" id="verify" placeholder="图形验证码" autocomplete="off" class="layui-input verification captcha">
|
||||
<div class="captcha-img">
|
||||
<a href="javascript:void(0);" rel="external nofollow" title="点击更换验证码">
|
||||
<img id="imgVerify" src="" alt="更换验证码" onclick="getVerify(this);">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="layui-form-item">
|
||||
<input type="checkbox" name="rememberMe" value="true" lay-skin="primary" title="记住密码">
|
||||
</div>-->
|
||||
<div class="layui-form-item">
|
||||
<button id="login" class="layui-btn layui-btn-fluid" lay-submit="" lay-filter="login">登 录</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/layuimini/lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
|
||||
<script src="/layuimini/lib/layui-v2.5.4/layui.js" charset="utf-8"></script>
|
||||
<script src="/layuimini/lib/jq-module/jquery.particleground.min.js" charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
$("#imgVerify").click()
|
||||
layui.use(['form'], function () {
|
||||
var form = layui.form,
|
||||
layer = layui.layer;
|
||||
|
||||
// 登录过期的时候,跳出ifram框架
|
||||
if (top.location != self.location) top.location = self.location;
|
||||
|
||||
// 粒子线条背景
|
||||
$(document).ready(function(){
|
||||
$('.layui-container').particleground({
|
||||
dotColor:'#5cbdaa',
|
||||
lineColor:'#5cbdaa'
|
||||
});
|
||||
});
|
||||
|
||||
// 进行登录操作
|
||||
form.on('submit(login)', function (data) {
|
||||
data = data.field;
|
||||
if (data.username == '') {
|
||||
layer.msg('用户名不能为空');
|
||||
return false;
|
||||
}
|
||||
if (data.password == '') {
|
||||
layer.msg('密码不能为空');
|
||||
return false;
|
||||
}
|
||||
if (data.verify == '') {
|
||||
layer.msg('验证码不能为空');
|
||||
return false;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/login",
|
||||
data: $('#signupForm').serialize(),
|
||||
success: function (r) {
|
||||
if (r.code == 0) {
|
||||
parent.location.href = '/index';
|
||||
} else {
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
},
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
//获取验证码
|
||||
function getVerify(obj) {
|
||||
obj.src = "/getVerify?" + Math.random();
|
||||
console.log(obj)
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
454
novel-admin/src/main/resources/templates/main.html
Normal file
454
novel-admin/src/main/resources/templates/main.html
Normal file
@ -0,0 +1,454 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>首页</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="/layuimini/lib/layui-v2.5.4/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="/layuimini/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
|
||||
<link rel="stylesheet" href="/layuimini/css/public.css" media="all">
|
||||
<style>
|
||||
.layui-card {border:1px solid #f2f2f2;border-radius:5px;}
|
||||
.icon {margin-right:10px;color:#1aa094;}
|
||||
.icon-cray {color:#ffb800!important;}
|
||||
.icon-blue {color:#1e9fff!important;}
|
||||
.icon-tip {color:#ff5722!important;}
|
||||
.layuimini-qiuck-module {text-align:center;margin-top: 10px}
|
||||
.layuimini-qiuck-module a i {display:inline-block;width:100%;height:60px;line-height:60px;text-align:center;border-radius:2px;font-size:30px;background-color:#F8F8F8;color:#333;transition:all .3s;-webkit-transition:all .3s;}
|
||||
.layuimini-qiuck-module a cite {position:relative;top:2px;display:block;color:#666;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:14px;}
|
||||
.welcome-module {width:100%;height:210px;}
|
||||
.panel {background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}
|
||||
.panel-body {padding:10px}
|
||||
.panel-title {margin-top:0;margin-bottom:0;font-size:12px;color:inherit}
|
||||
.label {display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;margin-top: .3em;}
|
||||
.layui-red {color:red}
|
||||
.main_btn > p {height:40px;}
|
||||
.layui-bg-number {background-color:#F8F8F8;}
|
||||
.layuimini-notice:hover {background:#f6f6f6;}
|
||||
.layuimini-notice {padding:7px 16px;clear:both;font-size:12px !important;cursor:pointer;position:relative;transition:background 0.2s ease-in-out;}
|
||||
.layuimini-notice-title,.layuimini-notice-label {
|
||||
padding-right: 70px !important;text-overflow:ellipsis!important;overflow:hidden!important;white-space:nowrap!important;}
|
||||
.layuimini-notice-title {line-height:28px;font-size:14px;}
|
||||
.layuimini-notice-extra {position:absolute;top:50%;margin-top:-8px;right:16px;display:inline-block;height:16px;color:#999;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md8">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header"><i class="fa fa-warning icon"></i>数据统计</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="welcome-module">
|
||||
<div class="layui-row layui-col-space10">
|
||||
<div class="layui-col-xs6">
|
||||
<div class="panel layui-bg-number">
|
||||
<div class="panel-body">
|
||||
<div class="panel-title">
|
||||
<span class="label pull-right layui-bg-blue">实时</span>
|
||||
<h5>用户统计</h5>
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
<h1 class="no-margins">1234</h1>
|
||||
<small>当前分类总记录数</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
<div class="panel layui-bg-number">
|
||||
<div class="panel-body">
|
||||
<div class="panel-title">
|
||||
<span class="label pull-right layui-bg-cyan">实时</span>
|
||||
<h5>商品统计</h5>
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
<h1 class="no-margins">1234</h1>
|
||||
<small>当前分类总记录数</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
<div class="panel layui-bg-number">
|
||||
<div class="panel-body">
|
||||
<div class="panel-title">
|
||||
<span class="label pull-right layui-bg-orange">实时</span>
|
||||
<h5>浏览统计</h5>
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
<h1 class="no-margins">1234</h1>
|
||||
<small>当前分类总记录数</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
<div class="panel layui-bg-number">
|
||||
<div class="panel-body">
|
||||
<div class="panel-title">
|
||||
<span class="label pull-right layui-bg-green">实时</span>
|
||||
<h5>订单统计</h5>
|
||||
</div>
|
||||
<div class="panel-content">
|
||||
<h1 class="no-margins">1234</h1>
|
||||
<small>当前分类总记录数</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header"><i class="fa fa-credit-card icon icon-blue"></i>快捷入口</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="welcome-module">
|
||||
<div class="layui-row layui-col-space10 layuimini-qiuck">
|
||||
<div class="layui-col-xs3 layuimini-qiuck-module">
|
||||
<a href="javascript:;" data-iframe-tab="page/menu.html" data-title="菜单管理" data-icon="fa fa-window-maximize">
|
||||
<i class="fa fa-window-maximize"></i>
|
||||
<cite>菜单管理</cite>
|
||||
</a>
|
||||
</div>
|
||||
<div class="layui-col-xs3 layuimini-qiuck-module">
|
||||
<a href="javascript:;" data-iframe-tab="page/setting.html" data-title="系统设置" data-icon="fa fa-gears">
|
||||
<i class="fa fa-gears"></i>
|
||||
<cite>系统设置</cite>
|
||||
</a>
|
||||
</div>
|
||||
<div class="layui-col-xs3 layuimini-qiuck-module">
|
||||
<a href="javascript:;" data-iframe-tab="page/table.html" data-title="表格示例" data-icon="fa fa-file-text">
|
||||
<i class="fa fa-file-text"></i>
|
||||
<cite>表格示例</cite>
|
||||
</a>
|
||||
</div>
|
||||
<div class="layui-col-xs3 layuimini-qiuck-module">
|
||||
<a href="javascript:;" data-iframe-tab="page/icon.html" data-title="图标列表" data-icon="fa fa-dot-circle-o">
|
||||
<i class="fa fa-dot-circle-o"></i>
|
||||
<cite>图标列表</cite>
|
||||
</a>
|
||||
</div>
|
||||
<div class="layui-col-xs3 layuimini-qiuck-module">
|
||||
<a href="javascript:;" data-iframe-tab="page/form.html" data-title="表单示例" data-icon="fa fa-calendar">
|
||||
<i class="fa fa-calendar"></i>
|
||||
<cite>表单示例</cite>
|
||||
</a>
|
||||
</div>
|
||||
<div class="layui-col-xs3 layuimini-qiuck-module">
|
||||
<a href="javascript:;" data-iframe-tab="page/404.html" data-title="404页面" data-icon="fa fa-hourglass-end">
|
||||
<i class="fa fa-hourglass-end"></i>
|
||||
<cite>404页面</cite>
|
||||
</a>
|
||||
</div>
|
||||
<div class="layui-col-xs3 layuimini-qiuck-module">
|
||||
<a href="javascript:;" data-iframe-tab="page/button.html" data-title="按钮示例" data-icon="fa fa-snowflake-o">
|
||||
<i class="fa fa-snowflake-o"></i>
|
||||
<cite>按钮示例</cite>
|
||||
</a>
|
||||
</div>
|
||||
<div class="layui-col-xs3 layuimini-qiuck-module">
|
||||
<a href="javascript:;" data-iframe-tab="page/layer.html" data-title="弹出层" data-icon="fa fa-shield">
|
||||
<i class="fa fa-shield"></i>
|
||||
<cite>弹出层</cite>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header"><i class="fa fa-line-chart icon"></i>报表统计</div>
|
||||
<div class="layui-card-body">
|
||||
<div id="echarts-records" style="width: 100%;min-height:500px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-col-md4">
|
||||
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header"><i class="fa fa-bullhorn icon icon-tip"></i>系统公告</div>
|
||||
<div class="layui-card-body layui-text">
|
||||
<div class="layuimini-notice">
|
||||
<div class="layuimini-notice-title">修改选项卡样式</div>
|
||||
<div class="layuimini-notice-extra">2019-07-11 23:06</div>
|
||||
<div class="layuimini-notice-content layui-hide">
|
||||
界面足够简洁清爽。<br>
|
||||
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
|
||||
支持多tab,可以打开多窗口。<br>
|
||||
支持无限级菜单和对font-awesome图标库的完美支持。<br>
|
||||
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
|
||||
url地址hash定位,可以清楚看到当前tab的地址信息。<br>
|
||||
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
|
||||
移动端的友好支持。<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layuimini-notice">
|
||||
<div class="layuimini-notice-title">新增系统404模板</div>
|
||||
<div class="layuimini-notice-extra">2019-07-11 12:57</div>
|
||||
<div class="layuimini-notice-content layui-hide">
|
||||
界面足够简洁清爽。<br>
|
||||
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
|
||||
支持多tab,可以打开多窗口。<br>
|
||||
支持无限级菜单和对font-awesome图标库的完美支持。<br>
|
||||
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
|
||||
url地址hash定位,可以清楚看到当前tab的地址信息。<br>
|
||||
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
|
||||
移动端的友好支持。<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layuimini-notice">
|
||||
<div class="layuimini-notice-title">新增treetable插件和菜单管理样式</div>
|
||||
<div class="layuimini-notice-extra">2019-07-05 14:28</div>
|
||||
<div class="layuimini-notice-content layui-hide">
|
||||
界面足够简洁清爽。<br>
|
||||
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
|
||||
支持多tab,可以打开多窗口。<br>
|
||||
支持无限级菜单和对font-awesome图标库的完美支持。<br>
|
||||
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
|
||||
url地址hash定位,可以清楚看到当前tab的地址信息。<br>
|
||||
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
|
||||
移动端的友好支持。<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layuimini-notice">
|
||||
<div class="layuimini-notice-title">修改logo缩放问题</div>
|
||||
<div class="layuimini-notice-extra">2019-07-04 11:02</div>
|
||||
<div class="layuimini-notice-content layui-hide">
|
||||
界面足够简洁清爽。<br>
|
||||
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
|
||||
支持多tab,可以打开多窗口。<br>
|
||||
支持无限级菜单和对font-awesome图标库的完美支持。<br>
|
||||
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
|
||||
url地址hash定位,可以清楚看到当前tab的地址信息。<br>
|
||||
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
|
||||
移动端的友好支持。<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layuimini-notice">
|
||||
<div class="layuimini-notice-title">修复左侧菜单缩放tab无法移动</div>
|
||||
<div class="layuimini-notice-extra">2019-06-17 11:55</div>
|
||||
<div class="layuimini-notice-content layui-hide">
|
||||
界面足够简洁清爽。<br>
|
||||
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
|
||||
支持多tab,可以打开多窗口。<br>
|
||||
支持无限级菜单和对font-awesome图标库的完美支持。<br>
|
||||
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
|
||||
url地址hash定位,可以清楚看到当前tab的地址信息。<br>
|
||||
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
|
||||
移动端的友好支持。<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layuimini-notice">
|
||||
<div class="layuimini-notice-title">修复多模块菜单栏展开有问题</div>
|
||||
<div class="layuimini-notice-extra">2019-06-13 14:53</div>
|
||||
<div class="layuimini-notice-content layui-hide">
|
||||
界面足够简洁清爽。<br>
|
||||
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
|
||||
支持多tab,可以打开多窗口。<br>
|
||||
支持无限级菜单和对font-awesome图标库的完美支持。<br>
|
||||
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
|
||||
url地址hash定位,可以清楚看到当前tab的地址信息。<br>
|
||||
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
|
||||
移动端的友好支持。<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header"><i class="fa fa-fire icon"></i>版本信息</div>
|
||||
<div class="layui-card-body layui-text">
|
||||
<table class="layui-table">
|
||||
<colgroup>
|
||||
<col width="100">
|
||||
<col>
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>框架名称</td>
|
||||
<td>
|
||||
小说精品屋
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>开发语言</td>
|
||||
<td>Java</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>主要特色</td>
|
||||
<td>零门槛 / 响应式 / 清爽 / 极简</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>演示地址</td>
|
||||
<td>
|
||||
<a href="http://www.java2nb.com/" target="_blank">点击查看</a><br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>下载地址</td>
|
||||
<td>
|
||||
<a href="https://gitee.com/xiongxyang/fiction_house" target="_blank">Gitee</a> /
|
||||
<a href="https://github.com/201206030/fiction_house" target="_blank">Github</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gitee</td>
|
||||
<td style="padding-bottom: 0;">
|
||||
<div class="layui-btn-container">
|
||||
<a href='https://gitee.com/xiongxyang/fiction_house/stargazers'><img src='https://gitee.com/xiongxyang/fiction_house/badge/star.svg?theme=dark' alt='star'></img></a>
|
||||
<a href='https://gitee.com/xiongxyang/fiction_house/members'><img src='https://gitee.com/xiongxyang/fiction_house/badge/fork.svg?theme=dark' alt='fork'></img></a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Github</td>
|
||||
<td style="padding-bottom: 0;">
|
||||
<div class="layui-btn-container">
|
||||
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=fiction_house&type=star&count=true" frameborder="0" scrolling="0" width="100px" height="20px"></iframe>
|
||||
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=fiction_house&type=fork&count=true" frameborder="0" scrolling="0" width="100px" height="20px"></iframe>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header"><i class="fa fa-paper-plane-o icon"></i>作者心语</div>
|
||||
<div class="layui-card-body layui-text layadmin-text">
|
||||
<p>本系统使用springboot+mybatis+redis+thymeleaf+mysql等技术进行实现。</p>
|
||||
<p>技术交流QQ群(345291517)(加群请备注来源:如gitee、github、官网等)</p>
|
||||
<p>喜欢此系统的可以给我的GitHub和Gitee加个Star支持一下</p>
|
||||
<p class="layui-red">备注:此后台框架永久开源,但请勿进行出售或者上传到任何素材网站,否则将追究相应的责任。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/layuimini/lib/layui-v2.5.4/layui.js" charset="utf-8"></script>
|
||||
<script src="/layuimini/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
|
||||
<script>
|
||||
layui.use(['layer', 'layuimini','echarts'], function () {
|
||||
var $ = layui.jquery,
|
||||
layer = layui.layer,
|
||||
layuimini = layui.layuimini,
|
||||
echarts = layui.echarts;
|
||||
|
||||
/**
|
||||
* 查看公告信息
|
||||
**/
|
||||
$('body').on('click', '.layuimini-notice', function () {
|
||||
var title = $(this).children('.layuimini-notice-title').text(),
|
||||
noticeTime = $(this).children('.layuimini-notice-extra').text(),
|
||||
content = $(this).children('.layuimini-notice-content').html();
|
||||
var html = '<div style="padding:15px 20px; text-align:justify; line-height: 22px;border-bottom:1px solid #e2e2e2;background-color: #2f4056;color: #ffffff">\n' +
|
||||
'<div style="text-align: center;margin-bottom: 20px;font-weight: bold;border-bottom:1px solid #718fb5;padding-bottom: 5px"><h4 class="text-danger">' + title + '</h4></div>\n' +
|
||||
'<div style="font-size: 12px">' + content + '</div>\n' +
|
||||
'</div>\n';
|
||||
parent.layer.open({
|
||||
type: 1,
|
||||
title: '系统公告'+'<span style="float: right;right: 1px;font-size: 12px;color: #b1b3b9;margin-top: 1px">'+noticeTime+'</span>',
|
||||
area: '300px;',
|
||||
shade: 0.8,
|
||||
id: 'layuimini-notice',
|
||||
btn: ['查看', '取消'],
|
||||
btnAlign: 'c',
|
||||
moveType: 1,
|
||||
content:html,
|
||||
success: function (layero) {
|
||||
var btn = layero.find('.layui-layer-btn');
|
||||
btn.find('.layui-layer-btn0').attr({
|
||||
href: 'https://gitee.com/zhongshaofa/layuimini',
|
||||
target: '_blank'
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 报表功能
|
||||
*/
|
||||
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
|
||||
var optionRecords = {
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎']
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
toolbox: {
|
||||
feature: {
|
||||
saveAsImage: {}
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: ['周一','周二','周三','周四','周五','周六','周日']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name:'邮件营销',
|
||||
type:'line',
|
||||
data:[120, 132, 101, 134, 90, 230, 210]
|
||||
},
|
||||
{
|
||||
name:'联盟广告',
|
||||
type:'line',
|
||||
data:[220, 182, 191, 234, 290, 330, 310]
|
||||
},
|
||||
{
|
||||
name:'视频广告',
|
||||
type:'line',
|
||||
data:[150, 232, 201, 154, 190, 330, 410]
|
||||
},
|
||||
{
|
||||
name:'直接访问',
|
||||
type:'line',
|
||||
data:[320, 332, 301, 334, 390, 330, 320]
|
||||
},
|
||||
{
|
||||
name:'搜索引擎',
|
||||
type:'line',
|
||||
data:[820, 932, 901, 934, 1290, 1330, 1320]
|
||||
}
|
||||
]
|
||||
};
|
||||
echartsRecords.setOption(optionRecords);
|
||||
|
||||
// echarts 窗口缩放自适应
|
||||
window.onresize = function(){
|
||||
echartsRecords.resize();
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,101 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据表名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="tableName" name="tableName"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">所属模块:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="moduleName" name="moduleName"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">用户权限控制属性名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="crlAttrName" name="crlAttrName"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据表权限控制列名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="crlColumnName" name="crlColumnName"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限code:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="permCode" name="permCode"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">排序:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="orderNum" name="orderNum"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/wangEditor/release/wangEditor.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/system/dataPerm/add.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,68 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<button shiro:hasPermission="system:dataPerm:add" type="button"
|
||||
class="btn btn-primary" onclick="add()">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="system:dataPerm:batchRemove" type="button"
|
||||
class="btn btn-danger"
|
||||
onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
|
||||
<form id="searchForm">
|
||||
<div class="columns pull-right col-md-2">
|
||||
<select id="moduleName" name="moduleName" data-placeholder="选择模块" class="form-control chosen-select"
|
||||
tabindex="2" style="width: 100%">
|
||||
<option value="">选择模块</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--shiro控制bootstraptable行内按钮看见性 -->
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
var s_detail_h = 'hidden';
|
||||
var s_edit_h = 'hidden';
|
||||
var s_remove_h = 'hidden';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="test:order:detail">
|
||||
<script type="text/javascript">
|
||||
s_detail_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="system:dataPerm:edit">
|
||||
<script type="text/javascript">
|
||||
s_edit_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="system:dataPerm:remove">
|
||||
<script type="text/javascript">
|
||||
var s_remove_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/dataPerm/dataPerm.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,112 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="id" name="id" th:value="${dataPerm.id}"
|
||||
type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限名称:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${dataPerm.name}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据表名称:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${dataPerm.tableName}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">所属模块:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${dataPerm.moduleName}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">用户权限控制属性名:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${dataPerm.crlAttrName}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据表权限控制列名:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${dataPerm.crlColumnName}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限code:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${dataPerm.permCode}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">排序:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${dataPerm.orderNum}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建时间:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${dataPerm.gmtCreate}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">修改时间:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${dataPerm.gmtModified}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,101 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="id" name="id" th:value="${dataPerm.id}"
|
||||
type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name"
|
||||
th:value="${dataPerm.name}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据表名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="tableName" name="tableName"
|
||||
th:value="${dataPerm.tableName}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">所属模块:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="moduleName" name="moduleName"
|
||||
th:value="${dataPerm.moduleName}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">用户权限控制属性名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="crlAttrName" name="crlAttrName"
|
||||
th:value="${dataPerm.crlAttrName}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据表权限控制列名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="crlColumnName" name="crlColumnName"
|
||||
th:value="${dataPerm.crlColumnName}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限code:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="permCode" name="permCode"
|
||||
th:value="${dataPerm.permCode}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">排序:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="orderNum" name="orderNum"
|
||||
th:value="${dataPerm.orderNum}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/wangEditor/release/wangEditor.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/system/dataPerm/edit.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,58 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">上级部门:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="parentId" name="parentId" th:value="${pId}"
|
||||
class="form-control hidden" type="text">
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
<input id="pName" name="pName" th:value="${pName}"
|
||||
class="form-control" type="text" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">部门名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">排序:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="orderNum" name="orderNum" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">状态:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="delFlag" name="delFlag" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/dept/add.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,69 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<button shiro:hasPermission="system:sysDept:add" type="button" class="btn btn-primary"
|
||||
onclick="add(0)">
|
||||
<i class="fa fa-plus hidden" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="system:sysDept:batchRemove" type="button" class="btn btn-danger"
|
||||
onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
|
||||
<div class="columns pull-right col-md-2">
|
||||
<input id="searchName" type="text" class="form-control"
|
||||
placeholder="">
|
||||
</div>
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--shiro控制bootstraptable行内按钮看见性 -->
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
var s_add_h = 'hidden';
|
||||
var s_edit_h = 'hidden';
|
||||
var s_remove_h = 'hidden';
|
||||
var s_resetPwd_h = 'hidden';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="system:sysDept:edit">
|
||||
<script type="text/javascript">
|
||||
s_edit_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="system:sysDept:add">
|
||||
<script type="text/javascript">
|
||||
s_add_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="system:sysDept:remove">
|
||||
<script type="text/javascript">
|
||||
var s_remove_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="system:sysDept:resetPwd">
|
||||
<script type="text/javascript">
|
||||
var s_resetPwd_h = '';
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/dept/dept.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,61 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<div class="ibox-content">
|
||||
<div id="deptTree"></div>
|
||||
</div>
|
||||
<div class="form-group hidden">
|
||||
<div class="col-sm-12 col-sm-offset-12">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
getTreeData()
|
||||
});
|
||||
function getTreeData() {
|
||||
$.ajax({
|
||||
type : "GET",
|
||||
url : "/system/sysDept/tree",
|
||||
success : function(tree) {
|
||||
loadTree(tree);
|
||||
}
|
||||
});
|
||||
}
|
||||
function loadTree(tree) {
|
||||
$('#deptTree').jstree({
|
||||
'core' : {
|
||||
'data' : tree
|
||||
},
|
||||
"plugins" : [ "search" ]
|
||||
});
|
||||
$('#deptTree').jstree().open_all();
|
||||
}
|
||||
$('#deptTree').on("changed.jstree", function(e, data) {
|
||||
if(data.node.id!=-1){
|
||||
parent.loadDept(data.node.id,data.node.text);
|
||||
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
||||
parent.layer.close(index);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,58 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="deptId" name="deptId" th:value="${sysDept.deptId}"
|
||||
class="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label ">上级部门:</label>
|
||||
<div class="col-sm-8">
|
||||
<input th:value="${parentDeptName}"
|
||||
class="form-control" type="text" readonly="true" />
|
||||
<input class="form-control hidden" type="text" id="parentId" name="parentId" th:value="${sysDept.parentId}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">部门名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name" th:value="${sysDept.name}"
|
||||
class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">排序:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="orderNum" name="orderNum" th:value="${sysDept.orderNum}"
|
||||
class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">状态:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="delFlag" name="delFlag" th:value="${sysDept.delFlag}"
|
||||
class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/dept/edit.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,83 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="parentId" name="parentId" type="hidden"
|
||||
th:value="${pId}">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">上级菜单:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="" name="" class="form-control" type="text"
|
||||
th:value="${pName}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">菜单类型:</label>
|
||||
<div class="col-sm-8">
|
||||
<label class="radio-inline"> <input type="radio"
|
||||
name="type" value="0" /> 目录
|
||||
</label> <label class="radio-inline"> <input type="radio"
|
||||
name="type" value="1" /> 菜单
|
||||
</label> <label class="radio-inline"> <input type="radio"
|
||||
name="type" value="2" /> 按钮
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">菜单名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">链接地址:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="url" name="url" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限标识:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="perms" name="perms" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">排序号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="orderNum" name="orderNum" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">图标:</label>
|
||||
<div class="col-sm-6">
|
||||
<input id="icon" name="icon" class="form-control" type="text"
|
||||
placeholder="例如:fa fa-circle-o">
|
||||
</div>
|
||||
<input id="ico-btn" class="btn btn-warning" type="button" value="选择图标">
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script src="/js/appjs/system/menu/add.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
100
novel-admin/src/main/resources/templates/system/menu/edit.html
Normal file
100
novel-admin/src/main/resources/templates/system/menu/edit.html
Normal file
@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<title></title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link href="/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
|
||||
<link href="/css/font-awesome.css?v=4.4.0" rel="stylesheet">
|
||||
<link href="/css/animate.css" rel="stylesheet">
|
||||
<link href="/css/style.css?v=4.1.0" rel="stylesheet">
|
||||
</head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="parentId" name="parentId" type="hidden"
|
||||
th:value="${pId}" /> <input id="menuId" name="menuId"
|
||||
type="hidden" th:value="${menu.menuId}" />
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">上级菜单:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="" name="" class="form-control" type="text"
|
||||
th:value="${pName}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">菜单类型:</label>
|
||||
<div class="col-sm-8">
|
||||
<label class="radio-inline"> <input type="radio"
|
||||
th:field="*{menu.type}" name="type" value="0" /> 目录
|
||||
</label> <label class="radio-inline"> <input type="radio"
|
||||
th:field="*{menu.type}" name="type" value="1" /> 菜单
|
||||
</label> <label class="radio-inline"> <input type="radio"
|
||||
th:field="*{menu.type}" name="type" value="2" /> 按钮
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">菜单名称:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name" class="form-control" type="text"
|
||||
th:value="${menu.name}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">链接地址:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="url" name="url" class="form-control" type="text"
|
||||
th:value="${menu.url}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限标识:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="perms" name="perms" class="form-control" type="text"
|
||||
th:value="${menu.perms}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">排序号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="orderNum" name="orderNum" class="form-control"
|
||||
type="text" th:value="${menu.orderNum}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">图标:</label>
|
||||
<div class="col-sm-5">
|
||||
<input id="icon" name="icon" class="form-control" type="text"
|
||||
placeholder="例如:fa fa-circle-o" th:value="${menu.icon}">
|
||||
</div>
|
||||
<input id="ico-btn" class="btn btn-warning" type="button" value="选择图标">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-info">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script src="/js/appjs/system/menu/edit.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div id="exampleToolbar" role="group" class="t-bar">
|
||||
<button shiro:hasPermission="sys:menu:add" type="button"
|
||||
class="btn btn-primary" title="在根节点下添加菜单" onclick="add('0')">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="sys:menu:batchRemove" type="button"
|
||||
class="btn btn-danger" onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--shiro控制bootstraptable行内按钮看见性 -->
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
var s_add_h = 'hidden';
|
||||
var s_edit_h = 'hidden';
|
||||
var s_remove_h = 'hidden';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="sys:menu:add">
|
||||
<script type="text/javascript">
|
||||
s_add_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="sys:menu:edit">
|
||||
<script type="text/javascript">
|
||||
s_edit_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="sys:menu:remove">
|
||||
<script type="text/javascript">
|
||||
var s_remove_h = '';
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script src="/js/appjs/system/menu/menu.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-11">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
|
||||
<div class="columns pull-right col-md-2">
|
||||
<input id="searchName" type="text" class="form-control"
|
||||
placeholder="">
|
||||
</div>
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/online/online.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,61 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include::header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title">
|
||||
<h5></h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="userId" name="userId" type="hidden"> <input
|
||||
id="menuIds" name="menuIds" type="hidden">
|
||||
<input
|
||||
id="permIds" name="permIds" type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">角色名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="roleName" name="roleName" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">备注:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="remark" name="remark" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">菜单权限:</label>
|
||||
<div class="col-sm-8">
|
||||
<div id="menuTree"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据权限:</label>
|
||||
<div class="col-sm-8">
|
||||
<div id="dataPermTree"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/role/add.js">
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,59 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include::header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="roleId" name="roleId" type="hidden"
|
||||
th:value="${role.roleId}"> <input id="menuIds"
|
||||
name="menuIds" type="hidden">
|
||||
<input
|
||||
id="permIds" name="permIds" type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">角色名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="roleName" name="roleName" class="form-control"
|
||||
type="text" th:value="${role.roleName}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">备注:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="remark" name="remark" class="form-control"
|
||||
type="text" th:value="${role.remark}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">菜单权限:</label>
|
||||
<div class="col-sm-8">
|
||||
<div id="menuTree"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">数据权限:</label>
|
||||
<div class="col-sm-8">
|
||||
<div id="dataPermTree"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script src="/js/appjs/system/role/edit.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,51 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include::header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div id="exampleToolbar" role="group">
|
||||
<button shiro:hasPermission="sys:role:add" type="button"
|
||||
class="btn btn-primary" onclick="add()">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="sys:role:batchRemove" type="button"
|
||||
class="btn btn-danger" onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--shiro控制bootstraptable行内按钮看见性 -->
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
var s_edit_h = 'hidden';
|
||||
var s_remove_h = 'hidden';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="sys:role:edit">
|
||||
<script type="text/javascript">
|
||||
s_edit_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="sys:role:remove">
|
||||
<script type="text/javascript">
|
||||
var s_remove_h = '';
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/role/role.js">
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,46 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">角色ID:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="roleId" name="roleId"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限ID:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="permId" name="permId"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/wangEditor/release/wangEditor.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/system/roleDataPerm/add.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="id" name="id" th:value="${roleDataPerm.id}"
|
||||
type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">角色ID:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${roleDataPerm.roleId}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限ID:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${roleDataPerm.permId}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,48 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="id" name="id" th:value="${roleDataPerm.id}"
|
||||
type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">角色ID:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="roleId" name="roleId"
|
||||
th:value="${roleDataPerm.roleId}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">权限ID:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="permId" name="permId"
|
||||
th:value="${roleDataPerm.permId}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/wangEditor/release/wangEditor.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/system/roleDataPerm/edit.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<button shiro:hasPermission="system:roleDataPerm:add" type="button"
|
||||
class="btn btn-primary" onclick="add()">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="system:roleDataPerm:batchRemove" type="button"
|
||||
class="btn btn-danger"
|
||||
onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
|
||||
<form id="searchForm">
|
||||
<div class="columns pull-right col-md-2">
|
||||
<input id="id" name="id" type="text" class="form-control"
|
||||
placeholder="主键">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--shiro控制bootstraptable行内按钮看见性 -->
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
var s_detail_h = 'hidden';
|
||||
var s_edit_h = 'hidden';
|
||||
var s_remove_h = 'hidden';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="test:order:detail">
|
||||
<script type="text/javascript">
|
||||
s_detail_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="system:roleDataPerm:edit">
|
||||
<script type="text/javascript">
|
||||
s_edit_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="system:roleDataPerm:remove">
|
||||
<script type="text/javascript">
|
||||
var s_remove_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/roleDataPerm/roleDataPerm.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="userId" name="userId" type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">姓名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">用户名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="username" name="username" class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">密码:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="password" name="password" class="form-control"
|
||||
type="password">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">部门:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="deptId" name="deptId" class="hidden"> <input
|
||||
id="deptName" name="deptName" class="form-control" type="text"
|
||||
style="cursor: pointer;" onclick="openDept()"
|
||||
readonly="readonly" placeholder="所属部门">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">E-mail:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="email" name="email" class="form-control"
|
||||
type="email">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">状态:</label>
|
||||
<div class="col-sm-8">
|
||||
<label class="radio-inline"> <input type="radio"
|
||||
name="status" value="1" /> 正常
|
||||
</label> <label class="radio-inline"> <input type="radio"
|
||||
name="status" value="0" /> 禁用
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="roleIds" id="roleIds">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">角色</label>
|
||||
<div class="col-sm-8">
|
||||
<label th:each="role:${roles}" class="checkbox-inline">
|
||||
<input name="role" type="checkbox" th:value="${role.roleId}"
|
||||
th:text="${role.roleName}">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/user/add.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,80 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="userId" name="userId" th:value="${user.userId}"
|
||||
type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">姓名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="name" name="name" class="form-control" type="text"
|
||||
th:value="${user.name}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">用户名:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="username" name="username" class="form-control"
|
||||
type="text" th:value="${user.username}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">部门:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="deptId" name="deptId" class="hidden" th:value="${user.deptId}">
|
||||
<input id="deptName" name="deptName"
|
||||
class="form-control" type="text" style="cursor: pointer;"
|
||||
onclick="openDept()" readonly="readonly" placeholder="所属部门" th:value="${user.deptName}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">E-mail:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="email" name="email" class="form-control" type="email"
|
||||
th:value="${user.email}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">状态:</label>
|
||||
<div class="col-sm-8">
|
||||
<label class="radio-inline"> <input
|
||||
th:field="*{user.status}" type="radio" name="status" value="1" />
|
||||
正常
|
||||
</label> <label class="radio-inline"> <input
|
||||
th:field="*{user.status}" type="radio" name="status" value="0" />
|
||||
禁用
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="roleIds" id="roleIds"
|
||||
th:value="${roleIds}">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">角色</label>
|
||||
<div class="col-sm-8">
|
||||
<label th:each="role:${roles}" class="checkbox-inline">
|
||||
<input name="role" type="checkbox" th:value="${role.roleId}"
|
||||
th:text="${role.roleName}" th:checked="${role.roleSign}">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/user/edit.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,30 @@
|
||||
<head th:fragment="header">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title></title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="">
|
||||
<link rel="shortcut icon" href="favicon.ico">
|
||||
<link rel="stylesheet" href="/css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" href="/css/animate.css" />
|
||||
<link rel="stylesheet" href="/css/font-awesome.css" />
|
||||
<link rel="stylesheet" href="/css/style.css" />
|
||||
<link rel="stylesheet" href="/css/plugins/iCheck/custom.css" />
|
||||
<link rel="stylesheet" href="/css/plugins/cropper/cropper.css" />
|
||||
<link rel="stylesheet" href="/js/plugins/layer/laydate/skins/default/laydate.css" />
|
||||
<link rel="stylesheet" href="/css/java2nb.css" />
|
||||
</head>
|
||||
<div th:fragment="footer">
|
||||
<script type="text/javascript" src="/js/jquery.min.js" ></script>
|
||||
<script type="text/javascript" src="/js/bootstrap.min.js" ></script>
|
||||
<script type="text/javascript" src="/js/plugins/iCheck/icheck.min.js"></script>
|
||||
<script type="text/javascript" src="/js/plugins/cropper/cropper.min.js"></script>
|
||||
<script type="text/javascript" src="/js/plugins/layer/laydate/laydate.js" ></script>
|
||||
<script type="text/javascript" src="/js/plugins/distpicker/distpicker.data.min.js"></script>
|
||||
<script type="text/javascript" src="/js/plugins/distpicker/distpicker.min.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/system/user/java2nb.js"></script>
|
||||
<!--校验插件-->
|
||||
<script src="/js/plugins/validate/jquery.validate.min.js"></script>
|
||||
<script src="/js/plugins/validate/jquery.validate.extend.js"></script>
|
||||
<script src="/js/plugins/validate/messages_zh.min.js"></script>
|
||||
</div>
|
@ -0,0 +1,223 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<head th:include="system/user/include :: header"></head>
|
||||
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-title" style="padding-bottom: 0;">
|
||||
<h3 class="text-center">个人资料中心</h3>
|
||||
<div class="gg-nav">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#basic_info" data-toggle="tab">基本资料</a></li>
|
||||
<li><a href="#photo_info" data-toggle="tab">头像修改</a></li>
|
||||
<li><a href="#pwd_info" data-toggle="tab">修改密码</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-content">
|
||||
<!--basic info-->
|
||||
<div class="ibox-content tab-pane fade in active" id="basic_info">
|
||||
<form class="gg-form" role="form" id="basicInfoForm">
|
||||
<input name="userId" type="hidden" th:value="${user.userId}"/>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>姓名:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail">
|
||||
<input type="text" class="form-control" id="userName" name="name" th:value="${user.name}" placeholder="请输入姓名" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>性别:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail">
|
||||
<div class="radio i-checks">
|
||||
<label class="radio-inline" th:each="sex:${sexList}"> <input
|
||||
th:field="*{user.sex}" type="radio" name="sex" th:value="${sex.id}" th:text="${sex.name}"/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>出生年月:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail">
|
||||
<input type="text" class="laydate-icon layer-date form-control" id="birth" name="birth" th:value="${user.birth}==null?null:${#dates.format(user.birth,'yyyy-MM-dd')}" placeholder="请选择出生年月"
|
||||
onclick="laydate({istime: true, format: 'YYYY-MM-DD'})" style="background-color: #fff;" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>手机:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail">
|
||||
<input type="text" class="form-control" id="phone" name="mobile" th:value="${user.mobile}" placeholder="请输入手机号" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>邮箱:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail">
|
||||
<input type="text" class="form-control" id="email" name="email" th:value="${user.email}" placeholder="请输入邮箱" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>居住地:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail gg-font0" data-toggle="distpicker" th:attr="data-province=${user.province},data-city=${user.city},data-district=${user.district}">
|
||||
<div class="gg-area">
|
||||
<select class="form-control" id="province" name="province">
|
||||
</select>
|
||||
</div>
|
||||
<div class="gg-area">
|
||||
<select class="form-control" id="city" name="city">
|
||||
</select>
|
||||
</div>
|
||||
<div class="gg-area">
|
||||
<select class="form-control" id="district" name="district">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>联系地址:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail">
|
||||
<input type="text" class="form-control" id="address" name="liveAddress" th:value="${user.liveAddress}" placeholder="请输入居住地址" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>爱好:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail">
|
||||
<div class="checxbox i-checks" >
|
||||
<input type="hidden" name="hobby" id="hobby"/>
|
||||
<label th:each="hobby : ${hobbyList}">
|
||||
<input type="checkbox" class="hobby" th:value="${hobby.id}" th:text="${hobby.name}" th:checked="${hobby.remarks}=='true'"/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="gg-btnGroup">
|
||||
<button type="button" class="btn btn-sm btn-primary" id="base_save">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--photo_info-->
|
||||
<div class="ibox-content tab-pane fade gg" id="photo_info">
|
||||
<div class="ggcontainer" id="crop-avatar">
|
||||
<form class="avatar-form" action="/sys/user/uploadImg" enctype="multipart/form-data" method="post">
|
||||
<div class="avatar-body">
|
||||
<div class="avatar-upload">
|
||||
<input class="avatar-src" name="avatar_src" type="hidden">
|
||||
<input class="avatar-data" name="avatar_data" type="hidden">
|
||||
<label for="avatarInput">选取文件</label>
|
||||
<input class="avatar-input" id="avatarInput" name="avatar_file" type="file">
|
||||
</div>
|
||||
<!-- Crop and preview -->
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="avatar-wrapper"></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="avatar-preview preview-lg"></div>
|
||||
<div class="avatar-preview preview-md"></div>
|
||||
<div class="avatar-preview preview-sm"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row avatar-btns">
|
||||
<div class="col-md-9">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary" data-method="rotate" data-option="-90" type="button" title="Rotate -90 degrees">左旋转</button>
|
||||
<button class="btn btn-primary" data-method="rotate" data-option="-15" type="button">-15°</button>
|
||||
<button class="btn btn-primary" data-method="rotate" data-option="-30" type="button">-30°</button>
|
||||
<button class="btn btn-primary" data-method="rotate" data-option="-45" type="button">-45°</button>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary" data-method="rotate" data-option="90" type="button" title="Rotate 90 degrees">右旋转</button>
|
||||
<button class="btn btn-primary" data-method="rotate" data-option="15" type="button">15°</button>
|
||||
<button class="btn btn-primary" data-method="rotate" data-option="30" type="button">30°</button>
|
||||
<button class="btn btn-primary" data-method="rotate" data-option="45" type="button">45°</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<button class="btn btn-primary btn-block avatar-save" type="submit">完成裁剪</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<!-- Loading state -->
|
||||
<div class="loading" aria-label="Loading" role="img" tabindex="-1"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!--pwd_info-->
|
||||
<div class="ibox-content tab-pane fade" id="pwd_info">
|
||||
<form class="gg-form" role="form" id="modifyPwd">
|
||||
<a id="logout" class="hidden" href="/logout"></a>
|
||||
<input type="hidden" name ="userDO.userId" th:value="${user.userId}"/>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>旧密码:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail gg-dashed">
|
||||
<input type="password" class="form-control gg-border0" id="pwdOld" name="pwdOld" placeholder="请输入旧密码" />
|
||||
<span class="fa fa-eye gg-faeye" title="鼠标移入显示内容"><span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>新密码:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail gg-dashed">
|
||||
<input type="password" class="form-control gg-border0" id="pwdNew" name="pwdNew" placeholder="请输入新密码" />
|
||||
<span class="fa fa-eye gg-faeye" title="鼠标移入显示内容"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gg-formGroup">
|
||||
<div class="gg-formTitle">
|
||||
<em class="gg-star">*</em>
|
||||
<span>确认密码:</span>
|
||||
</div>
|
||||
<div class="gg-formDetail gg-dashed">
|
||||
<input type="password" class="form-control gg-border0" id="confirm_password" name="confirm_password" placeholder="请确认密码" />
|
||||
<span class="fa fa-eye gg-faeye" title="鼠标移入显示内容"></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="gg-btnGroup">
|
||||
<button type="button" class="btn btn-sm btn-primary" id="pwd_save">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="system/user/include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/user/personal.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,109 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="userId" name="userDO.userId" th:value="${user.userId}"
|
||||
type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">输入密码:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="password" name="pwdNew" class="form-control"
|
||||
type="password" value="111111">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- 全局js -->
|
||||
<script src="/js/jquery.min.js?v=2.1.4"></script>
|
||||
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
|
||||
|
||||
<!-- 自定义js -->
|
||||
<script src="/js/content.js?v=1.0.0"></script>
|
||||
|
||||
<!-- jQuery Validation plugin javascript-->
|
||||
<script src="/js/plugins/validate/jquery.validate.min.js"></script>
|
||||
<script src="/js/plugins/validate/messages_zh.min.js"></script>
|
||||
|
||||
|
||||
<!-- script src="/js/demo/form-validate-demo.js"></script> -->
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
validateRule();
|
||||
//setCheckedRoles();
|
||||
});
|
||||
$.validator.setDefaults({
|
||||
submitHandler : function() {
|
||||
update();
|
||||
}
|
||||
});
|
||||
function update() {
|
||||
$.ajax({
|
||||
cache : true,
|
||||
type : "POST",
|
||||
url : "/sys/user/adminResetPwd",
|
||||
data : $('#signupForm').serialize(),// 你的formid
|
||||
async : false,
|
||||
error : function(request) {
|
||||
parent.layer.msg("系统错误,联系管理员");
|
||||
},
|
||||
success : function(data) {
|
||||
if (data.code == 0) {
|
||||
parent.layer.msg(data.msg);
|
||||
parent.reLoad();
|
||||
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
|
||||
parent.layer.close(index);
|
||||
|
||||
} else {
|
||||
parent.layer.msg(data.msg);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function validateRule() {
|
||||
var icon = "<i class='fa fa-times-circle'></i> ";
|
||||
$("#signupForm").validate({
|
||||
rules : {
|
||||
|
||||
password : {
|
||||
required : true,
|
||||
minlength : 6
|
||||
}
|
||||
},
|
||||
messages : {
|
||||
password : {
|
||||
required : icon + "请输入您的密码",
|
||||
minlength : icon + "密码必须6个字符以上"
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,74 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<div class="ibox ibox-body">
|
||||
<div class="ibox-title">
|
||||
<h5>选择部门</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<div id="jstree"></div>
|
||||
</div> </div>
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<button shiro:hasPermission="sys:user:add" type="button"
|
||||
class="btn btn-primary" onclick="add()">
|
||||
<i class="fa fa-plus hidden" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="sys:user:batchRemove" type="button"
|
||||
class="btn btn-danger" onclick="batchRemove()">
|
||||
<i class="fa fa-trash hidden" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
|
||||
<div class="columns pull-right col-md-2">
|
||||
<input id="searchName" type="text" class="form-control"
|
||||
placeholder="姓名">
|
||||
</div>
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--shiro控制bootstraptable行内按钮看见性 -->
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
var s_edit_h = 'hidden';
|
||||
var s_remove_h = 'hidden';
|
||||
var s_resetPwd_h = 'hidden';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="sys:user:edit">
|
||||
<script type="text/javascript">
|
||||
s_edit_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="sys:user:remove">
|
||||
<script type="text/javascript">
|
||||
var s_remove_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="sys:user:resetPwd">
|
||||
<script type="text/javascript">
|
||||
var s_resetPwd_h = '';
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/system/user/user.js"></script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox-content">
|
||||
<div id="jsTree"></div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<div class="col-sm-12 col-sm-offset-12">
|
||||
<button type="submit" onclick="loadUser()" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
getTreeData()
|
||||
});
|
||||
function getTreeData() {
|
||||
$.ajax({
|
||||
type : "GET",
|
||||
url : "/sys/user/tree",
|
||||
success : function(tree) {
|
||||
loadTree(tree);
|
||||
}
|
||||
});
|
||||
}
|
||||
function loadTree(tree) {
|
||||
$('#jsTree').jstree({
|
||||
'core' : {
|
||||
'data' : tree
|
||||
},
|
||||
"plugins" : [ "checkbox" ]
|
||||
});
|
||||
$('#jsTree').jstree().open_all();
|
||||
}
|
||||
function loadUser(){
|
||||
var userNames,userIds;
|
||||
var ref = $('#jsTree').jstree(true); // 获得整个树
|
||||
userIds = ref.get_bottom_selected();
|
||||
users = ref.get_bottom_checked('true');
|
||||
var txt="";
|
||||
for(var user in users){
|
||||
if(users[user].state.mType=="user"){
|
||||
txt=txt+users[user].text+",";
|
||||
}
|
||||
}
|
||||
parent.loadUser(userIds,txt);
|
||||
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
||||
parent.layer.close(index);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
327
novel-admin/src/main/resources/templates/test/order/add.html
Normal file
327
novel-admin/src/main/resources/templates/test/order/add.html
Normal file
@ -0,0 +1,327 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗商户号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="fbMerchantCode" name="fbMerchantCode"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">第三方商户的订单号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="merchantOrderSn" name="merchantOrderSn"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗订单号:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="orderSn"
|
||||
name="orderSn"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="color">
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">平台方订单号:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="platformOrderNo"
|
||||
name="platformOrderNo"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="oa_leave_type">
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">商户单号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="hidden" id="tradeNo" name="tradeNo"/>
|
||||
<div id="contentEditortradeNo">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">订单状态,1:未支付,2:支付成功,3:支付失败,4:支付取消:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="orderState"
|
||||
name="orderState"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="yes_no">
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">蜂鸟优惠卷抵扣:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="fnCoupon" name="fnCoupon"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">红包抵扣:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="redPacket" name="redPacket"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">实收金额(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="totalFee" name="totalFee"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">订单金额:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="orderPrice" name="orderPrice"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">手续费(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="fee" name="fee"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">对商品或交易的描述:</label>
|
||||
<div class="col-sm-8">
|
||||
<img title="点击选择图片" id="picImagebody"
|
||||
style="cursor:pointer;width: 100px;height: 100px"
|
||||
src="/img/webuploader.png"/>
|
||||
<input id="body" name="body"
|
||||
class="form-control"
|
||||
type="hidden">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">附加数据:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="hidden" id="attach" name="attach"/>
|
||||
<div id="contentEditorattach">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗系统的门店id:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="storeId" name="storeId"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗系统的收银员id:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="cashierId" name="cashierId"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">设备终端号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="deviceNo" name="deviceNo"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id”:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="userId" name="userId"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">支付宝顾客的账号:</label>
|
||||
<div class="col-sm-8">
|
||||
<textarea id="userLogonId" name="userLogonId"
|
||||
class="form-control"></textarea>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">交易成功的时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="laydate-icon layer-date form-control"
|
||||
id="payTime"
|
||||
name="payTime"
|
||||
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
|
||||
style="background-color: #fff;" readonly="readonly"/>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">支付通道:1微信、2支付宝、3银联:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="payChannel"
|
||||
name="payChannel"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="del_flag">
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">免充值代金券金额(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="noCashCouponFee" name="noCashCouponFee"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">预充值代金券金额(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="cashCouponFee" name="cashCouponFee"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">顾客实际支付金额(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="cashFee" name="cashFee"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">签名:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="sign"
|
||||
name="sign"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="theme">
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">其它选项:</label>
|
||||
<div class="col-sm-8">
|
||||
<img title="点击选择图片" id="picImageoptions"
|
||||
style="cursor:pointer;width: 100px;height: 100px"
|
||||
src="/img/webuploader.png"/>
|
||||
<input id="options" name="options"
|
||||
class="form-control"
|
||||
type="hidden">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="laydate-icon layer-date form-control"
|
||||
id="createTime"
|
||||
name="createTime"
|
||||
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
|
||||
style="background-color: #fff;" readonly="readonly"/>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">推送时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="laydate-icon layer-date form-control"
|
||||
id="pushTime"
|
||||
name="pushTime"
|
||||
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
|
||||
style="background-color: #fff;" readonly="readonly"/>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">推送IP:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="hidden" id="pushIp" name="pushIp"/>
|
||||
<div id="contentEditorpushIp">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">商户id:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="mchtId" name="mchtId"
|
||||
class="form-control"
|
||||
type="number">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">QR编号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="sn" name="sn"
|
||||
class="form-control"
|
||||
type="text">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/wangEditor/release/wangEditor.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/test/order/add.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
315
novel-admin/src/main/resources/templates/test/order/detail.html
Normal file
315
novel-admin/src/main/resources/templates/test/order/detail.html
Normal file
@ -0,0 +1,315 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="id" name="id" th:value="${order.id}"
|
||||
type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗商户号:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.fbMerchantCode}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">第三方商户的订单号:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.merchantOrderSn}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗订单号:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8 dict-type" dict-type="color"
|
||||
th:attr="dict-value=${order.orderSn}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">平台方订单号:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8 dict-type" dict-type="oa_leave_type"
|
||||
th:attr="dict-value=${order.platformOrderNo}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">商户单号:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:utext="${order.tradeNo}"></div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">订单状态,1:未支付,2:支付成功,3:支付失败,4:支付取消:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8 dict-type" dict-type="yes_no"
|
||||
th:attr="dict-value=${order.orderState}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">蜂鸟优惠卷抵扣:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.fnCoupon}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">红包抵扣:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.redPacket}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">实收金额(元):</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.totalFee}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">订单金额:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.orderPrice}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">手续费(元):</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.fee}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">对商品或交易的描述:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8">
|
||||
<img id="picImagebody"
|
||||
style="cursor:pointer;width: 100px;height: 100px"
|
||||
th:src="${order.body}==null?'/img/webuploader.png':${order.body}"/>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">附加数据:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:utext="${order.attach}"></div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗系统的门店id:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.storeId}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗系统的收银员id:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.cashierId}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">设备终端号:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.deviceNo}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id”:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.userId}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">支付宝顾客的账号:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.userLogonId}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">交易成功的时间:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.payTime}==null?null:${#dates.format(order.payTime,'yyyy-MM-dd HH:mm:ss')}">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">支付通道:1微信、2支付宝、3银联:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8 dict-type" dict-type="del_flag"
|
||||
th:attr="dict-value=${order.payChannel}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">免充值代金券金额(元):</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.noCashCouponFee}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">预充值代金券金额(元):</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.cashCouponFee}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">顾客实际支付金额(元):</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.cashFee}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">签名:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8 dict-type" dict-type="theme"
|
||||
th:attr="dict-value=${order.sign}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">其它选项:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8">
|
||||
<img id="picImageoptions"
|
||||
style="cursor:pointer;width: 100px;height: 100px"
|
||||
th:src="${order.options}==null?'/img/webuploader.png':${order.options}"/>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建时间:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.createTime}==null?null:${#dates.format(order.createTime,'yyyy-MM-dd HH:mm:ss')}">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">推送时间:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.pushTime}==null?null:${#dates.format(order.pushTime,'yyyy-MM-dd HH:mm:ss')}">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">推送IP:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:utext="${order.pushIp}"></div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">商户id:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.mchtId}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">QR编号:</label>
|
||||
|
||||
<div style="padding-top:8px" class="col-sm-8"
|
||||
th:text="${order.sn}">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
</body>
|
||||
</html>
|
323
novel-admin/src/main/resources/templates/test/order/edit.html
Normal file
323
novel-admin/src/main/resources/templates/test/order/edit.html
Normal file
@ -0,0 +1,323 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-content">
|
||||
<form class="form-horizontal m-t" id="signupForm">
|
||||
<input id="id" name="id" th:value="${order.id}"
|
||||
type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗商户号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="fbMerchantCode" name="fbMerchantCode"
|
||||
th:value="${order.fbMerchantCode}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">第三方商户的订单号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="merchantOrderSn" name="merchantOrderSn"
|
||||
th:value="${order.merchantOrderSn}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗订单号:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="orderSn"
|
||||
name="orderSn"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="color"
|
||||
th:attr="dict-value=${order.orderSn}" >
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">平台方订单号:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="platformOrderNo"
|
||||
name="platformOrderNo"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="oa_leave_type"
|
||||
th:attr="dict-value=${order.platformOrderNo}" >
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">商户单号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="hidden" id="tradeNo" name="tradeNo" th:value="${order.tradeNo}"/>
|
||||
<div id="contentEditortradeNo">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">订单状态,1:未支付,2:支付成功,3:支付失败,4:支付取消:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="orderState"
|
||||
name="orderState"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="yes_no"
|
||||
th:attr="dict-value=${order.orderState}" >
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">蜂鸟优惠卷抵扣:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="fnCoupon" name="fnCoupon"
|
||||
th:value="${order.fnCoupon}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">红包抵扣:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="redPacket" name="redPacket"
|
||||
th:value="${order.redPacket}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">实收金额(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="totalFee" name="totalFee"
|
||||
th:value="${order.totalFee}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">订单金额:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="orderPrice" name="orderPrice"
|
||||
th:value="${order.orderPrice}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">手续费(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="fee" name="fee"
|
||||
th:value="${order.fee}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">对商品或交易的描述:</label>
|
||||
<div class="col-sm-8">
|
||||
<img title="点击选择图片" id="picImagebody"
|
||||
style="cursor:pointer;width: 100px;height: 100px"
|
||||
th:src="${order.body}==null?'/img/webuploader.png':${order.body}"/>
|
||||
<input id="body" name="body" th:value="${order.body}"
|
||||
class="form-control"
|
||||
type="hidden">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">附加数据:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="hidden" id="attach" name="attach" th:value="${order.attach}"/>
|
||||
<div id="contentEditorattach">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗系统的门店id:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="storeId" name="storeId"
|
||||
th:value="${order.storeId}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">付呗系统的收银员id:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="cashierId" name="cashierId"
|
||||
th:value="${order.cashierId}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">设备终端号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="deviceNo" name="deviceNo"
|
||||
th:value="${order.deviceNo}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id”:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="userId" name="userId"
|
||||
th:value="${order.userId}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">支付宝顾客的账号:</label>
|
||||
<div class="col-sm-8">
|
||||
<textarea id="userLogonId" name="userLogonId"
|
||||
class="form-control" th:text="${order.userLogonId}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">交易成功的时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="laydate-icon layer-date form-control"
|
||||
id="payTime"
|
||||
name="payTime"
|
||||
th:value="${order.payTime}==null?null:${#dates.format(order.payTime,'yyyy-MM-dd HH:mm:ss')}"
|
||||
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
|
||||
style="background-color: #fff;" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">支付通道:1微信、2支付宝、3银联:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="payChannel"
|
||||
name="payChannel"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="del_flag"
|
||||
th:attr="dict-value=${order.payChannel}" >
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">免充值代金券金额(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="noCashCouponFee" name="noCashCouponFee"
|
||||
th:value="${order.noCashCouponFee}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">预充值代金券金额(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="cashCouponFee" name="cashCouponFee"
|
||||
th:value="${order.cashCouponFee}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">顾客实际支付金额(元):</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="cashFee" name="cashFee"
|
||||
th:value="${order.cashFee}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">签名:</label>
|
||||
<div class="col-sm-8">
|
||||
|
||||
<select data-placeholder="--选择--" id="sign"
|
||||
name="sign"
|
||||
class="form-control chosen-select" tabindex="2"
|
||||
dict-type="theme"
|
||||
th:attr="dict-value=${order.sign}" >
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">其它选项:</label>
|
||||
<div class="col-sm-8">
|
||||
<img title="点击选择图片" id="picImageoptions"
|
||||
style="cursor:pointer;width: 100px;height: 100px"
|
||||
th:src="${order.options}==null?'/img/webuploader.png':${order.options}"/>
|
||||
<input id="options" name="options" th:value="${order.options}"
|
||||
class="form-control"
|
||||
type="hidden">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="laydate-icon layer-date form-control"
|
||||
id="createTime"
|
||||
name="createTime"
|
||||
th:value="${order.createTime}==null?null:${#dates.format(order.createTime,'yyyy-MM-dd HH:mm:ss')}"
|
||||
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
|
||||
style="background-color: #fff;" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">推送时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="laydate-icon layer-date form-control"
|
||||
id="pushTime"
|
||||
name="pushTime"
|
||||
th:value="${order.pushTime}==null?null:${#dates.format(order.pushTime,'yyyy-MM-dd HH:mm:ss')}"
|
||||
onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})"
|
||||
style="background-color: #fff;" readonly="readonly"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">推送IP:</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="hidden" id="pushIp" name="pushIp" th:value="${order.pushIp}"/>
|
||||
<div id="contentEditorpushIp">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">商户id:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="mchtId" name="mchtId"
|
||||
th:value="${order.mchtId}"
|
||||
class="form-control"
|
||||
type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">QR编号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="sn" name="sn"
|
||||
th:value="${order.sn}"
|
||||
class="form-control"
|
||||
type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script type="text/javascript" src="/wangEditor/release/wangEditor.js"></script>
|
||||
<script type="text/javascript" src="/js/appjs/test/order/edit.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<body class="gray-bg">
|
||||
<div class="wrapper wrapper-content ">
|
||||
<div class="col-sm-12">
|
||||
<div class="ibox">
|
||||
<div class="ibox-body">
|
||||
<div class="fixed-table-toolbar">
|
||||
<div class="columns pull-left">
|
||||
<button shiro:hasPermission="test:order:add" type="button"
|
||||
class="btn btn-primary" onclick="add()">
|
||||
<i class="fa fa-plus" aria-hidden="true"></i>添加
|
||||
</button>
|
||||
<button shiro:hasPermission="test:order:batchRemove" type="button"
|
||||
class="btn btn-danger"
|
||||
onclick="batchRemove()">
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="columns pull-right">
|
||||
<button class="btn btn-success" onclick="reLoad()">查询</button>
|
||||
</div>
|
||||
|
||||
<form id="searchForm">
|
||||
<div class="columns pull-right col-md-2">
|
||||
<input id="id" name="id" type="text" class="form-control"
|
||||
placeholder="主键">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<table id="exampleTable" data-mobile-responsive="true">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--shiro控制bootstraptable行内按钮看见性 -->
|
||||
<div>
|
||||
<script type="text/javascript">
|
||||
var s_detail_h = 'hidden';
|
||||
var s_edit_h = 'hidden';
|
||||
var s_remove_h = 'hidden';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="test:order:detail">
|
||||
<script type="text/javascript">
|
||||
s_detail_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="test:order:edit">
|
||||
<script type="text/javascript">
|
||||
s_edit_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div shiro:hasPermission="test:order:remove">
|
||||
<script type="text/javascript">
|
||||
var s_remove_h = '';
|
||||
</script>
|
||||
</div>
|
||||
<div th:include="include :: footer"></div>
|
||||
<script type="text/javascript" src="/js/appjs/test/order/order.js"></script>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user