…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),refresh:['','',""].join(""),skip:function(){return['到第','','页',""].join("")}()};return['',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
"].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});
--------------------------------------------------------------------------------
/src/main/resources/static/layui/lay/modules/laytpl.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.5.6 MIT License By https://www.layui.com */
2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});
--------------------------------------------------------------------------------
/src/main/resources/static/layui/lay/modules/rate.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.5.6 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='",u=1;u<=i.length;u++){var r=' ";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+' ":n+=r}n+="
"+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)});
--------------------------------------------------------------------------------
/src/main/resources/static/layui/lay/modules/util.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.5.6 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var t=layui.$,i={fixbar:function(e){var i,n,a="layui-fixbar",o="layui-fixbar-top",r=t(document),l=t("body");e=t.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var c=[e.bar1,e.bar2,""],u=t(['',e.bar1?'- '+c[0]+"
":"",e.bar2?'- '+c[1]+"
":"",'- '+c[2]+"
","
"].join("")),g=u.find("."+o),s=function(){var t=r.scrollTop();t>=e.showHeight?i||(g.show(),i=1):i&&(g.hide(),i=0)};t("."+a)[0]||("object"==typeof e.css&&u.css(e.css),l.append(u),s(),u.find("li").on("click",function(){var i=t(this),n=i.attr("lay-type");"top"===n&&t("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,n)}),r.on("scroll",function(){clearTimeout(n),n=setTimeout(function(){s()},100)}))},countdown:function(e,t,i){var n=this,a="function"==typeof t,o=new Date(e).getTime(),r=new Date(!t||a?(new Date).getTime():t).getTime(),l=o-r,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=t);var u=setTimeout(function(){n.countdown(e,r+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],t,u),l<=0&&clearTimeout(u),u},timeAgo:function(e,t){var i=this,n=[[],[]],a=(new Date).getTime()-new Date(e).getTime();return a>26784e5?(a=new Date(e),n[0][0]=i.digit(a.getFullYear(),4),n[0][1]=i.digit(a.getMonth()+1),n[0][2]=i.digit(a.getDate()),t||(n[1][0]=i.digit(a.getHours()),n[1][1]=i.digit(a.getMinutes()),n[1][2]=i.digit(a.getSeconds())),n[0].join("-")+" "+n[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=18e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(e,t){var i="";e=String(e),t=t||2;for(var n=e.length;n/g,">").replace(/'/g,"'").replace(/"/g,""")},event:function(e,n,a){var o=t("body");return a=a||"click",n=i.event[e]=t.extend(!0,i.event[e],n)||{},i.event.UTIL_EVENT_CALLBACK=i.event.UTIL_EVENT_CALLBACK||{},o.off(a,"*["+e+"]",i.event.UTIL_EVENT_CALLBACK[e]),i.event.UTIL_EVENT_CALLBACK[e]=function(){var i=t(this),a=i.attr(e);"function"==typeof n[a]&&n[a].call(this,i)},o.on(a,"*["+e+"]",i.event.UTIL_EVENT_CALLBACK[e]),n}};!function(e,t,i){"$:nomunge";function n(){a=t[l](function(){o.each(function(){var t=e(this),i=t.width(),n=t.height(),a=e.data(this,u);(i!==a.w||n!==a.h)&&t.trigger(c,[a.w=i,a.h=n])}),n()},r[g])}var a,o=e([]),r=e.resize=e.extend(e.resize,{}),l="setTimeout",c="resize",u=c+"-special-event",g="delay",s="throttleWindow";r[g]=250,r[s]=!0,e.event.special[c]={setup:function(){if(!r[s]&&this[l])return!1;var t=e(this);o=o.add(t),e.data(this,u,{w:t.width(),h:t.height()}),1===o.length&&n()},teardown:function(){if(!r[s]&&this[l])return!1;var t=e(this);o=o.not(t),t.removeData(u),o.length||clearTimeout(a)},add:function(t){function n(t,n,o){var r=e(this),l=e.data(this,u)||{};l.w=n!==i?n:r.width(),l.h=o!==i?o:r.height(),a.apply(this,arguments)}if(!r[s]&&this[l])return!1;var a;return e.isFunction(t)?(a=t,n):(a=t.handler,void(t.handler=n))}}}(t,window),e("util",i)});
--------------------------------------------------------------------------------
/src/main/resources/templates/admin/m-admin-edit.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 修改管理员信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 管理员
15 | 管理员列表
16 | 编辑管理员
17 |
18 |
19 |
20 |
43 |
44 |
75 |
76 |
--------------------------------------------------------------------------------
/src/main/resources/templates/admin/m-admin-save.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 添加管理员信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 管理员
15 | 管理员列表
16 | 添加管理员
17 |
18 |
19 |
20 |
42 |
43 |
69 |
70 |
--------------------------------------------------------------------------------
/src/main/resources/templates/lokhouse/key-add.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 公寓管理信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 公寓
15 | 列表
16 | 信息
17 |
18 |
19 |
20 |
56 |
57 |
83 |
84 |
--------------------------------------------------------------------------------
/src/main/resources/templates/lokhouse/key-edit.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 修改公寓信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 公寓
15 | 列表
16 | 编辑公寓
17 |
18 |
19 |
20 |
57 |
58 |
91 |
92 |
--------------------------------------------------------------------------------
/src/main/resources/templates/loops/loopsedit.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 退宿离校信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 退宿离校
15 | 列表
16 | 编辑退宿
17 |
18 |
19 |
20 |
43 |
44 |
75 |
76 |
--------------------------------------------------------------------------------
/src/main/resources/templates/loops/loopslist.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 退宿离校列表
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 退宿离校
15 | 列表
16 |
17 |
18 | 刷新
19 |
20 |
21 |
22 |
25 |
26 |
27 |
28 |
104 |
108 |
109 |
--------------------------------------------------------------------------------
/src/main/resources/templates/loops/loppsadd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 添加退宿离校
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 退宿离校
15 | 列表
16 | 信息
17 |
18 |
19 |
20 |
42 |
43 |
69 |
70 |
--------------------------------------------------------------------------------
/src/main/resources/templates/m-home-page.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 首页
6 |
7 |
8 |
19 |
20 |
21 |
26 |
38 |
39 |
--------------------------------------------------------------------------------
/src/main/resources/templates/m-login.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 智慧公寓后台系统
7 |
8 |
9 |
31 |
32 |
33 |
34 |
35 |
智慧公寓后台系统
36 |
37 |
57 |
58 |
86 |
87 |
--------------------------------------------------------------------------------
/src/main/resources/templates/oop/oopadd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 添加门禁出入
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 门禁出入
15 | 列表
16 | 信息
17 |
18 |
19 |
20 |
49 |
50 |
76 |
77 |
--------------------------------------------------------------------------------
/src/main/resources/templates/oop/oopedit.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 门禁出入信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 门禁出入
15 | 列表
16 | 编辑门禁
17 |
18 |
19 |
20 |
50 |
51 |
83 |
84 |
--------------------------------------------------------------------------------
/src/main/resources/templates/oop/ooplist.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 门禁出入列表
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 门禁出入
15 | 列表
16 |
17 |
18 | 刷新
19 |
20 |
21 |
22 |
25 |
26 |
27 |
28 |
105 |
109 |
110 |
--------------------------------------------------------------------------------
/src/main/resources/templates/user/useredit.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 修改用户信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 用户
15 | 列表
16 | 编辑用户
17 |
18 |
19 |
20 |
43 |
44 |
75 |
76 |
--------------------------------------------------------------------------------
/src/main/resources/templates/user/usersave.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 添加用户信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 用户
15 | 列表
16 | 添加用户
17 |
18 |
19 |
20 |
42 |
43 |
69 |
70 |
--------------------------------------------------------------------------------
/src/main/resources/templates/userop/useradd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 登记管理信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 登记
15 | 列表
16 | 登记管理
17 |
18 |
19 |
20 |
56 |
57 |
83 |
84 |
--------------------------------------------------------------------------------
/src/main/resources/templates/userop/userdit.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 登记管理信息
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 登记
15 | 列表
16 | 编辑登记
17 |
18 |
19 |
20 |
57 |
58 |
91 |
92 |
--------------------------------------------------------------------------------
/src/main/resources/templates/vivew/login.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 智慧公寓用户系统
7 |
8 |
9 |
31 |
32 |
33 |
34 |
35 |
智慧公寓用户系统
36 |
37 |
57 |
58 |
86 |
87 |
--------------------------------------------------------------------------------
/src/test/java/com/family/SpringbootFamilytestApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.family;
2 |
3 | import org.junit.jupiter.api.Test;
4 | import org.springframework.boot.test.context.SpringBootTest;
5 |
6 | @SpringBootTest
7 | class SpringbootFamilytestApplicationTests {
8 |
9 | @Test
10 | void contextLoads() {
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------