Administrator
2022-09-14 58d006e05dcf2a20d0ec5367dd03d66a61db6849
提交 | 用户 | 时间
58d006 1 /**
A 2 * date: 
3 * author: neeler
4 */
5
6 //test data start
7 // var data_getList = Mock.mock('/basicconfig/gates/getList.htm', {code: 0, list: [{id: 1, gatesNo: '0001', name: '门禁1', cantruck: true, canperson: false, cancar: true, cancar2: true, departname: '部门1', depart: 1}], pages: 12})
8 // var data_getDepartList = Mock.mock('/enterprise/depart/getList.htm', {code: 0, list: [
9 //     {id: 1,bianhao: '01',name: '河南明泰',note: '',address: '河南省巩义市', level: 1, pid: 0},
10 //     {id: 2,bianhao: '0101',name: '企管部',note: '',address: '办公大楼1楼右', level: 2, pid: 1},
11 //     {id: 3,bianhao: '010101',name: '铝锭库',note: '',address: '南门挨着磅房', level: 3, pid: 2},
12 //     {id: 4,bianhao: '0102',name: '政务部',note: '',address: '办公大楼1楼左', level: 2, pid: 1},
13 //     {id: 5,bianhao: '0103',name: '信息中心',note: '',address: '办公大楼4楼最西', level: 2, pid: 1},
14 //     {id: 6,bianhao: '02',name: '高精板带',note: '',address: '河南省巩义市', level: 1, pid: 0},
15 //     {id: 7,bianhao: '0201',name: '企管部',note: '',address: '办公大楼1楼左', level: 2, pid: 6},
16 //     {id: 8,bianhao: '0202',name: '政务部',note: '',address: '办公大楼', level: 2, pid: 6},
17 //     {id: 9,bianhao: '03',name: '郑州明泰',note: '',address: '河南省郑州市', level: 1, pid: 0},
18 //     {id: 10,bianhao: '0301',name: '企管部',note: '',address: '办公大楼1楼右', level: 2, pid: 9}
19 //     ]})
20 // var data_doDel = Mock.mock('/basicconfig/gates/delItem.htm', {code: 0, errmsg: '此岗位正在使用中不能删除!'})
21 // var data_doSave = Mock.mock('/basicconfig/gates/saveItem.htm', {code: 0, errmsg: '此岗位正在使用中不能删除!'})
22 //test data end
23
24 window.I = {
25     PZ: 30,
26     keyword: $('#keyword'),
27     searchBtn: $('#searchBtn'),
28     pageValue: !!$('#p').val() ? $('#p').val() - 1 : 0,
29     keywordValue: $('#k').val(),
30     dValue: parseInt($('#d').val()) || null,
31     newObj: $('#newObj'),
32     modal: $('#modal'),
33     save: $('#save'),
34     departName: $('#departName'),
35     departModal: $('#departModal'),
36     search: $('#search'),
37     saveDepart: $('#saveDepart')
38 }
39
40 var GateObj = {
41     id: 0,
42     gatesNo: '',
43     name: '',
44     cantruck: false,
45     canperson: false,
46     cancar: false,
47     cancar2: false,
48     departname: '',
49     depart: '',
50     password: ''
51 }
52
53 var ViewModel = function() {
54     var self = this;
55     self.o = ko.observable(ko.mapping.fromJS(GateObj));
56
57     self.keyword = ko.observable(I.keywordValue);
58     self.list = ko.observableArray();
59
60     self.dList = ko.observableArray();
61
62     self.edit = function(item) {
63         doEdit(item);
64     }
65     self.del = function(item) {
66         delConfirm(item);
67     }
68     self.did = ko.observable(I.dValue);
69
70     self.change = function() {
71         doOpen();
72     }
73
74     self.mclient = function(item) {
75         parent.closableTab.addTab({
76             'id': new Date().getTime(),
77             'name': '门禁客户端配置',
78             'url': '/basicinfo/gates_mclient.jsf?relationno=' + item.gatesNo + '&name=' + item.name,
79             'closable': true
80         });
81     }
82     self.cequipment = function(item) {
83         parent.closableTab.addTab({
84             'id': new Date().getTime(),
85             'name': '门禁客户端配置',
86             'url': '/basicinfo/gates_cequipmentList.jsf?relationno=' + item.gatesNo + '&name=' + item.name,
87             'closable': true
88         });
89     }
90 }
91
92 $(function () {
93     window.vm = new ViewModel();
94     ko.applyBindings(vm);
95     doSearch();
96     getDepartList();
97     pageInit();
98 });
99
100 function pageInit() {
101     I.saveDepart.click(function(event) {
102         vm.o().depart(I.selected.id);
103         vm.o().departname(I.selected.text);
104     });
105     I.search.keyup(function(event) {
106         var to = false;
107         if(to) {
108             clearTimeout(to);
109         }
110         to = setTimeout(function () {
111             var v = I.search.val();
112             $('#jstree_Enterprise').jstree(true).search(v);
113         }, 250);
114     });
115     I.departName.click(function(event) {
116         I.departModal.modal('show');
117     });
118     I.save.click(function(event) {
119         if (valid()) {
120             doSave();
121         }
122     });
123     I.newObj.click(function(event) {
124         vm.o(ko.mapping.fromJS(GateObj));
125         getNewNo();
126         I.modal.modal('show');
127     });
128     I.searchBtn.click(function(event) {
129         doOpen();
130     });
131     I.modal.on('hidden.bs.modal', function (e) {
132         clearError();
133     });
134     I.keyword.on(ISIE ? 'keydown' : 'keyup', function (event) {
135         if (event.keyCode == 13) {
136             doOpen();
137         }
138     });
139 }
140
141 function doOpen() {
142     var k = $.trim(vm.keyword());
143     k = !!k ? '?keyword=' + k : '';
144     var d = $.trim(vm.did());
145     d = !!d ? 'd=' + d : '';
146     d = (!!k ? '&' : '?') + d;
147     window.open('gates.jsf' + k + d, '_self');
148 }
149
150 function doSearch() {
151     getList(vm.keyword(), vm.did() || I.dValue, I.pageValue, I.PZ, 1);
152 }
153
154
155 function getList(keyword, depart, page, pagesize, pages) {
156     $.post('/basicconfig/gates/getList.htm', {
157         keyword: keyword,
158         depart: depart,
159         page: page,
160         pagesize: pagesize,
161         pages: pages
162     }, function(data, textStatus, xhr) {
163         vm.list.removeAll();
164         if (data.code >= 1) {
165             //parent.showErrmsg(data.errmsg);
166             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
167             return;
168         }
169         if (data.code == 0) {
170             if (isList(data.list)) {
171                 $.each(data.list, function(index, val) {
172                     vm.list.push(val);
173                 });
174             }
175             if (!!pages) {
176                 pages = data.pages;
177                 $('#pagdiv').unbind('page').empty();
178                 if (pages > 1) {
179                     $('#pagdiv').bootpag({total: pages, maxVisible: 10, page: page + 1}).on('page',function(event,num){
180                         var k = !!I.keywordValue ? '&keyword=' + I.keywordValue : '';
181                         var d = !!I.dValue ? '&d=' + I.dValue : '';
182                         window.open('gates.jsf?page=' + num + k + d, '_self');
183                     });
184                 }
185             }
186             return;
187         }
188     }, 'json');
189 }
190
191 function valid(){
192     var isValid = false;
193     var iF = $('#form');
194     iF.validate({
195         rules: {
196             'name': {
197                 required: true
198             },
199             /*
200             'password': {
201                 required: true
202             },
203             */
204             'departName': {
205                 required: true
206             },
207             'gatesNo': {
208                 required: true
209             }
210         },
211         messages: {
212             'name': {
213                 required: '不能为空!'
214             },
215             /*
216             'password': {
217                 required: '密码不能为空!'
218             },
219             */
220             'departName': {
221                 required: '没有所属部门!'
222             },
223             'gatesNo': {
224                 required: '不能为空!'
225             }
226         },
227         errorPlacement: function (err, element) {
228             var p = element.parents('.form-group').eq(0);
229             var d = p.find('.text-error').eq(0);
230             d.css('color', '#D9534F');
231             err.appendTo(d);
232         }
233     })
234     isValid = iF.valid();
235     return isValid;
236 }
237
238 function doEdit(item) {
239     vm.o(ko.mapping.fromJS(item));
240     I.modal.modal('show');
241 }
242
243 function delConfirm(item) {
244     $("#modalContent").html('确定要删除【' + item.name + '】吗?');
245     $("#dialog-confirm").removeClass('hide').dialog({
246         resizable: false,
247         width: '320',
248         modal: true,
249         title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle red'></i>确认信息</h4></div>",
250         title_html: true,
251         position: { my: "center", at: "center", of: window },
252         buttons: [
253             {
254                 html: "<i class='ace-icon fa fa-trash-o bigger-110'></i>&nbsp; 确定",
255                 "class" : "btn btn-danger btn-minier",
256                 click: function() {
257                     $( this ).dialog( "close" );
258                     doDel(item);
259                 }
260             }
261             ,
262             {
263                 html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; 取消",
264                 "class" : "btn btn-minier",
265                 click: function() {
266                     $( this ).dialog( "close" );
267                 }
268             }
269         ]
270     });
271 }
272
273 function doDel(item) {
274     if (!!I.AjaxDelItem) return;
275     I.AjaxDelItem = true;
276     $.post('/basicconfig/gates/delItem.htm', {id: item.id}, function(data, textStatus, xhr) {
277         I.AjaxDelItem = false;
278         if (data.code >= 1) {
279            // parent.showErrmsg(data.errmsg);
280             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
281             return;
282         }
283         if (data.code == 0) {
284             vm.list.remove(item);
285             location.replace(location.href);
286             return;
287         }
288     }, 'json');
289 }
290
291 function doSave() {
292     if (!I.AjaxSaveItem &&valid()) {
293         I.AjaxSaveItem = true;
294         var o = ko.mapping.toJS(vm.o());
295         $.post('/basicconfig/gates/saveItem.htm', o, function(data, textStatus, xhr) {
296             I.AjaxSaveItem = false;
297             if (data.code >= 1) {
298                 //parent.showErrmsg(data.errmsg);
299                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
300                 return;
301             }
302             if (data.code == 0) {
303                 location.replace(location.href);
304                 return;
305             }
306         }, 'json');
307     }
308 }
309
310 function clearError() {
311     $('#form input').removeClass('error');
312     $('#form .text-error').html('');
313 }
314
315 function getDepartList(keyword, page, pagesize, pages) {
316     $.post('/enterprise/depart/getList.htm', {
317         keyword: keyword,
318         page: page,
319         pagesize: pagesize,
320         pages: pages
321     }, function(data, textStatus, xhr) {
322         var allId = [];
323         vm.dList.removeAll();
324         if (data.code >= 1) {
325            // parent.showErrmsg(data.errmsg);
326             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
327             return;
328         }
329         if (data.code == 0) {
330             if (!!$('#jstree_Enterprise').jstree(true)) {
331                 $('#jstree_Enterprise').jstree(true).refresh();
332             }
333             I.DB_ep = {};
334             if (isList(data.list)) {
335                 var Arr = [];
336                 var level = 0;
337                 $.each(data.list, function(index, val) {
338                     vm.dList.push(val);
339                     allId.push(val.id);
340                     I.DB_ep[val.id] = val;
341                     if (val.level === 2) {
342                         Arr.push({
343                             text: val.name,
344                             id: val.id,
345                             children: [],
346                             state: index === 0 ? {selected: true} : ''
347                         });
348                     } else {
349                         var j = 3;
350                         var children = Arr[Arr.length - 1].children;
351                        while (j < val.level) {
352                             children = children[children.length - 1].children;
353                             j++;
354                         }
355                         children.push({
356                             text: val.name,
357                             id: val.id,
358                             children: []
359                         })
360                     }
361                 });
362                 // console.log(allId);
363                 if (allId.indexOf(I.dValue) != -1) {
364                     vm.did(I.dValue);
365                 }
366                 $('#jstree_Enterprise')
367                 .jstree({
368                     core: {
369                         check_callback : true,
370                         data: Arr
371                     },
372                     "plugins" : [
373                       'search'
374                     ]
375                 })
376                 .on("changed.jstree", function (e, data) {
377                     if(data.selected.length) {
378                         // console.log(data.instance.get_node(data.selected[0]));
379                         var selected = data.instance.get_node(data.selected[0]);
380                         I.selected = selected;
381                     }
382                 })
383             }
384             return;
385         }
386     }, 'json');
387 }
388
389
390 function getNewNo() {
391     $.post("/basicconfig/prefix/getNewNo.htm", {type: 'gates'},
392         function (data, textStatus, jqXHR) {
393             if (data.code >= 1) {
394                // parent.showErrmsg(data.errmsg);
395                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
396                 return;
397             }
398             if (data.code == 0) {
399                 // vm.o().visitNo(data.number);
400                 $('#gatesNo').val(data.number);
401                 return;
402             }
403         },
404         "json"
405     );
406 }