IT-KIMI_SHI\SINOIT.KIMI
2018-12-07 50eb1d766c470dc6ff927199eaee934f972a8b70
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
require.config({
    baseUrl: '../resources/js',
    paths: {
        "jquery": "lib/bootstrap/js/jquery-2.1.4.min",
        "bootstrap": "lib/bootstrap/js/bootstrap.min",
        "domReady" : 'lib/domReady',
        "datatables.net": "lib/dataTables/js/jquery.dataTables.min",
        "DT-bootstrap": "lib/dataTables/js/dataTables.bootstrap.min",
        "jquery-loading": "lib/jqueryLoading/jquery.loading",
        "validate": "lib/jquery.validate.min",
        "jquery-confirm": "lib/confirm/jquery-confirm.min",
        "confirmModal": "lib/confirm/confirm-bootstrap",
        "vue": "lib/vue/vue"
    },
    shim : {
        "bootstrap" : { "deps" :['jquery'] },
        "jquery-dataTable" : { "deps" :['jquery'] },
        "dataTable-bootstrap" : { "deps" :['bootstrap'] },
        "jquery-confirm" : { "deps" :['jquery', 'bootstrap'] },
        "confirmModal" : { "deps" :['jquery'] }
    },
    waitSeconds: 30
});
 
require(['jquery', 'domReady', 'vue', 'validate',
    'datatables.net', 'DT-bootstrap', 'jquery-loading', 'bootstrap', 'jquery-confirm', 'confirmModal'], function ($,domReady,vue,validate) {
    domReady(function(){
        var app = new vue({
           el: '#app',
           data: {
               userInfo: [],
               userName: '',
               password: '',
               userType: 0,
               describe: '',
               noJoinGroup: [],
               joinedGroup: [],
               isShow: 'none',
               test: [],
               groupIndex: -1
           },
           methods: {
               addNewUser: function(){
                    $("#addUserForm").submit();
               },
               updateUser: function(){
                   $("#updateUserForm").submit();
               },
               upToAdmin: function(index){
                   $('.card-body').loading('toggle');
                   $.ajax({
                       type: 'POST',
                       url: 'upToAdmin',
                       data: {
                           userName: this.userInfo[index].userName
                       },
                       success: function(data){
                           $('.card-body').loading('toggle');
                           app.userInfo = data;
                           $.dialog({
                               title: '提示',
                               content: '操作成功!'
                           });
                       },
                       error: function(){
                           $('.card-body').loading('toggle');
                           $.dialog({
                               title: '提示',
                               content: '操作失败!'
                           });
                       }
                   });
               },
               addNewGroup: function(){
                   $("#addGroupModal").find(".modal-dialog").loading('toggle');
                   $(".loading-overlay").css("z-index", "100002");
                   $("#addGroupForm").submit();
               },
               getGroupInfo: function(index){
                   this.groupIndex = index;
                   this.joinedGroup = [];
                   this.noJoinGroup = [];
                   app.$nextTick(function(){
                       app.isShow = 'block';
                       var deferred1 = $.ajax({
                           type: 'POST',
                           url: 'getJoinedGroup',
                           data: {
                               userId: this.userInfo[index].userId
                           },
                           success: function(data){
                               app.isShow = 'none';
                               app.joinedGroup = data;
                           }
                       });
 
                       var deferred2 = $.ajax({
                           type: 'POST',
                           url: 'getNoJoinGroup',
                           data: {
                               userId: this.userInfo[index].userId
                           },
                           success: function(data){
                               app.isShow = 'none';
                               app.noJoinGroup = data;
                           }
                       });
                   });
               },
               changeGroup: function(groupName, type){
                   $("#groupManageModal").find(".modal-dialog").loading('toggle');
                   $(".loading-overlay").css("z-index", "100002");
                   if(type == 'joined'){
                       var url = 'deleteUserFromGroup';
                   }else if(type == 'noJoin'){
                       url = 'addUserToGroup';
                   }
                   $.ajax({
                       type: 'POST',
                       url: url,
                       data: {
                           userId: this.userInfo[this.groupIndex].userId,
                           groupName: groupName
                       },
                       success: function(data){
                           app.joinedGroup = data.joinedGroup;
                           app.noJoinGroup = data.noJoinGroup;
                           app.$nextTick(function(){
                               $("#groupManageModal").find(".modal-dialog").loading('toggle');
                           });
                       }
                   });
               },
               deleteOneUser: function(index){
                   $.confirm({
                       title: '警告!',
                       content: '确认删除此用户?',
                       buttons: {
                           '确认': function(){
                               $.ajax({
                                   type: 'POST',
                                   url: 'deleteOneUser',
                                   data: {
                                       userId: app.userInfo[index].userId
                                   },
                                   success: function(data){
                                       app.userInfo = data;
                                       $.dialog({
                                           title: '提示',
                                           content: '操作成功!'
                                       });
                                   },
                                   error: function(){
                                       $.dialog({
                                           title: '提示',
                                           content: '操作失败!'
                                       });
                                   }
                               })
                           },
                           '取消': function(){
 
                           }
                       }
                   });
               }
           },
           mounted: function () {
               $('.card-body').loading('toggle');
               $.get("getAllUsersInfo",function(result){
                   $('.card-body').loading('toggle');
                   app.userInfo = result;
                   app.$nextTick(function(){
                       $('.datatable').DataTable({
                           language: {
                               "sProcessing": "处理中...",
                               "sLengthMenu": "显示 _MENU_ 项结果",
                               "sZeroRecords": "没有匹配结果",
                               "sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
                               "sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
                               "sInfoFiltered": "(由 _MAX_ 项结果过滤)",
                               "sInfoPostFix": "",
                               "sSearch": "搜索:",
                               "sUrl": "",
                               "sEmptyTable": "表中数据为空",
                               "sLoadingRecords": "载入中...",
                               "sInfoThousands": ",",
                               "oPaginate": {
                                   "sFirst": "首页",
                                   "sPrevious": "上页",
                                   "sNext": "下页",
                                   "sLast": "末页"
                               },
                               "oAria": {
                                   "sSortAscending": ": 以升序排列此列",
                                   "sSortDescending": ": 以降序排列此列"
                               }
                           }
                       });
                   });
               });
               $("#addUserForm").validate({
                   errorElement : 'div',
                   errorClass : 'warning-block',
                   focusInvalid : true,
                   ignore : "",
                   rules : {
                       userName : {
                           required : true,
                           maxlength:30,
                           remote: {
                               url: 'checkUser',
                               type: 'POST',
                               dataType: 'json',
                               data: {
                                   userName: function() {
                                       return $("input[name='userName']").val();
                                   }
                               }
                           }
                       },
                       password : {
                           required : true,
                           minlength : 5
                       },
                       passwordRepeat : {
                           required : true,
                           minlength : 5,
                           equalTo : "#password"
                       },
                       userType : {
                           required : true
                       }
                   },
                   messages : {
                       userName : {
                           required : "用户名称为必填项",
                           maxlength: "最大长度为30个字符",
                           remote: "用户名已被占用"
                       },
                       password : {
                           required : "密码为必填项",
                           minlength : "密码长度不能小于5个字母"
                       },
                       passwordRepeat : {
                           required : "密码为必填项",
                           minlength : "密码长度不能小于5个字母",
                           equalTo: "两次密码输入不一致"
                       },
                       userType : {
                           required : "请选择一种用户类型"
                       }
                   },
                   submitHandler : function(form){
                       $("#addUserModal").find(".modal-dialog").loading('toggle');
                       $(".loading-overlay").css("z-index", "100002");
                       var deferred = $.ajax({
                           type: 'POST',
                           url: 'addNewUser',
                           data : $(form).serialize()
                       });
                       deferred.done(function(data){
                           $("#addUserModal").find(".modal-dialog").loading('toggle');
                           $(form)[0].reset();
                           app.userInfo = data;
                           $("#addUserModal").modal('toggle');
                       })
                   }
               });
               $("#updateUserForm").validate({
                   errorElement : 'div',
                   errorClass : 'warning-block',
                   focusInvalid : true,
                   ignore : "",
                   rules : {
                       oldPassword : {
                           required : true,
                           remote: {
                               url: 'checkPassword',
                               type: 'POST',
                               dataType: 'json',
                               data: {
                                   password: function() {
                                       return $("input[name='oldPassword']").val();
                                   }
                               }
                           }
                       },
                       newPassword : {
                           required : true,
                           minlength : 5
                       },
                       newPasswordRepeat : {
                           required : true,
                           minlength : 5,
                           equalTo : "#newPassword"
                       }
                   },
                   messages : {
                       oldPassword : {
                           required : "密码为必填项",
                           remote: "原密码不正确"
                       },
                       newPassword : {
                           required : "密码为必填项",
                           minlength : "密码长度不能小于5个字母"
                       },
                       newPasswordRepeat : {
                           required : "密码为必填项",
                           minlength : "密码长度不能小于5个字母",
                           equalTo: "两次密码输入不一致"
                       }
                   },
                   submitHandler : function(form){
                       $("#updateUserModal").find(".modal-dialog").loading('toggle');
                       $(".loading-overlay").css("z-index", "100002");
                       var deferred = $.ajax({
                           type: 'POST',
                           url: 'updateUser',
                           data : {
                               password: $("input[name='newPassword']").val()
                           }
                       });
                       deferred.done(function(data){
                           $("#updateUserModal").find(".modal-dialog").loading('toggle');
                           $(form)[0].reset();
                           $("#updateUserModal").modal('toggle');
                           top.window.location.href="../login";
                       });
                       deferred.fail(function(){
                           $("#updateUserModal").modal('toggle');
                           $.alert({
                               title: '提示',
                               content: '修改失败!'
                           });
                       })
                   }
               });
               $("#addGroupForm").validate({
                   errorElement : 'div',
                   errorClass : 'warning-block',
                   focusInvalid : true,
                   ignore : "",
                   rules : {
                       groupName : {
                           required : true,
                           remote: {
                               url: 'checkGroup',
                               type: 'POST',
                               dataType: 'json',
                               data: {
                                   groupName: function() {
                                       return $("input[name='groupName']").val();
                                   }
                               }
                           }
                       }
                   },
                   messages : {
                       groupName : {
                           required : "分组名为必填项",
                           remote: "此名称已被使用"
                       }
                   },
                   submitHandler : function(form){
                       var deferred = $.ajax({
                           type: 'POST',
                           url: 'addNewGroup',
                           data : $(form).serialize()
                       });
                       deferred.done(function(data){
                           $("#addGroupModal").find(".modal-dialog").loading('toggle');
                           $(form)[0].reset();
                           $("#addGroupModal").modal('toggle');
                           $.dialog({
                               title: '提示',
                               content: '添加成功!'
                           });
                       });
                       deferred.fail(function(){
                           $("#addGroupModal").modal('toggle');
                           $.dialog({
                               title: '提示',
                               content: '添加失败!'
                           });
                       })
                   }
               });
           }
        });
    })
});