hjg
2024-03-18 8d48c59d5d3bcc4148ef97dc6f98e3a8cf9ca436
提交 | 用户 | 时间
58d006 1 /**
A 2 * date: 
3 * author: neeler 
4 */
5
6 //test data start
7 // var data_getList = Mock.mock('/enterprise/systemdepart/getList.htm', {code: 0, list: [{id: 3, bianhao: 'depart00011', name: '生产部', used: false, note: 'nnnn222'}], pages: 12})
8 // var data_doDel = Mock.mock('/enterprise/systemdepart/delItem.htm', {code: 0, errmsg: '此岗位正在使用中不能删除!'})
9 // var data_doSave = Mock.mock('/enterprise/systemdepart/saveItem.htm', {code: 0, errmsg: '此岗位正在使用中不能删除!'})
10 // var data_doUsed = Mock.mock('/enterprise/systemdepart/changeUsed.htm', {code: 0, errmsg: '修改失败!'})
11 //test data end
12
13 window.I = {
14     PZ: 30,
15     keyword: $('#keyword'),
16     searchBtn: $('#searchBtn'),
17     pageValue: !!$('#p').val() ? $('#p').val() - 1 : 0,
18     keywordValue: $('#k').val(),
19     newObj: $('#newObj'),
20     modal: $('#modal'),
21     save: $('#save')
22 }
23
24 var Obj = {
25     id: 0,
26     bianhao: '',
27     name: '',
28     used: true,
29     note: '',
30 }
31
32 var ViewModel = function() {
33     var self = this;
34     self.o = ko.observable(ko.mapping.fromJS(Obj));
35
36     self.keyword = ko.observable(I.keywordValue);
37     self.list = ko.observableArray();
38     self.dList = ko.observableArray();
39
40     self.edit = function(item) {
41         doEdit(item);
42     }
43     self.del = function(item) {
44         delConfirm(item);
45     }
46     self.used = function (item) {
47         doUsed(item);
48     }
49 }
50
51 $(function () {
52     window.vm = new ViewModel();
53     ko.applyBindings(vm);
54     doSearch();
55     getDepartList();
56     pageInit();
57 });
58
59 function pageInit() {
60     I.save.click(function(event) {
61         if (valid()) {
62             doSave();
63         }
64     });
65     I.newObj.click(function(event) {
66         vm.o(ko.mapping.fromJS(Obj));
67         I.modal.modal('show');
68     });
69     I.searchBtn.click(function(event) {
70         doOpen();
71     });
72     I.modal.on('hidden.bs.modal', function (e) {
73         clearError();
74     });
75     I.keyword.on(ISIE ? 'keydown' : 'keyup', function () {
76         if (event.keyCode == 13) {
77             doOpen();
78         }
79     });
80 }
81
82 function doOpen() {
83     var k = $.trim(vm.keyword());
84     k = !!k ? '?keyword=' + k : '';
85     window.open('sysDepart.jsf' + k, '_self');
86 }
87
88 function doSearch() {
89     getList(vm.keyword(), I.pageValue, I.PZ, 1);
90 }
91
92 function getList(keyword, page, pagesize, pages) {
93     $.post('/enterprise/systemdepart/getList.htm', {
94         keyword: keyword,
95         page: page,
96         pagesize: pagesize,
97         pages: pages
98     }, function(data, textStatus, xhr) {
99         vm.list.removeAll();
100         if (data.code >= 1) {
101             console.error(data.errmsg);
102             return;
103         }
104         if (data.code == 0) {
105             if (isList(data.list)) {
106                 $.each(data.list, function(index, val) {
107                     val.used = ko.observable(val.used);
108                     vm.list.push(val);
109                 });
110             }
111             if (!!pages) {
112                 pages = data.pages;
113                 $('#pagdiv').unbind('page').empty();
114                 if (pages > 1) {
115                     $('#pagdiv').bootpag({total: pages, maxVisible: 10, page: page + 1}).on('page',function(event,num){
116                         var k = !!I.keywordValue ? '&keyword=' + I.keywordValue : '';
117                         window.open('sysDepart.jsf?page=' + num + k, '_self');
118                     });
119                 }
120             }
121             return;
122         }
123     }, 'json');
124 }
125
126 function valid(){
127     var isValid = false;
128     var iF = $('#form');
129     iF.validate({
130         rules: {
131             'bianhao': {
132                 required: true
133             }
134         },
135         messages: {
136             'bianhao': {
137                 required: '没有选择部门!'
138             }
139         },
140         errorPlacement: function (err, element) {
141             var p = element.parents('.form-group').eq(0);
142             var d = p.find('.text-error').eq(0);
143             d.css('color', '#D9534F');
144             err.appendTo(d);
145         }
146     })
147     isValid = iF.valid();
148     return isValid;
149 }
150
151 function doEdit(item) {
152     vm.o(ko.mapping.fromJS(item));
153     I.modal.modal('show');
154 }
155
156 function delConfirm(item) {
157     $("#modalContent").html('确定要删除【' + item.name + '】吗?');
158     $("#dialog-confirm").removeClass('hide').dialog({
159         resizable: false,
160         width: '320',
161         modal: true,
162         title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle red'></i>确认信息</h4></div>",
163         title_html: true,
164         position: { my: "center", at: "center", of: window },
165         buttons: [
166             {
167                 html: "<i class='ace-icon fa fa-trash-o bigger-110'></i>&nbsp; 确定",
168                 "class" : "btn btn-danger btn-minier",
169                 click: function() {
170                     $( this ).dialog( "close" );
171                     doDel(item);
172                 }
173             }
174             ,
175             {
176                 html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; 取消",
177                 "class" : "btn btn-minier",
178                 click: function() {
179                     $( this ).dialog( "close" );
180                 }
181             }
182         ]
183     });
184 }
185
186 function doDel(item) {
187     if (!!I.AjaxDelItem) return;
188     I.AjaxDelItem = true;
189     $.post('/enterprise/systemdepart/delItem.htm', {id: item.id}, function(data, textStatus, xhr) {
190         I.AjaxDelItem = false;
191         if (data.code >= 1) {
192            // showErrmsg(data.errmsg);
193             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
194             return;
195         }
196         if (data.code == 0) {
197             vm.list.remove(item);
198             // location.replace(location.href);
199             return;
200         }
201     }, 'json');
202 }
203
204 function doSave() {
205     if (!I.AjaxSaveItem &&valid()) {
206         I.AjaxSaveItem = true;
207         var o = ko.mapping.toJS(vm.o());
208         o.used = $('#objUsed').prop('checked');
209         $.post('/enterprise/systemdepart/saveItem.htm', o, function(data, textStatus, xhr) {
210             I.AjaxSaveItem = false;
211             if (data.code >= 1) {
212                 console.error(data.errmsg);
213                 return;
214             }
215             if (data.code == 0) {
216                 location.replace(location.href);
217                 return;
218             }
219         }, 'json');
220     }
221 }
222
223 function clearError() {
224     $('#form input').removeClass('error');
225     $('#form .text-error').html('');
226 }
227
228 function getDepartList(keyword, page, pagesize, pages) {
229     $.post('/enterprise/depart/getList.htm', {
230         keyword: keyword,
231         page: page,
232         pagesize: pagesize,
233         pages: pages
234     }, function(data, textStatus, xhr) {
235         vm.dList.removeAll();
236         if (data.code >= 1) {
237             console.error(data.errmsg);
238             return;
239         }
240         if (data.code == 0) {
241             if (isList(data.list)) {
242                 $.each(data.list, function (indexInArray, valueOfElement) { 
243                     vm.dList.push(valueOfElement);
244                 });
245             }
246             if (!!I.idv) {
247                 getItem(I.idv);
248             }
249             return;
250         }
251     }, 'json');
252 }
253
254 function doUsed(item) {
255     if (!I.AjaxChangeUsed) {
256         var used = !item.used();
257         I.AjaxChangeUsed = true;
258         $.post('/enterprise/systemdepart/changeUsed.htm', {id: item.id, used: used}, function(data, textStatus, xhr) {
259             I.AjaxChangeUsed = false;
260             if (data.code >= 1) {
261                 console.error(data.errmsg);
262                 return;
263             }
264             if (data.code == 0) {
265                 item.used(used);
266                 return;
267             }
268         }, 'json');
269     }
270 }