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('/basicinfo/card/getList.htm', {code: 0, list: [{cardno: 'cn123123123', type: '人员短期卡', state: '丢失', usecount: 234, isuse: true, ltime: '2017-02-11'}], pages: 12})
8 // var data_doDel = Mock.mock('/basicinfo/card/delItem.htm', {code: 0, errmsg: '删除失败!'})
9 // var data_doSave = Mock.mock('/basicinfo/card/saveItem.htm', {code: 0, errmsg: '保存失败!'})
10 //test data end
11
12 var TYPE = ['门岗用卡', '内部车辆卡', '外来车辆卡', '人员短期卡', '人员长期卡']
13 var STATE = ['发放', '丢失', '收回']
14 window.I = {
15     PZ: 30,
16     keyword: $('#keyword'),
17     searchBtn: $('.searchBtn'),
18     moreSearchCondition: $('#moreSearchCondition'),
19     pageValue: !!$('#p').val() ? $('#p').val() - 1 : 0,
20     keywordValue: $('#k').val(),
21     newObj: $('#newObj'),
22     modal: $('#modal'),
23     save: $('#save'),
24     searchBox: $('#searchBox'),
25     cardnoinput:$('#cardnoinput')
26 }
27
28 var Obj = {
29     cardno: '',
30     // type: TYPE[0],
31     state: STATE[2],
32     usecount: '',
33     isuse: '',
34     ltime: '',
35 }
36
37 var ViewModel = function() {
38     var self = this;
39     self.o = ko.observable(ko.mapping.fromJS(Obj));
40
41     self.keyword = ko.observable(I.keywordValue);
42     self.list = ko.observableArray();
43     self.tList = ko.observableArray(TYPE);
44     self.sList = ko.observableArray(STATE);
45
46     self.type = ko.observable();
47     self.state = ko.observable();
48     self.estate=ko.observable(false);
49
50     self.edit = function(item) {
51         self.estate(true);
52         doEdit(item);
53     }
54     self.del = function(item) {
55
56         delConfirm(item);
57     }
58 }
59
60 $(function () {
61     window.vm = new ViewModel();
62     ko.applyBindings(vm);
63     doSearch();
64     pageInit();
65 });
66
67 function pageInit() {
68     I.moreSearchCondition.click(function(event) {
69         if ($(this).hasClass('active')) {
70             I._complexSearch = false;
71             $(this).removeClass('active');
72             $('i', $(this)).addClass('fa-chevron-down').removeClass('fa-chevron-up');
73             I.searchBox.slideUp();
74         } else {
75             I._complexSearch = true;
76             $(this).addClass('active');
77             $('i', $(this)).removeClass('fa-chevron-down').addClass('fa-chevron-up');
78             I.searchBox.slideDown();
79         }
80     });
81     I.save.click(function(event) {
82         if (valid()) {
83             doSave();
84         }
85     });
86     I.newObj.click(function(event) {
87         vm.estate(false);
88         obj= {
89             cardno: '',
90             // type: TYPE[0],
91             state: STATE[2],
92             usecount: '',
93             isuse: '',
94             ltime: '',
95             }
96         vm.o(ko.mapping.fromJS(Obj));
97         I.modal.modal('show');
98     });
99     I.searchBtn.click(function(event) {
100         doOpen();
101     });
102     I.modal.on('hidden.bs.modal', function (e) {
103         clearError();
104     });
105      I.modal.on('shown.bs.modal', function (e) {
106         I.cardnoinput.focus();
107     });
108     I.keyword.on(ISIE ? 'keydown' : 'keyup', function (event) {
109         if (event.keyCode == 13) {
110             doOpen();
111         }
112     });
113     I.cardnoinput.on( 'keydown', function (event) {
114         if (event.keyCode == 13) {
115             if (valid()) {
116                 doSave();
117             }
118             return false;
119         }
120     });
121 }
122
123 function doOpen() {
124     if (!!I._complexSearch) {
125         getList(vm.keyword(), vm.type(), vm.state(), 0, 1, I.PZ);
126     } else {
127         getList(vm.keyword(), null, null, 0, 1, I.PZ);        
128     }
129 }
130
131 function doSearch() {
132     getList(vm.keyword(),null, null, I.pageValue,1, I.PZ);
133 }
134
135 function getList(keyword, type, state, page, pages, pagesize) {
136     $.post('/basicinfo/card/getList.htm', {
137         keyword: keyword,
138         type: type,
139         state: state,
140         page: page,
141         pagesize: pagesize,
142         pages: pages
143     }, function(data, textStatus, xhr) {
144         vm.list.removeAll();
145         if (data.code >= 1) {
146            // parent.showErrmsg(data.errmsg);
147             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
148             return;
149         }
150         if (data.code == 0) {
151             if (isList(data.list)) {
152                 $.each(data.list, function(index, val) {
153                     vm.list.push(val);
154                 });
155             }
156             if (!!pages) {
157                 pages = data.pages;
158                 $('#pagdiv').unbind('page').empty();
159                 if (pages > 1) {
160                     $('#pagdiv').bootpag({total: pages, maxVisible: 10, page: page + 1}).on('page',function(event,num){
161                         getList(keyword, type, state, num - 1, pages,pagesize);
162                     });
163                 }
164             }
165             return;
166         }
167     }, 'json');
168 }
169
170 function valid(){
171     var isValid = false;
172     var iF = $('#form');
173     iF.validate({
174         rules: {
175             'cardno': {
176                 required: true,
177                 maxlength: 10,
178                 minlength:10
179             }
180         },
181         messages: {
182             'cardno': {
183                 required: '不能为空!',
184                 maxlength: '卡号为10位数字',
185                 minlength: '卡号为10位数字'
186             }
187         },
188         errorPlacement: function (err, element) {
189             var p = element.parents('.form-group').eq(0);
190             var d = p.find('.text-error').eq(0);
191             d.css('color', '#D9534F');
192             err.appendTo(d);
193         }
194     })
195     isValid = iF.valid();
196     return isValid;
197 }
198
199 function doEdit(item) {
200     vm.o(ko.mapping.fromJS(item));
201     I.modal.modal('show');
202 }
203
204 function delConfirm(item) {
205     $("#modalContent").html('确定要删除【' + item.cardno + '】吗?');
206     $("#dialog-confirm").removeClass('hide').dialog({
207         resizable: false,
208         width: '320',
209         modal: true,
210         title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle red'></i>确认信息</h4></div>",
211         title_html: true,
212         position: { my: "center", at: "center", of: window },
213         buttons: [
214             {
215                 html: "<i class='ace-icon fa fa-trash-o bigger-110'></i>&nbsp; 确定",
216                 "class" : "btn btn-danger btn-minier",
217                 click: function() {
218                     $( this ).dialog( "close" );
219                     doDel(item);
220                 }
221             }
222             ,
223             {
224                 html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; 取消",
225                 "class" : "btn btn-minier",
226                 click: function() {
227                     $( this ).dialog( "close" );
228                 }
229             }
230         ]
231     });
232 }
233
234 function doDel(item) {
235     if (!!I.AjaxDelItem) return;
236     I.AjaxDelItem = true;
237     $.post('/basicinfo/card/delItem.htm', {id: item.cardno}, function(data, textStatus, xhr) {
238         I.AjaxDelItem = false;
239         if (data.code >= 1) {
240             //parent.showErrmsg(data.errmsg);
241             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
242             return;
243         }
244         if (data.code == 0) {
245             vm.list.remove(item);
246             location.replace(location.href);
247             return;
248         }
249     }, 'json');
250 }
251
252 function doSave() {
253     if (!I.AjaxSaveItem &&valid()) {
254         I.AjaxSaveItem = true;
255         var o = ko.mapping.toJS(vm.o());
256         o.cardno=$('#cardnoinput').val();
257         if(o.cardno=='')
258             return;
259         $.post('/basicinfo/card/saveItem.htm', o, function(data, textStatus, xhr) {
260             I.AjaxSaveItem = false;
261              I.cardnoinput.select();
262             if (data.code >= 2) {
263                 //parent.showErrmsg(data.errmsg);
264                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
265                 return;
266             }
267
268             if (data.code == 1) {
269                 //location.replace(location.href);
270                 vm.list.push(o);
271                
272                     return;
273             }
274         }, 'json');
275     }
276 }
277
278 function clearError() {
279     $('#form input').removeClass('error');
280     $('#form .text-error').html('');
281 }