hjg
2024-01-17 efbf825aa2f845bc6f9b26b0fa10139c8071deef
提交 | 用户 | 时间
58d006 1 /**
A 2 * date:
3 * author: neeler
4 */
5
6 //test data start
7 // var data_getList = Mock.mock('/company/getList.htm', {code: 0, 'list|5-20': [{id: 'id', companyNo: 'companyNo', note: 'note', name: 'name'}], pages: 12})
8 // var data_doDel = Mock.mock('/company/delItem.htm', {code: 0, errmsg: 'errmsg'})
9 // var data_doSave = Mock.mock('/company/saveItem.htm', {code: 0, errmsg: 'errmsg'})
10 //test data end
11 var YWDY = [{'name': '河南明泰铝业股份有限公司', 'code': '101'},
12 {'name': '河南明泰科技发展有限公司', 'code': '103'},
13 {'name': '郑州明泰实业有限公司', 'code': '102'},
14 {'name': '河南泰鸿新材料有限公司', 'code': '113'},
15 {'name': '河南明晟新材料科技有限公司', 'code': '111'},
16 {'name': '河南义瑞新材料科技有限公司', 'code': '114'},
17 ];
18
19 window.I = {
20     PZ: 30,
21     keyword: $('#keyword'),
22     searchBtn: $('#searchBtn'),
23     pageValue: !!$('#p').val() ? $('#p').val() - 1 : 0,
24     keywordValue: $('#k').val(),
25     newObj: $('#newObj'),
26     modal: $('#modal'),
27     save: $('#save')
28 }
29
30 var Obj = {
31     id: 0,
32     companyNo: '',
33     name: '',
efbf82 34     shortName: '',
58d006 35     note: '',
A 36     hasSPR: false //has self pickup right
37 }
38
39 var ViewModel = function() {
40     var self = this;
41     self.o = ko.observable(ko.mapping.fromJS(Obj));
42
43     self.keyword = ko.observable(I.keywordValue);
44     self.list = ko.observableArray();
45
46     //业务单元value
47     self.yvList = ko.observableArray();
48     //业务单元
49     self.ywdyList=ko.observableArray(YWDY);
50
51     self.edit = function(item) {
52         doEdit(item);
53     }
54     self.del = function(item) {
55         delConfirm(item);
56     }
57 }
58
59 $(function () {
60     window.vm = new ViewModel();
61     ko.applyBindings(vm);
62     $(".chosen-select").chosen();
63     $("#dp_chosen").width(270);
64     autoHeight();
65     doSearch();
66     pageInit();
67 });
68
69 function pageInit() {
70     $('.table-responsive').scroll(function() {
71         $('.th').css('top', $(this).scrollTop());
72     })
73     I.save.click(function(event) {
74         if (valid()) {
75             doSave();
76         }
77     });
78     I.newObj.click(function(event) {
79         vm.o(ko.mapping.fromJS(Obj));
80         vm.yvList.removeAll();
81         I.modal.modal('show');
82     });
83     I.searchBtn.click(function(event) {
84         doOpen();
85     });
86     I.modal.on('hidden.bs.modal', function (e) {
87         clearError();
88     });
89     I.keyword.on(ISIE ? 'keydown' : 'keyup', function (event) {
90         if (event.keyCode == 13) {
91             doOpen();
92         }
93     });
94 }
95
96 function doOpen() {
97     var k = $.trim(vm.keyword());
98     getList(k, 0, I.PZ, 1);
99 }
100
101 function doSearch() {
102     doOpen();
103 }
104
105 function getList(keyword, page, pagesize, pages) {
106     I._page = page;
107     $.post('/company/getList.htm', {
108         searchword: keyword,
109         page: page,
110         pagesize: pagesize,
111         pages: pages
112     }, function(data, textStatus, xhr) {
113         vm.list.removeAll();
114         if (data.code >= 1) {
115             //parent.showErrmsg(data.errmsg);
116             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'});
117             return;
118         }
119         if (data.code == 0) {
120             if (isList(data.list)) {
121                 $.each(data.list, function(index, val) {
122                     val.hasSPR=ko.observable(val.hasSPR=='true'?true:false);
123                     val.ywdyNames ='';
124                     if(isList(val.ywList)){
125                         for(var k=0;k<val.ywList.length;k++){
126                             if(val.ywdyNames==''){
127                                 val.ywdyNames=val.ywList[k].name;
128                             }else{
129                                 val.ywdyNames+=(','+val.ywList[k].name);
130                             }
131                         }
132                     }
133                     vm.list.push(val);
134                 });
135                 $('tbody tr').click(function (e) {
136                     $('tbody tr').removeClass('info');
137                     $(this).addClass('info');
138                 });
139             }
140             if (!!pages) {
141                 pages = data.pages;
142                 $('#pagdiv').unbind('page').empty();
143                 if (pages > 1) {
144                     $('#pagdiv').bootpag({total: pages, maxVisible: 10, page: page + 1}).on('page',function(event,num){
145                         getList(keyword, num - 1, pagesize, 0);
146                     });
147                 }
148             }
149             return;
150         }
151     }, 'json');
152 }
153
154 function valid(){
155     var isValid = false;
156     var iF = $('#form');
157     iF.validate({
158         rules: {
159             'companyNo': {
160                 required: true
161             },
162             'name': {
163                 required: true
164             }
165         },
166         messages: {
167             'companyNo': {
168                 required: '不能为空!'
169             },
170             'name': {
171                 required: '不能为空!'
172             }
173         },
174         errorPlacement: function (err, element) {
175             var p = element.parents('.form-group').eq(0);
176             var d = p.find('.text-error').eq(0);
177             d.css('color', '#D9534F');
178             err.appendTo(d);
179         }
180     })
181     isValid = iF.valid();
182     return isValid;
183 }
184
185 function doEdit(item) {
186     vm.o(ko.mapping.fromJS(item));
187     vm.yvList.removeAll();
188     if(isList(item.ywList)){
189         $.each(item.ywList, function(index, val) {
190             vm.yvList.push(val.code);
191         });
192     }
193     $('#dp').val(vm.yvList()).trigger("chosen:updated");
194     I.modal.modal('show');
195 }
196
197 function delConfirm(item) {
198     $("#modalContent").html('确定要删除【' + item.name + '】吗?');
199     $("#dialog-confirm").removeClass('hide').dialog({
200         resizable: false,
201         width: '320',
202         modal: true,
203         title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle red'></i>确认信息</h4></div>",
204         title_html: true,
205         position: { my: "center", at: "center", of: window },
206         buttons: [
207             {
208                 html: "<i class='ace-icon fa fa-trash-o bigger-110'></i>&nbsp; 确定",
209                 "class" : "btn btn-danger btn-minier",
210                 click: function() {
211                     $( this ).dialog( "close" );
212                     doDel(item);
213                 }
214             }
215             ,
216             {
217                 html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; 取消",
218                 "class" : "btn btn-minier",
219                 click: function() {
220                     $( this ).dialog( "close" );
221                 }
222             }
223         ]
224     });
225 }
226
227 function doDel(item) {
228     if (!!I.AjaxDelItem) return;
229     I.AjaxDelItem = true;
230     $.post('/company/delItem.htm', {companyNo: item.companyNo}, function(data, textStatus, xhr) {
231         I.AjaxDelItem = false;
232         if (data.code >= 1) {
233             //parent.showErrmsg(data.errmsg);
234             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'});
235             return;
236         }
237         if (data.code == 0) {
238             vm.list.remove(item);
239             parent.showErrmsg('删除成功!');
240             return;
241         }
242     }, 'json');
243 }
244
245 function doSave() {
246     if (!I.AjaxSaveItem &&valid()) {
247         I.AjaxSaveItem = true;
248         I.save.prop('disabled', true);
249         var o = ko.mapping.toJS(vm.o());
250         o.ywdyNos=vm.yvList().join(',');
251         o.hasSPR = $('#hasSPR').prop('checked');
252         $.post('/company/saveItem.htm', o, function(data, textStatus, xhr) {
253             I.AjaxSaveItem = false;
254             I.save.prop('disabled', false);
255             if (data.code >= 1) {
256                 //parent.showErrmsg(data.errmsg);
257                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'});
258                 return;
259             }
260             if (data.code == 0) {
261                 parent.showErrmsg('保存成功!');
262                 I.modal.modal('hide');
263                 getList($.trim(vm.keyword()), I._page, I.PZ, 1);
264                 return;
265             }
266         }, 'json');
267     }
268 }
269
270 function clearError() {
271     $('#form input').removeClass('error');
272     $('#form .text-error').html('');
273 }
274
275 function autoHeight() {
276     $('.page-content').css('min-height', $(parent.window).height() - 117);
277     $('.table-responsive').css('height', $(parent.window).height() - 217);
278 }