2 |
3 |
4 |
5 | 404--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
我勒个去,页面被外星人挟持了!
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/console/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | catalina.out
5 |
6 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
69 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/datax/dataxConfig.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DataX配置
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
20 |
21 |
22 |
23 |
28 |
29 |
30 |
31 |
66 |
67 |
70 |
71 |
72 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/doc/addressDoc.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 三级联动使用文档--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | address模块是封装的一个省市区三级联动的功能,可以和form、layer等模块一样通过模块化引入进行使用。唯一的不同就是模块的存放路径和使用时的配置。下面将对此区别进行详细的描述。
18 |
19 |
20 | 模块加载名称:address
21 |
22 |
25 | 语法:layui.address()
26 |
27 | layui.use('address', function(){
28 | var layui.address();
29 | });
30 |
31 | 上面说过,模块相对页面的存放路径不同,使用时也需要进行不同的配置。如果页面和此模块属于同级关系,则不用进行任何配置,直接引入即可使用。如果它们不属于同级关系,则需要通过查找address.js文件相对xx.js文件的相对路径进行配置,如:address.js文件与a文件夹属于同级,而a文件夹中包含b文件夹,b文件夹中包含xx.js,通过xx.js引入address模块则进行下面的配置
32 |
33 | layui.config({
34 | base : "../../js/" //如果a文件夹中直接就是xx.js文件,则为“../js/”
35 | }).extend({
36 | "address" : "address"
37 | })
38 |
39 |
42 | 下面是HTML数据格式,其中select的name值和lay-filter值是固定不可改变的,因为模块中是通过查找对应name的select进行的赋值,通过form.on("select(filter)")执行选择的方法,所以这两个值是不可以随意更改的。如果需要改变请将模块源码中对应的值一同修改。另外需要注意的是“市”、“区/县”的select需要添加一个disabled属性,主要是为了避免在没有选择省份的情况下先选择市、区造成错误。
43 |
44 | //省份select
45 | <select name="province" lay-filter="province">
46 | <option value="">请选择省</option>
47 | </select>
48 | //市select
49 | <select name="city" lay-filter="city" disabled>
50 | <option value="">请选择市</option>
51 | </select>
52 | //区/县select
53 | <select name="area" lay-filter="area" disabled>
54 | <option value="">请选择县/区</option>
55 | </select>
56 |
57 |
60 | 其中code为地区id,用于给option赋值;name为地区名称,用于设置option的text;childs为当前区域的下级地区。
61 |
62 | [{
63 | "code": "11",
64 | "name": "北京市",
65 | "childs": [{
66 | "code": "1101",
67 | "name": "市辖区",
68 | "childs": [{
69 | "code": "110101",
70 | "name": "东城区"
71 | }]
72 | }]
73 | }]
74 |
75 |
76 |
83 |
84 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/doc/navDoc.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 三级菜单使用文档--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | 其实本模版中的三级菜单的展示方式和实际开发中的做法是不一样的,下面将说一下本模版中的做法
18 |
19 |
22 | 在实际的开发中,无论是顶部菜单还是左侧菜单都应该是通过接口获取的。首先获取顶部菜单,然后点击顶级菜单通过传参再次访问接口来获取二级、三级菜单。
23 |
26 | 由于顶部菜单是大分类,不会有太多,所以在本模版中是直接写死的,代码如下【具体请看index.html第25-36行】:
27 |
28 | <dd data-menu="seraphApi"><a href="javascript:;"><i class="layui-icon" data-icon=""></i><cite>使用文档</cite></a></dd>
29 | 请注意这里面的“data-menu”属性,此属性值需要和json中的字段名对应以便能够进行通过此属性查找对应的子菜单
30 |
31 | 然后通过index.js中的代码进行循环渲染,就成了当前大家看到的这个样子了,js代码如下【具体请看index.js中的第18-38行】:
32 |
33 | function getData(json){
34 | $.get("接口路径",function(data){
35 | if(json == "contentManagement"){ //此处即实际开发中传递的参数
36 | dataStr = data.contentManagement; //获取到当前顶级菜单下的子菜单渲染到左侧
37 | tab.render();
38 | }
39 | })
40 | }
41 |
42 |
43 | 如果不动大框架的前提下,请严格按照菜单数据格式返回数据,菜单数据格式请参考:bodyTab模块去看看菜单数据格式
44 |
45 |
46 |
47 |
65 |
66 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/img/images.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 图片总数--layui后台管理模板
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/img/images.js:
--------------------------------------------------------------------------------
1 | layui.config({
2 | base : "../../js/"
3 | }).use(['flow','form','layer','upload'],function(){
4 | var flow = layui.flow,
5 | form = layui.form,
6 | layer = parent.layer === undefined ? layui.layer : top.layer,
7 | upload = layui.upload,
8 | $ = layui.jquery;
9 |
10 | //流加载图片
11 | var imgNums = 15; //单页显示图片数量
12 | flow.load({
13 | elem: '#Images', //流加载容器
14 | done: function(page, next){ //加载下一页
15 | $.get("../../json/images.json",function(res){
16 | //模拟插入
17 | var imgList = [],data = res.data;
18 | var maxPage = imgNums*page < data.length ? imgNums*page : data.length;
19 | setTimeout(function(){
20 | for(var i=imgNums*(page-1); i
');
22 | }
23 | next(imgList.join(''), page < (data.length/imgNums));
24 | form.render();
25 | }, 500);
26 | });
27 | }
28 | });
29 |
30 | //设置图片的高度
31 | $(window).resize(function(){
32 | $("#Images li img").height($("#Images li img").width());
33 | })
34 |
35 | //多图片上传
36 | upload.render({
37 | elem: '.uploadNewImg',
38 | url: '../../json/userface.json',
39 | multiple: true,
40 | before: function(obj){
41 | //预读本地文件示例,不支持ie8
42 | obj.preview(function(index, file, result){
43 | $('#Images').prepend('
')
44 | //设置图片的高度
45 | $("#Images li img").height($("#Images li img").width());
46 | form.render("checkbox");
47 | });
48 | },
49 | done: function(res){
50 | //上传完毕
51 | }
52 | });
53 |
54 | //弹出层
55 | $("body").on("click","#Images img",function(){
56 | parent.showImg();
57 | })
58 |
59 | //删除单张图片
60 | $("body").on("click",".img_del",function(){
61 | var _this = $(this);
62 | layer.confirm('确定删除图片"'+_this.siblings().find("input").attr("title")+'"吗?',{icon:3, title:'提示信息'},function(index){
63 | _this.parents("li").hide(1000);
64 | setTimeout(function(){_this.parents("li").remove();},950);
65 | layer.close(index);
66 | });
67 | })
68 |
69 | //全选
70 | form.on('checkbox(selectAll)', function(data){
71 | var child = $("#Images li input[type='checkbox']");
72 | child.each(function(index, item){
73 | item.checked = data.elem.checked;
74 | });
75 | form.render('checkbox');
76 | });
77 |
78 | //通过判断是否全部选中来确定全选按钮是否选中
79 | form.on("checkbox(choose)",function(data){
80 | var child = $(data.elem).parents('#Images').find('li input[type="checkbox"]');
81 | var childChecked = $(data.elem).parents('#Images').find('li input[type="checkbox"]:checked');
82 | if(childChecked.length == child.length){
83 | $(data.elem).parents('#Images').siblings("blockquote").find('input#selectAll').get(0).checked = true;
84 | }else{
85 | $(data.elem).parents('#Images').siblings("blockquote").find('input#selectAll').get(0).checked = false;
86 | }
87 | form.render('checkbox');
88 | })
89 |
90 | //批量删除
91 | $(".batchDel").click(function(){
92 | var $checkbox = $('#Images li input[type="checkbox"]');
93 | var $checked = $('#Images li input[type="checkbox"]:checked');
94 | if($checkbox.is(":checked")){
95 | layer.confirm('确定删除选中的图片?',{icon:3, title:'提示信息'},function(index){
96 | var index = layer.msg('删除中,请稍候',{icon: 16,time:false,shade:0.8});
97 | setTimeout(function(){
98 | //删除数据
99 | $checked.each(function(){
100 | $(this).parents("li").hide(1000);
101 | setTimeout(function(){$(this).parents("li").remove();},950);
102 | })
103 | $('#Images li input[type="checkbox"],#selectAll').prop("checked",false);
104 | form.render();
105 | layer.close(index);
106 | layer.msg("删除成功");
107 | },2000);
108 | })
109 | }else{
110 | layer.msg("请选择需要删除的图片");
111 | }
112 | })
113 |
114 | })
--------------------------------------------------------------------------------
/src/main/resources/static/page/login/login.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 登录--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/login/login.js:
--------------------------------------------------------------------------------
1 | layui.use(['form','layer','jquery'],function(){
2 | var form = layui.form,
3 | layer = parent.layer === undefined ? layui.layer : top.layer
4 | $ = layui.jquery;
5 |
6 | $(".loginBody .seraph").click(function(){
7 | layer.msg("这只是做个样式,至于功能,你见过哪个后台能这样登录的?还是老老实实的找管理员去注册吧",{
8 | time:5000
9 | });
10 | })
11 |
12 | //登录按钮
13 | form.on("submit(login)",function(data){
14 | $(this).text("登录中...").attr("disabled","disabled").addClass("layui-disabled");
15 | setTimeout(function(){
16 | window.location.href = "/layuicms2.0";
17 | },1000);
18 | return false;
19 | })
20 |
21 | //表单输入效果
22 | $(".loginBody .input-item").click(function(e){
23 | e.stopPropagation();
24 | $(this).addClass("layui-input-focus").find(".layui-input").focus();
25 | })
26 | $(".loginBody .layui-form-item .layui-input").focus(function(){
27 | $(this).parent().addClass("layui-input-focus");
28 | })
29 | $(".loginBody .layui-form-item .layui-input").blur(function(){
30 | $(this).parent().removeClass("layui-input-focus");
31 | if($(this).val() != ''){
32 | $(this).parent().addClass("layui-input-active");
33 | }else{
34 | $(this).parent().removeClass("layui-input-active");
35 | }
36 | })
37 | })
38 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/main.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 首页
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
56 |
57 | JDataX 由自主研发的组织架构同步系统和调度DataX为一体的数据同步服务系统。
58 |
59 |
60 |
61 |
系统基本参数
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | 当前版本 |
70 | |
71 |
72 |
73 | 开发作者 |
74 | |
75 |
76 |
77 | 网站首页 |
78 | |
79 |
80 |
81 | 服务器环境 |
82 | |
83 |
84 |
85 | 数据库版本 |
86 | |
87 |
88 |
89 | 最大上传限制 |
90 | |
91 |
92 |
93 | 当前用户权限 |
94 | |
95 |
96 |
97 |
98 |
99 |
100 |
发展历程&更新日志
101 |
102 |
103 | -
104 |
105 |
106 |
107 |
JDataX V1.0 正式开始使用!
108 | 2018-04-08
109 |
110 |
111 |
112 | -
113 |
114 |
115 |
116 |
JDataX V1.0 时隔一年进行升级!
117 | 2019-7-19
118 |
119 |
120 |
121 | -
122 |
123 |
124 |
125 |
JDataX V1.1 JDataX第一个升级版本上线!
126 | 2019-10-01
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/qrcode/readQrcode.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DataX配置
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
22 |
23 |
24 |
25 |
43 |
44 |
45 |
46 |
49 |
50 |
51 |
52 |
125 |
126 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/systemSetting/basicParameter.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 系统基本参数--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/systemSetting/basicParameter.js:
--------------------------------------------------------------------------------
1 | layui.use(['form','layer','jquery'],function(){
2 | var form = layui.form,
3 | layer = parent.layer === undefined ? layui.layer : top.layer,
4 | laypage = layui.laypage,
5 | $ = layui.jquery;
6 |
7 | var systemParameter;
8 | form.on("submit(systemParameter)",function(data){
9 | systemParameter = '{"cmsName":"'+$(".cmsName").val()+'",'; //模版名称
10 | systemParameter += '"version":"'+$(".version").val()+'",'; //当前版本
11 | systemParameter += '"author":"'+$(".author").val()+'",'; //开发作者
12 | systemParameter += '"homePage":"'+$(".homePage").val()+'",'; //网站首页
13 | systemParameter += '"server":"'+$(".server").val()+'",'; //服务器环境
14 | systemParameter += '"dataBase":"'+$(".dataBase").val()+'",'; //数据库版本
15 | systemParameter += '"maxUpload":"'+$(".maxUpload").val()+'",'; //最大上传限制
16 | systemParameter += '"userRights":"'+$(".userRights").val()+'",'; //用户权限
17 | systemParameter += '"description":"'+$(".description").val()+'",'; //站点描述
18 | systemParameter += '"powerby":"'+$(".powerby").val()+'",'; //版权信息
19 | systemParameter += '"record":"'+$(".record").val()+'",'; //网站备案号
20 | systemParameter += '"keywords":"'+$(".keywords").val()+'"}'; //默认关键字
21 | window.sessionStorage.setItem("systemParameter",systemParameter);
22 | //弹出loading
23 | var index = top.layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.8});
24 | setTimeout(function(){
25 | layer.close(index);
26 | layer.msg("系统基本参数修改成功!");
27 | },500);
28 | return false;
29 | })
30 |
31 |
32 | //加载默认数据
33 | if(window.sessionStorage.getItem("systemParameter")){
34 | var data = JSON.parse(window.sessionStorage.getItem("systemParameter"));
35 | fillData(data);
36 | }else{
37 | $.ajax({
38 | url : "../../json/systemParameter.json",
39 | type : "get",
40 | dataType : "json",
41 | success : function(data){
42 | fillData(data);
43 | }
44 | })
45 | }
46 |
47 | //填充数据方法
48 | function fillData(data){
49 | $(".version").val(data.version); //当前版本
50 | $(".author").val(data.author); //开发作者
51 | $(".homePage").val(data.homePage); //网站首页
52 | $(".server").val(data.server); //服务器环境
53 | $(".dataBase").val(data.dataBase); //数据库版本
54 | $(".maxUpload").val(data.maxUpload); //最大上传限制
55 | $(".userRights").val(data.userRights);//当前用户权限
56 | $(".cmsName").val(data.cmsName); //模版名称
57 | $(".description").val(data.description);//站点描述
58 | $(".powerby").val(data.powerby); //版权信息
59 | $(".record").val(data.record); //网站备案号
60 | $(".keywords").val(data.keywords); //默认关键字
61 | }
62 |
63 | })
64 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/systemSetting/icons.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 图标管理--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | layuiCMS 2.0当前共引入个外部图标。【点击可复制】此页面并非后台模版需要的,只是为了让大家了解都引入了哪些外部图标,实际应用中可删除。
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/systemSetting/icons.js:
--------------------------------------------------------------------------------
1 | layui.use(['form','layer','jquery'],function(){
2 | var form = layui.form,
3 | layer = parent.layer === undefined ? layui.layer : top.layer,
4 | element = layui.element;
5 | $ = layui.jquery;
6 |
7 | $.get(iconUrl,function(data){
8 | var iconHtml = '';
9 | for(var i=1;i"+
11 | "" +
12 | "icon-" + data.split('.icon-')[i].split(':before')[0] +
13 | "";
14 | }
15 | $(".icons").html(iconHtml);
16 | $(".iconsLength").text(data.split(".icon-").length-1);
17 | })
18 |
19 | $("body").on("click",".icons li",function(){
20 | var copyText = document.getElementById("copyText");
21 | copyText.innerText = $(this).text();
22 | copyText.select();
23 | document.execCommand("copy");
24 | layer.msg("复制成功",{anim: 2});
25 | })
26 | })
27 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/systemSetting/linkList.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 友情链接--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/systemSetting/linksAdd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文章列表--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/systemSetting/logs.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 系统日志--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/systemSetting/logs.js:
--------------------------------------------------------------------------------
1 | layui.use(['table'],function(){
2 | var table = layui.table;
3 |
4 | //系统日志
5 | table.render({
6 | elem: '#logs',
7 | url : '../../json/logs.json',
8 | cellMinWidth : 95,
9 | page : true,
10 | height : "full-20",
11 | limit : 20,
12 | limits : [10,15,20,25],
13 | id : "systemLog",
14 | cols : [[
15 | {type: "checkbox", fixed:"left", width:50},
16 | {field: 'logId', title: '序号', width:60, align:"center"},
17 | {field: 'url', title: '请求地址', width:350},
18 | {field: 'method', title: '操作方式', align:'center',templet:function(d){
19 | if(d.method.toUpperCase() == "GET"){
20 | return ''+d.method+''
21 | }else{
22 | return ''+d.method+''
23 | }
24 | }},
25 | {field: 'ip', title: '操作IP', align:'center',minWidth:130},
26 | {field: 'timeConsuming', title: '耗时', align:'center',templet:function(d){
27 | return ''+d.timeConsuming+''
28 | }},
29 | {field: 'isAbnormal', title: '是否异常', align:'center',templet:function(d){
30 | if(d.isAbnormal == "正常"){
31 | return ''+d.isAbnormal+''
32 | }else{
33 | return ''+d.isAbnormal+''
34 | }
35 | }},
36 | {field: 'operator',title: '操作人', minWidth:100, templet:'#newsListBar',align:"center"},
37 | {field: 'operatingTime', title: '操作时间', align:'center', width:170}
38 | ]]
39 | });
40 |
41 | })
42 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/user/changePwd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 修改密码--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/user/userAdd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文章列表--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/user/userAdd.js:
--------------------------------------------------------------------------------
1 | layui.use(['form','layer'],function(){
2 | var form = layui.form
3 | layer = parent.layer === undefined ? layui.layer : top.layer,
4 | $ = layui.jquery;
5 |
6 | form.on("submit(addUser)",function(data){
7 | //弹出loading
8 | var index = top.layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.8});
9 | // 实际使用时的提交信息
10 | // $.post("上传路径",{
11 | // userName : $(".userName").val(), //登录名
12 | // userEmail : $(".userEmail").val(), //邮箱
13 | // userSex : data.field.sex, //性别
14 | // userGrade : data.field.userGrade, //会员等级
15 | // userStatus : data.field.userStatus, //用户状态
16 | // newsTime : submitTime, //添加时间
17 | // userDesc : $(".userDesc").text(), //用户简介
18 | // },function(res){
19 | //
20 | // })
21 | setTimeout(function(){
22 | top.layer.close(index);
23 | top.layer.msg("用户添加成功!");
24 | layer.closeAll("iframe");
25 | //刷新父页面
26 | parent.location.reload();
27 | },2000);
28 | return false;
29 | })
30 |
31 | //格式化时间
32 | function filterTime(val){
33 | if(val < 10){
34 | return "0" + val;
35 | }else{
36 | return val;
37 | }
38 | }
39 | //定时发布
40 | var time = new Date();
41 | var submitTime = time.getFullYear()+'-'+filterTime(time.getMonth()+1)+'-'+filterTime(time.getDate())+' '+filterTime(time.getHours())+':'+filterTime(time.getMinutes())+':'+filterTime(time.getSeconds());
42 |
43 | })
--------------------------------------------------------------------------------
/src/main/resources/static/page/user/userGrade.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 会员等级--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/src/main/resources/static/page/user/userInfo.js:
--------------------------------------------------------------------------------
1 | var form, $,areaData;
2 | layui.config({
3 | base : "../../js/"
4 | }).extend({
5 | "address" : "address"
6 | })
7 | layui.use(['form','layer','upload','laydate',"address"],function(){
8 | form = layui.form;
9 | $ = layui.jquery;
10 | var layer = parent.layer === undefined ? layui.layer : top.layer,
11 | upload = layui.upload,
12 | laydate = layui.laydate,
13 | address = layui.address;
14 |
15 | //上传头像
16 | upload.render({
17 | elem: '.userFaceBtn',
18 | url: '../../json/userface.json',
19 | method : "get", //此处是为了演示之用,实际使用中请将此删除,默认用post方式提交
20 | done: function(res, index, upload){
21 | var num = parseInt(4*Math.random()); //生成0-4的随机数,随机显示一个头像信息
22 | $('#userFace').attr('src',res.data[num].src);
23 | window.sessionStorage.setItem('userFace',res.data[num].src);
24 | }
25 | });
26 |
27 | //添加验证规则
28 | form.verify({
29 | userBirthday : function(value){
30 | if(!/^(\d{4})[\u4e00-\u9fa5]|[-\/](\d{1}|0\d{1}|1[0-2])([\u4e00-\u9fa5]|[-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/.test(value)){
31 | return "出生日期格式不正确!";
32 | }
33 | }
34 | })
35 | //选择出生日期
36 | laydate.render({
37 | elem: '.userBirthday',
38 | format: 'yyyy年MM月dd日',
39 | trigger: 'click',
40 | max : 0,
41 | mark : {"0-12-15":"生日"},
42 | done: function(value, date){
43 | if(date.month === 12 && date.date === 15){ //点击每年12月15日,弹出提示语
44 | layer.msg('今天是马哥的生日,也是layuicms2.0的发布日,快来送上祝福吧!');
45 | }
46 | }
47 | });
48 |
49 | //获取省信息
50 | address.provinces();
51 |
52 | //提交个人资料
53 | form.on("submit(changeUser)",function(data){
54 | var index = layer.msg('提交中,请稍候',{icon: 16,time:false,shade:0.8});
55 | //将填写的用户信息存到session以便下次调取
56 | var key,userInfoHtml = '';
57 | userInfoHtml = {
58 | 'realName' : $(".realName").val(),
59 | 'sex' : data.field.sex,
60 | 'userPhone' : $(".userPhone").val(),
61 | 'userBirthday' : $(".userBirthday").val(),
62 | 'province' : data.field.province,
63 | 'city' : data.field.city,
64 | 'area' : data.field.area,
65 | 'userEmail' : $(".userEmail").val(),
66 | 'myself' : $(".myself").val()
67 | };
68 | for(key in data.field){
69 | if(key.indexOf("like") != -1){
70 | userInfoHtml[key] = "on";
71 | }
72 | }
73 | window.sessionStorage.setItem("userInfo",JSON.stringify(userInfoHtml));
74 | setTimeout(function(){
75 | layer.close(index);
76 | layer.msg("提交成功!");
77 | },2000);
78 | return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
79 | })
80 |
81 | //修改密码
82 | form.on("submit(changePwd)",function(data){
83 | var index = layer.msg('提交中,请稍候',{icon: 16,time:false,shade:0.8});
84 | setTimeout(function(){
85 | layer.close(index);
86 | layer.msg("密码修改成功!");
87 | $(".pwd").val('');
88 | },2000);
89 | return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
90 | })
91 | })
--------------------------------------------------------------------------------
/src/main/resources/static/page/user/userList.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 用户中心--layui后台管理模板 2.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/src/main/resources/test.bat:
--------------------------------------------------------------------------------
1 | python -V
--------------------------------------------------------------------------------
/src/test/java/org/andot/jdatax/BaseTest.java:
--------------------------------------------------------------------------------
1 | package org.andot.jdatax;
2 |
3 | import org.andot.jdatax.JDataXApplication;
4 | import org.junit.runner.RunWith;
5 | import org.springframework.boot.test.context.SpringBootTest;
6 | import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
7 |
8 | @RunWith(SpringJUnit4ClassRunner.class)
9 | @SpringBootTest(classes=JDataXApplication.class)
10 | public class BaseTest {
11 | }
12 |
--------------------------------------------------------------------------------
/src/test/java/org/andot/jdatax/DBInfoTest.java:
--------------------------------------------------------------------------------
1 | package org.andot.jdatax;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | import javax.annotation.Resource;
7 |
8 | import org.junit.Test;
9 |
10 | import org.andot.jdatax.entity.DBInfo;
11 | import org.andot.jdatax.service.DBInfoService;
12 | import org.andot.jdatax.service.DataTransferService;
13 | import org.andot.jdatax.utils.DataBaseOperation;
14 | import org.andot.jdatax.vo.ResultJson;
15 |
16 | public class DBInfoTest extends BaseTest {
17 | @Resource
18 | private DBInfoService dbInfoService;
19 | @Resource
20 | private DataTransferService dataTransferService;
21 |
22 | @Test
23 | public void addDBInfo() {
24 | DBInfo dbInfo = new DBInfo();
25 | dbInfo.setDbName("mysql");
26 | dbInfo.setDbUser("root");
27 | dbInfo.setDbPwd("iesapp");
28 | System.err.println(dbInfoService.addDBInfo(dbInfo));
29 | }
30 |
31 | @Test
32 | public void getData() throws Exception{
33 | DBInfo dbInfo = new DBInfo();
34 | dbInfo.setDbName("test");
35 | dbInfo.setDbUser("bj");
36 | dbInfo.setDbPwd("Zd666666");
37 | dbInfo.setDbClass("com.microsoft.sqlserver.jdbc.SQLServerDriver");
38 | dbInfo.setDbUrl("jdbc:sqlserver://192.168.10.215:1433;DatabaseName=DynamicDatabase;");
39 | System.err.println(ResultJson.getJsonMsg(new ResultJson(1, DataBaseOperation.getTableData("CITY", "DICAREA", dbInfo), 0, "success")));
40 | }
41 |
42 | @Test
43 | public void getCount() throws Exception{
44 | DBInfo dbInfo = new DBInfo();
45 | dbInfo.setDbName("test");
46 | dbInfo.setDbUser("bj");
47 | dbInfo.setDbPwd("Zd666666");
48 | dbInfo.setDbClass("com.microsoft.sqlserver.jdbc.SQLServerDriver");
49 | dbInfo.setDbUrl("jdbc:sqlserver://192.168.10.215:1433;DatabaseName=DynamicDatabase;");
50 | System.err.println(ResultJson.getJsonMsg(new ResultJson(1, DataBaseOperation.getTableColumDetail("MINE_INFO", dbInfo), 0, "success")));
51 | }
52 |
53 |
54 | @Test
55 | public void dt() throws Exception{
56 | List dblist = new ArrayList();
57 | DBInfo dbInfo1 = new DBInfo();
58 | dbInfo1.setDbName("DynamicDatabase");
59 | dbInfo1.setDbUser("bj");
60 | dbInfo1.setDbPwd("Zd666666");
61 | dbInfo1.setDbClass("com.microsoft.sqlserver.jdbc.SQLServerDriver");
62 | dbInfo1.setDbUrl("jdbc:sqlserver://192.168.159.129:1433;DatabaseName=DynamicDatabase;");
63 | dblist.add(dbInfo1);
64 | DBInfo dbInfo2 = new DBInfo();
65 | dbInfo2.setDbName("mgeids");
66 | dbInfo2.setDbUser("root");
67 | dbInfo2.setDbPwd("andot");
68 | dbInfo2.setDbClass("com.mysql.jdbc.Driver");
69 | dbInfo2.setDbUrl("jdbc:mysql://127.0.0.1:3306/mgeids?useUnicode=true&characterEncoding=UTF-8");
70 | dblist.add(dbInfo2);
71 | List tables = new ArrayList();
72 | tables.add("ROLE");
73 | tables.add("MINE_SURVEY_INFO");
74 | System.err.println(ResultJson.getJsonMsg(new ResultJson(1, dataTransferService.dataTransfer(dblist, tables, null), 0, "success")));
75 | }
76 |
77 |
78 | @Test
79 | public void getIdMaxValue() {
80 | DBInfo dbInfo2 = new DBInfo();
81 | dbInfo2.setDbName("mgeids");
82 | dbInfo2.setDbUser("root");
83 | dbInfo2.setDbPwd("andot");
84 | dbInfo2.setDbClass("com.mysql.jdbc.Driver");
85 | dbInfo2.setDbUrl("jdbc:mysql://127.0.0.1:3306/mgeids?useUnicode=true&characterEncoding=UTF-8");
86 | List