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('/basicconfig/company/getList.htm', {code: 0, 'list|3-20': [
8 //     {id: 1, companyNo: 'P812930489012348', name: '郑州博乐信息技术有限公司', phone: '13001300130', ptype: 'tttype', note: '', areaid: '', address: '郑州市AKLFJKLASJFKALSFJK', used: true, legalperson: '刘总', creditno: '878786465', pinyin: '', jianpin: '', helpcode: 'zzbl'}
9 // ], pages: 12})
10 // var data_doDel = Mock.mock('/basicconfig/company/delItem.htm', {code: 0, errmsg: '删除失败!'})
11 // var data_doSave = Mock.mock('/basicconfig/company/saveItem.htm', {code: 0, errmsg: '保存失败!'})
12 // var data_doUsed = Mock.mock('/basicconfig/company/changeUsed.htm', {code: 0, errmsg: '修改失败!'})
13 // var data_getNewNo = Mock.mock('/basicconfig/prefix/getNewNo.htm', {code: 0, number: 'V8912374891327S'})
14 //test data end
15
16 var TYPE = ['供应商', '客户', '往来单位']
17
18 window.I = {
19     PZ: 30,
20     keyword: $('#keyword'),
21     searchBtn: $('#searchBtn'),
22     pageValue: !!$('#p').val() ? $('#p').val() - 1 : 0,
23     keywordValue: $('#k').val(),
24     newObj: $('#newObj'),
25     modal: $('#modal'),
26     save: $('#save')
27 }
28
29 var Obj = {
30     id: 0,
31     companyNo: '',
32     name: '',
33     phone: '',
34     ptype: TYPE[2],
35     note: '',
36     areaid: '',
37     address: '',
38     used: ko.observable(true),
39     legalperson: '',
40     creditno: '',
41     pinyin: '',
42     jianpin: '',
43     helpcode: '',
44 }
45
46 var ViewModel = function() {
47     var self = this;
48     self.keyword = ko.observable(I.keywordValue);
49     self.list = ko.observableArray();
50     self.o = ko.observable(ko.mapping.fromJS(Obj));
51     self.edit = function(item) {
52         doEdit(item);
53     }
54     self.del = function(item) {
55         delConfirm(item);
56     }
57     self.used = function (item) {
58         doUsed(item);
59     }
60
61     self.tList = ko.observableArray(TYPE); //磅房状态
62 }
63
64 $(function () {
65     window.vm = new ViewModel();
66     ko.applyBindings(vm);
67     doSearch();
68     pageInit();
69 });
70
71 function pageInit() {
72     I.save.click(function(event) {
73         if (valid()) {
74             doSave();
75         }
76     });
77     I.searchBtn.click(function(event) {
78         doOpen();
79     });
80     I.keyword.on(ISIE ? 'keydown' : 'keyup', function (event) {
81         if (event.keyCode == 13) {
82             doOpen();
83         }
84     });
85     I.newObj.click(function(event) {
86         vm.o(ko.mapping.fromJS(Obj));
87         getNewNo();
88         I.modal.modal('show');
89     });
90     I.modal.on('hidden.bs.modal', function (e) {
91         clearError();
92     });
93 }
94
95 function doOpen() {
96     var k = $.trim(vm.keyword());
97     k = !!k ? '?keyword=' + k : '';
98     window.open('company.jsf' + k, '_self');
99 }
100
101 function doSearch() {
102     getList(vm.keyword(), I.pageValue, I.PZ, 1);
103 }
104
105 function getList(keyword, page, pagesize, pages) {
106     $.post("/basicconfig/company/getList.htm", {
107         keyword: keyword,
108         page: page,
109         pagesize: pagesize,
110         pages: pages
111     },
112         function (data, textStatus, jqXHR) {
113             if (data.code >= 1) {
114                // parent.showErrmsg(data.errmsg);
115                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
116                 return;
117             }
118             if (data.code == 0) {
119                 if (isList(data.list)) {
120                     $.each(data.list, function (indexInArray, valueOfElement) { 
121                         valueOfElement.used = ko.observable(valueOfElement.used);
122                         vm.list.push(valueOfElement);
123                     });
124                 }
125                 if (!!pages) {
126                     pages = data.pages;
127                     $('#pagdiv').unbind('page').empty();
128                     if (pages > 1) {
129                         $('#pagdiv').bootpag({total: pages, maxVisible: 10, page: page + 1}).on('page',function(event,num){
130                             var k = !!I.keywordValue ? '&keyword=' + I.keywordValue : '';
131                             window.open('company.jsf?page=' + num + k, '_self');
132                         });
133                     }
134                 }
135                 return;
136             }
137         },
138         "json"
139     );
140 }
141
142 function doEdit(item) {
143     vm.o(ko.mapping.fromJS(item));
144     I.modal.modal('show');
145 }
146
147 function delConfirm(item) {
148     $("#modalContent").html('确定要删除【' + item.name + '】吗?');
149     $("#dialog-confirm").removeClass('hide').dialog({
150         resizable: false,
151         width: '320',
152         modal: true,
153         title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle red'></i>确认信息</h4></div>",
154         title_html: true,
155         position: { my: "center", at: "center", of: window },
156         buttons: [
157             {
158                 html: "<i class='ace-icon fa fa-trash-o bigger-110'></i>&nbsp; 确定",
159                 "class" : "btn btn-danger btn-minier",
160                 click: function() {
161                     $( this ).dialog( "close" );
162                     doDel(item);
163                 }
164             }
165             ,
166             {
167                 html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; 取消",
168                 "class" : "btn btn-minier",
169                 click: function() {
170                     $( this ).dialog( "close" );
171                 }
172             }
173         ]
174     });
175 }
176
177 function doDel(item) {
178     if (!!I.AjaxDelItem) return;
179     I.AjaxDelItem = true;
180     $.post('/basicconfig/company/delItem.htm', {id: item.id}, function(data, textStatus, xhr) {
181         I.AjaxDelItem = false;
182         if (data.code >= 1) {
183             //parent.showErrmsg(data.errmsg);
184             swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
185             return;
186         }
187         if (data.code == 0) {
188             vm.list.remove(item);
189             location.replace(location.href);
190             return;
191         }
192     }, 'json');
193 }
194
195 function doSave() {
196     if (!I.AjaxSaveItem &&valid()) {
197         I.AjaxSaveItem = true;
198         var o = ko.mapping.toJS(vm.o());
199         o.used = $('#objUsed').prop('checked');
200         $.post('/basicconfig/company/saveItem.htm', o, function(data, textStatus, xhr) {
201             I.AjaxSaveItem = false;
202             if (data.code >= 1) {
203                // parent.showErrmsg(data.errmsg);
204                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
205                 return;
206             }
207             if (data.code == 0) {
208                 location.replace(location.href);
209                 return;
210             }
211         }, 'json');
212     }
213 }
214
215 function doUsed(item) {
216     if (!I.AjaxChangeUsed) {
217         var used = !item.used();
218         I.AjaxChangeUsed = true;
219         $.post('/basicconfig/company/changeUsed.htm', {id: item.id, used: used}, function(data, textStatus, xhr) {
220             I.AjaxChangeUsed = false;
221             if (data.code >= 1) {
222                 //parent.showErrmsg(data.errmsg);
223                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
224                 return;
225             }
226             if (data.code == 0) {
227                 item.used(used);
228                 return;
229             }
230         }, 'json');
231     }
232 }
233
234 function valid(){
235     var isValid = false;
236     var iF = $('#form');
237     iF.validate({
238         rules: {
239             'companyNo': {
240                 required: true
241             },
242             'name': {
243                 required: true
244             }
245         },
246         messages: {
247             'companyNo': {
248                 required: '编号不能为空!'
249             },
250             'name': {
251                 required: '名称不能为空!'
252             }
253         },
254         errorPlacement: function (err, element) {
255             var p = element.parents('.form-group').eq(0);
256             var d = p.find('.text-error').eq(0);
257             d.css('color', '#D9534F');
258             err.appendTo(d);
259         }
260     })
261     isValid = iF.valid();
262     return isValid;
263 }
264
265 function clearError() {
266     $('#form input').removeClass('error');
267     $('#form .text-error').html('');
268 }
269
270 function getNewNo() {
271     $.post("/basicconfig/prefix/getNewNo.htm", {type: 'company'},
272         function (data, textStatus, jqXHR) {
273             if (data.code >= 1) {
274                // parent.showErrmsg(data.errmsg);
275                 swal({title:'',text:data.errmsg,type:'error',confirmButtonText:'确定'}); 
276                 return;
277             }
278             if (data.code == 0) {
279                 vm.o().companyNo(data.number);
280                 return;
281             }
282         },
283         "json"
284     );
285 }