myapp_evenfuture 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/Dockerfile +7 -0
  2. package/app.js +58 -0
  3. package/bin/www +91 -0
  4. package/package.json +20 -0
  5. package/public/css/layui.css +1 -0
  6. package/public/css/lizhi.webp +0 -0
  7. package/public/css/modules/code.css +1 -0
  8. package/public/css/modules/laydate/default/laydate.css +1 -0
  9. package/public/css/modules/layer/default/icon-ext.png +0 -0
  10. package/public/css/modules/layer/default/icon.png +0 -0
  11. package/public/css/modules/layer/default/layer.css +1 -0
  12. package/public/css/modules/layer/default/loading-0.gif +0 -0
  13. package/public/css/modules/layer/default/loading-1.gif +0 -0
  14. package/public/css/modules/layer/default/loading-2.gif +0 -0
  15. package/public/font/iconfont.eot +0 -0
  16. package/public/font/iconfont.svg +554 -0
  17. package/public/font/iconfont.ttf +0 -0
  18. package/public/font/iconfont.woff +0 -0
  19. package/public/font/iconfont.woff2 +0 -0
  20. package/public/layui.js +5 -0
  21. package/public/stylesheets/style.css +8 -0
  22. package/routes/api.js +505 -0
  23. package/routes/datatime.js +17 -0
  24. package/routes/db.js +158 -0
  25. package/routes/index.js +28 -0
  26. package/routes/nppBackup/sql.js.2024-07-08_082213.bak +25 -0
  27. package/routes/nppBackup/sql.js.2024-07-08_082214.bak +25 -0
  28. package/routes/sql.js +25 -0
  29. package/routes/switch.js +28 -0
  30. package/routes/switch1.js +12 -0
  31. package/views/addstu.ejs +276 -0
  32. package/views/error.ejs +4 -0
  33. package/views/hisinfo.ejs +301 -0
  34. package/views/hisinfo1.ejs +301 -0
  35. package/views/login.ejs +203 -0
  36. package/views/modroom.ejs +405 -0
  37. package/views/modstu.ejs +327 -0
  38. package/views/rtinfo.ejs +234 -0
  39. package/views/rtinfo1.ejs +234 -0
@@ -0,0 +1,234 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <title>签到管理系统</title>
7
+ <meta name="renderer" content="webkit">
8
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9
+ <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <link href="/css/layui.css" rel="stylesheet">
11
+ </head>
12
+
13
+ <body>
14
+ <div class="layui-layout layui-layout-admin">
15
+ <div class="layui-header">
16
+ <div class="layui-logo layui-hide-xs " style="background-color:rgb(146, 151, 209);color:black ">签到管理系统</div>
17
+
18
+ <ul class="layui-nav layui-layout-right">
19
+ <li class="layui-nav-item layui-hide layui-show-sm-inline-block">
20
+ <a href="javascript:;">
21
+ <img src="/css/lizhi.webp" class="layui-nav-img">
22
+ <!-- tester -->
23
+ </a>
24
+ <dl class="layui-nav-child">
25
+ <dd><a href="/">退出登录</a></dd>
26
+ </dl>
27
+ </li>
28
+ <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
29
+ <a href="javascript:;">
30
+ <i class="layui-icon layui-icon-more-vertical"></i>
31
+ </a>
32
+ </li>
33
+ </ul>
34
+ </div>
35
+
36
+ <div class="layui-side " style="background-color:rgb(146, 151, 209) ">
37
+ <div class="layui-side-scroll">
38
+ <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
39
+
40
+ <ul class="layui-nav layui-nav-tree" lay-filter="test" style="background-color:rgb(146, 151, 209) ">
41
+ <!-- Swipe -->
42
+ <li class="layui-nav-item "><a href="/switch1" style="color:rgb(0, 0, 0)">实时签到信息</a></li>
43
+ <!-- 实时签到信息只统计当天的 -->
44
+ <li class="layui-nav-item"><a href="switch1/hisinfo1" style="color:rgb(0, 0, 0)">历史签到信息</a></li>
45
+
46
+ <!-- <li class="layui-nav-item "><a href="switch/modstu" style="color:rgb(0, 0, 0)">用户管理</a></li>
47
+ <li class="layui-nav-item " ><a href="switch/modroom" style = "color: black;">房间管理</a></li> -->
48
+ </ul>
49
+
50
+ </div>
51
+ </div>
52
+
53
+ <div class="layui-body" style="height: 100%">
54
+ <form class="layui-form" action="" id="timesearch_form" name="timesearch_form">
55
+ <div class="layui-form-item">
56
+ <div class="layui-inline" style="margin-top: 25px;">
57
+ <label class="layui-form-label" style="white-space: nowrap">签到截止时间</label>
58
+ <div class="layui-input-inline" style="width: 300px;">
59
+ <input type="text" class="layui-input" id="qdtime">
60
+ </div>
61
+ </div>
62
+ </div>
63
+
64
+ <table class="layui-table" id="record" lay-filter="demot1">
65
+ </table>
66
+ </form>
67
+ </div>
68
+
69
+ <div class="layui-footer">
70
+ 学习是一种信仰。
71
+ </div>
72
+ </div>
73
+
74
+ <script src="/layui.js"></script>
75
+ <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script>
76
+
77
+ <script>
78
+ //JS
79
+ layui.use(['element', 'layer', 'util', 'table', 'laydate'], function () {
80
+ var element = layui.element;
81
+ var layer = layui.layer;
82
+ var util = layui.util;
83
+ var table = layui.table;
84
+ var laydate = layui.laydate;
85
+ var $ = layui.$;
86
+
87
+ $(function () {
88
+ if ((sessionStorage.getItem("qdtime") == null)){
89
+ $("#record").hide();
90
+ }
91
+ else{
92
+ $("#record").show();
93
+ }
94
+ $('#qdtime').val(sessionStorage.getItem("qdtime"));
95
+ });
96
+
97
+ laydate.render({
98
+ elem: '#qdtime'
99
+ , type: 'time'
100
+ , done: function (value, date) {
101
+ sessionStorage.setItem("qdtime", value);
102
+ $.ajaxSetup({
103
+ data: {
104
+ sign: 0
105
+ }
106
+ });
107
+ $.ajax({
108
+ type: 'post',
109
+ url: '/api/timesearchrt',
110
+ data: {
111
+ time_h: ("0" + date.hours).slice(-2),
112
+ time_m: ("0" + date.minutes).slice(-2),
113
+ time_s: ("0" + date.seconds).slice(-2),
114
+ et: ("0" + date.hours).slice(-2) + ':' + ("0" + date.minutes).slice(-2) + ':' + ("0" + date.seconds).slice(-2),
115
+ sign: 2
116
+ },
117
+ success: function (data) {
118
+ layer.msg('签到截止时间 ' + sessionStorage.getItem("qdtime") + ' 设置成功!');
119
+ top.location.href = '/';
120
+ top.location.reload();
121
+ }
122
+ });
123
+ }
124
+ });
125
+
126
+ //头部事件
127
+ util.event('lay-header-event', {
128
+ menuLeft: function (othis) { // 左侧菜单事件
129
+ layer.msg('展开左侧菜单的操作', { icon: 0 });
130
+ },
131
+ menuRight: function () { // 右侧菜单事件
132
+ layer.open({
133
+ type: 1,
134
+ title: '作者',
135
+ content: '<div style="padding: 15px;">信息工程学院<br/>祝乙文,姜莱</div>',
136
+ area: ['150px', '100%'],
137
+ offset: 'rt', // 右上角
138
+ anim: 'slideLeft', // 从右侧抽屉滑出
139
+ shadeClose: true,
140
+ scrollbar: false
141
+ });
142
+ }
143
+ });
144
+
145
+ table.render({
146
+ elem: '#record',
147
+ url: '/api/recordlistrt',
148
+ toolbar: true,
149
+ title: '签到记录',
150
+ totalRow: true,
151
+ page: true,
152
+ id: 'abc',
153
+ limit: 10,
154
+ limits: [5, 10, 20, 30],
155
+ initSort: {
156
+ field: 'time',
157
+ type: 'desc'
158
+ },
159
+ parseData: function (res) { //res 即为原始返回的数据
160
+ var current_pages;
161
+ if (this.page === true) current_pages = 1;
162
+ else current_pages = this.page.curr;
163
+ var data = res.data.slice(this.limit * (current_pages - 1), this.limit * current_pages);
164
+ return {
165
+ "code": res.code,
166
+ "msg": res.msg,
167
+ "count": res.data.length,
168
+ "data": data
169
+ }
170
+ },
171
+ sort: true,
172
+ cols: [
173
+ [{
174
+ field: 'stuid',
175
+ title: '学号',
176
+ width: 200,
177
+ sort: true
178
+ }, {
179
+ field: 'name',
180
+ title: '姓名',
181
+ width: 200
182
+ }, {
183
+ field: 'type',
184
+ title: '类型',
185
+ width: 200,
186
+ sort: true
187
+ }, {
188
+ field: 'room',
189
+ title: '教室',
190
+ width: 200
191
+ }, {
192
+ field: 'time',
193
+ title: '签到时间',
194
+ sort: true,
195
+ }]
196
+ ]
197
+ });
198
+
199
+ setInterval(function myrefresh() {
200
+ $.ajax({
201
+ url: '/api/check',
202
+ method: 'get',
203
+ data: {},
204
+ success: function (data) {
205
+ if (data.flag1 == 0) {
206
+ sessionStorage.setItem("qdtime", "");
207
+ sessionStorage.setItem("timerange", "");
208
+ sessionStorage.setItem("username", "");
209
+ }
210
+ if (data.flag == 1) {
211
+ // table.reload('/');
212
+ top.location.href = '/';
213
+ top.location.reload();
214
+ layer.msg(data.id + ' 签到成功!');
215
+ }
216
+ else if (data.flag == 2) {
217
+ // table.reload('/');
218
+ top.location.href = '/';
219
+ top.location.reload();
220
+ layer.msg(data.id + ' 重复刷卡!');
221
+ }
222
+ },
223
+ error: function (data) {
224
+ alert("调用失败!");
225
+ }
226
+ });
227
+ }, 1000);
228
+
229
+ });
230
+ </script>
231
+
232
+ </body>
233
+
234
+ </html>