Administrator
2022-10-09 23f93897d618a5253a18b65b124196f95891f240
提交 | 用户 | 时间
58d006 1 /**
A 2 * date: 
3 * author: neeler 
4 */
5
6 //test data start
7 // var data_getNewNo = Mock.mock('/basicconfig/prefix/getNewNo.htm', {code: 0, number: 'V8912374891327S'})
8 // var data_getList = Mock.mock('/basicconfig/materiel/getList.htm', {code: 0, 'list|5-20': [{id: 'id', mtid: 'id3', mtname: 'mtname', materielNo: 'materielNo', name: 'name', norms: 'norms', unitname: 'unitname', type: 'type', pinyin: 'pinyin', jianpin: 'jianpin', helpcode: 'helpcode'}], pages: 12})
9 // var data_getMTList = Mock.mock('/basicconfig/materielType/getList.htm', {code: 0, 'list|5': [{id: 'id', name: 'name', note: 'note', pinyin: 'pinyin', jianpin: 'jianpin', helpcode: 'helpcode'}], pages: 12})
10 // var data_doDel = Mock.mock('/basicconfig/materiel/delItem.htm', {code: 0, errmsg: '此岗位正在使用中不能删除!'})
11 // var data_doSave = Mock.mock('/basicconfig/materiel/saveItem.htm', {code: 0, errmsg: '此岗位正在使用中不能删除!'})
12 //test data end
13
14 var TYPE = ['成品' ,'半成品','其他']//,'原料' ,'辅料' ,'木料' ,
15
16 window.I = {
17     PZ: 30,
18     keyword: $('#keyword'),
19     searchBtn: $('#searchBtn'),
20     pageValue: !!$('#p').val() ? $('#p').val() - 1 : 0,
21     keywordValue: $('#k').val(),
22     newObj: $('#newObj'),
23     modal: $('#modal'),
24     save: $('#save')
25 }
26
27 var Obj = {
28     id: 0,
29     mtid: '',
30     mtname: '',
31     materielNo: '',
32     name: '',
33     norms: '',
34     unitname: '',
35     pinyin: '',
36     jianpin: '',
37     helpcode: '',
38     type: TYPE[0],
39     valid: true
40 }
41
42 var ViewModel = function() {
43     var self = this;
44     self.tList = ko.observableArray();
45     self.mtid = ko.observable();
46     self.o = ko.observable(ko.mapping.fromJS(Obj));
47
48     self.keyword = ko.observable(I.keywordValue);
49     self.list = ko.observableArray();
50
51     self.edit = function(item) {
52         doEdit(item);
53     }
54     self.del = function(item) {
55         delConfirm(item);
56     }
57
58     self.change = function() {
59         doOpen();
60     }
61     self.mtvalid=function(item){
62         doValid(item);
63     }   
64
65     self.tyList = ko.observableArray(TYPE);
66 }
67
68 $(function () {
69     window.vm = new ViewModel();
70     ko.applyBindings(vm);
71     doSearch();
72     getMTList();
73     pageInit();
74 });
75
76 function pageInit() {
77     I.save.click(function(event) {
78         if (valid()) {
79             doSave();
80         }
81     });
82     I.newObj.click(function(event) {
83         vm.o(ko.mapping.fromJS(Obj));
84         getNewNo();
85         I.modal.modal('show');
86     });
87     I.searchBtn.click(function(event) {
88         doOpen();
89     });
90     I.modal.on('hidden.bs.modal', function (e) {
91         clearError();
92     });
93     I.keyword.on(ISIE ? 'keydown' : 'keyup', function (event) {
94         if (event.keyCode == 13) {
95             doOpen();
96         }
97     });
98 }
99
100 function doOpen() {
101     doSearch();
102 }
103
104 function doSearch() {
105     getList(vm.keyword(), vm.mtid(), I.pageValue, I.PZ, 1);
106 }
107
108 function getList(keyword, mtid, page, pagesize, pages) {
109     $.post('/basicconfig/materiel/getList.htm', {
110         keyword: keyword,
111         mtid: mtid,
112         page: page,
113         pagesize: pagesize,
114         pages: pages
115     }, function(data, textStatus, xhr) {
116         vm.list.removeAll();
117         if (data.code >= 1) {
118             //parent.showErrmsg(data.errmsg);
119             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
120             return;
121         }
122         if (data.code == 0) {
123             if (isList(data.list)) {
124                 $.each(data.list, function(index, val) {
125                     val.valid=ko.observable(val.valid);
126                     vm.list.push(val);
127                 });
128             }
129             if (!!pages) {
130                 pages = data.pages;
131                 $('#pagdiv').unbind('page').empty();
132                 if (pages > 1) {
133                     $('#pagdiv').bootpag({total: pages, maxVisible: 10, page: page + 1}).on('page',function(event,num){
134                         getList(keyword, mtid, num - 1, pagesize, 0);
135                     });
136                 }
137             }
138             return;
139         }
140     }, 'json');
141 }
142
143 function valid(){
144     var isValid = false;
145     var iF = $('#form');
146     iF.validate({
147         rules: {
148             'name': {
149                 required: true
150             },
151             'materielNo': {
152                 required: true
153             },
154             'unitname': {
155                 required: true
156             }
157         },
158         messages: {
159             'name': {
160                 required: '不能为空!'
161             },
162             'materielNo': {
163                 required: '不能为空!'
164             },
165             'unitname': {
166                 required: '不能为空!'
167             }
168         },
169         errorPlacement: function (err, element) {
170             var p = element.parents('.form-group').eq(0);
171             var d = p.find('.text-error').eq(0);
172             d.css('color', '#D9534F');
173             err.appendTo(d);
174         }
175     })
176     isValid = iF.valid();
177     return isValid;
178 }
179
180 function doEdit(item) {
181     if(isFunction(item.valid)){
182         item.valid=item.valid();
183     }
184     vm.o(ko.mapping.fromJS(item));
185     I.modal.modal('show');
186 }
187
188 function delConfirm(item) {
189     $("#modalContent").html('确定要删除【' + item.name + '】吗?');
190     $("#dialog-confirm").removeClass('hide').dialog({
191         resizable: false,
192         width: '320',
193         modal: true,
194         title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle red'></i>确认信息</h4></div>",
195         title_html: true,
196         position: { my: "center", at: "center", of: window },
197         buttons: [
198             {
199                 html: "<i class='ace-icon fa fa-trash-o bigger-110'></i>&nbsp; 确定",
200                 "class" : "btn btn-danger btn-minier",
201                 click: function() {
202                     $( this ).dialog( "close" );
203                     doDel(item);
204                 }
205             }
206             ,
207             {
208                 html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; 取消",
209                 "class" : "btn btn-minier",
210                 click: function() {
211                     $( this ).dialog( "close" );
212                 }
213             }
214         ]
215     });
216 }
217
218 function doDel(item) {
219     if (!!I.AjaxDelItem) return;
220     I.AjaxDelItem = true;
221     $.post('/basicconfig/materiel/delItem.htm', {id: item.id}, function(data, textStatus, xhr) {
222         I.AjaxDelItem = false;
223         if (data.code >= 1) {
224             //parent.showErrmsg(data.errmsg);
225             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
226             return;
227         }
228         if (data.code == 0) {
229             vm.list.remove(item);
230             location.replace(location.href);
231             return;
232         }
233     }, 'json');
234 }
235
236 function doSave() {
237     if (!I.AjaxSaveItem &&valid()) {
238         I.AjaxSaveItem = true;
239         var o = ko.mapping.toJS(vm.o());
240         $.post('/basicconfig/materiel/saveItem.htm', o, function(data, textStatus, xhr) {
241             I.AjaxSaveItem = false;
242             if (data.code >= 1) {
243                 //parent.showErrmsg(data.errmsg);
244                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
245                 return;
246             }
247             if (data.code == 0) {
248                 location.replace(location.href);
249                 return;
250             }
251         }, 'json');
252     }
253 }
254
255 function clearError() {
256     $('#form input').removeClass('error');
257     $('#form .text-error').html('');
258 }
259
260 function getMTList() {
261     $.post('/basicconfig/materielType/getList.htm', null, function(data, textStatus, xhr) {
262         vm.tList.removeAll();
263         if (data.code >= 1) {
264             //parent.showErrmsg(data.errmsg);
265             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
266             return;
267         }
268         if (data.code == 0) {
269             if (isList(data.list)) {
270                 $.each(data.list, function(index, val) {
271                     vm.tList.push(val);
272                 });
273             }
274         }
275     }, 'json');
276 }
277
278
279 function doValid(item){
280     var valid=true;
281     if(isFunction(item.valid)){
282         valid=item.valid();
283     }else{
284         valid=item.valid;
285     }
286     jQuery.post('/basicconfig/materiel/valid.htm', {id:item.id,valid: !valid}, function(data, textStatus, xhr) {
287       //optional stuff to do after success
288       if(data.code==0){
289         item.valid(data.item);
290       }else{
291         //parent.showErrmsg(data.errmsg);
292         swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
293       }
294     },'json');
295 }
296
297 function getNewNo() {
298     $.post("/basicconfig/prefix/getNewNo.htm", {type: 'materiel'},
299         function (data, textStatus, jqXHR) {
300             if (data.code >= 1) {
301                 //parent.showErrmsg(data.errmsg);
302                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
303                 return;
304             }
305             if (data.code == 0) {
306                 // vm.o().visitNo(data.number);
307                 $('#materielNo').val(data.number);
308                 return;
309             }
310         },
311         "json"
312     );
313 }