Commit a4f3a8490a854a83441e3a1864dcd804bfb5a6a9

Authored by 王通
1 parent fc5dde8e

1.临加子任务中进出场原因加入“路救抛锚”

src/main/resources/static/real_control_v2/js/common.js
1 -var gb_common = (function () {  
2 -  
3 - var flatpickrDateTimeConfig = {  
4 - enableTime: true,  
5 - time_24hr: true,  
6 - "locale": "zh",  
7 - onOpen: function () {  
8 - $(this.calendarContainer).addClass('showTimeInput');  
9 - }  
10 - };  
11 - var reqCode80 = {  
12 - 0xA1: '请求恢复运营',  
13 - 0xA2: '申请调档',  
14 - 0xA3: '出场请求',  
15 - 0xA5: '进场请求',  
16 - 0xA7: '加油请求',  
17 - 0x50: '车辆故障',  
18 - 0x70: '路阻报告',  
19 - 0x60: '事故报告',  
20 - 0x11: '扣证纠纷',  
21 - 0x12: '报警'  
22 - };  
23 -  
24 - var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '路救抛锚', '其他'];  
25 - var inOutExps = ['故障', '肇事', '纠纷', '其他'];  
26 -  
27 - var groupBy = function (list, field) {  
28 - var rs = {},  
29 - key;  
30 - $.each(list, function () {  
31 - key = this[field];  
32 - if (!rs[key])  
33 - rs[key] = [];  
34 -  
35 - rs[key].push(this);  
36 - });  
37 -  
38 - return rs;  
39 - };  
40 -  
41 - /**  
42 - * 从班次集合里提取驾驶员  
43 - * @param list  
44 - */  
45 - var extractJsy = function (list) {  
46 - var rs = {};  
47 - $.each(list, function () {  
48 - rs[this.jGh + '/' + this.jName]=1;  
49 - });  
50 - return rs;  
51 - };  
52 -  
53 - /**  
54 - * 从班次集合里提取路牌  
55 - * @param list  
56 - */  
57 - var extractLpName = function (list) {  
58 - var rs = {};  
59 - $.each(list, function () {  
60 - rs[this.lpName]=1;  
61 - });  
62 - return rs;  
63 - };  
64 -  
65 - /**  
66 - * 从班次集合里提取车辆  
67 - * @param list  
68 - */  
69 - var extractNbbm = function (list) {  
70 - var rs = {};  
71 - $.each(list, function () {  
72 - rs[this.clZbh]=1;  
73 - });  
74 - return rs;  
75 - };  
76 -  
77 - var compileTempByDom = function (dom, opts) {  
78 - var tps = {},  
79 - id;  
80 - $('script[type="text/html"]', dom).each(function () {  
81 - id = $(this).attr('id');  
82 - if (id)  
83 - tps[id] = template.compile($(this).html(), opts);  
84 - });  
85 - return tps;  
86 - };  
87 -  
88 - var $get = function (url, data, successFun) {  
89 - $.ajax({  
90 - url: url,  
91 - data: data,  
92 - complete: function (xhr, ts) {  
93 - ajaxComplete(xhr, ts, successFun);  
94 - }  
95 - });  
96 - };  
97 -  
98 - var $post = function (url, data, successFun, errFun) {  
99 - $.ajax({  
100 - url: url,  
101 - method: 'POST',  
102 - data: data,  
103 - complete: function (xhr, ts) {  
104 - ajaxComplete(xhr, ts, successFun, errFun);  
105 - }  
106 - });  
107 - };  
108 -  
109 - var $post_arr = function (url, data, successFun) {  
110 - $.ajax({  
111 - url: url,  
112 - method: 'POST',  
113 - traditional: true,  
114 - data: data,  
115 - complete: function (xhr, ts) {  
116 - ajaxComplete(xhr, ts, successFun);  
117 - }  
118 - });  
119 - };  
120 -  
121 - var $del = function (url, successFun) {  
122 - $post(url, {'_method': 'delete'}, function (rs) {  
123 - successFun && successFun(rs);  
124 - });  
125 - };  
126 -  
127 - var errorHead = '<span style="color:red;">异常:</span>';  
128 -  
129 - function successHandle(json, handle, err) {  
130 - var status = json.status;  
131 - if (status == 407) {  
132 - location.href = '/login.html';  
133 - return;  
134 - }  
135 -  
136 - if (!status) {  
137 - handle && handle(json);  
138 - return;  
139 - }  
140 -  
141 - if (status == 'ERROR'){  
142 - UIkit.modal.alert(errorHead + (json.msg ? json.msg : '未知异常'), {labels: {Ok: '确定'}});  
143 - //关闭wait窗口  
144 - hide_wait_modal();  
145 - err && err();  
146 - }  
147 - else  
148 - handle && handle(json);  
149 - }  
150 -  
151 - function ajaxComplete(xhr, ts, succ, err) {  
152 - if (ts == 'success') {  
153 - successHandle(JSON.parse(xhr.responseText), succ, err);  
154 - } else if (ts == 'error') {  
155 - UIkit.modal.alert(errorHead + xhr.responseText, {labels: {Ok: '确定'}});  
156 - //关闭wait窗口  
157 - hide_wait_modal();  
158 - err && err();  
159 - }  
160 - }  
161 -  
162 - var get_vals = function (json) {  
163 - var array = [];  
164 - for (var key in json) {  
165 - array.push(json[key]);  
166 - }  
167 -  
168 - return array;  
169 - };  
170 -  
171 - var get_keys = function (json) {  
172 - var array = [];  
173 - for (var key in json) {  
174 - array.push(key);  
175 - }  
176 - return array;  
177 - };  
178 -  
179 - var get_device_tree_data = function (allGps, idBefore) {  
180 - if (!idBefore)  
181 - idBefore = '';  
182 - var treeData = [];  
183 - //var data = groupBy(get_vals(gb_data_gps.allGps), 'lineId');  
184 - var data = groupBy(get_vals(allGps), 'lineId');  
185 - var name;  
186 - for (var code in data) {  
187 - try {  
188 - name = gb_data_basic.codeToLine[code].name;  
189 - } catch (e) {  
190 - continue;  
191 - }  
192 -  
193 - data[name] = groupBy(data[code], 'upDown');  
194 - treeData.push({  
195 - 'text': name,  
196 - 'a_attr': {'type': 'line', 'id': idBefore + 'line_' + code},  
197 - 'children': [{  
198 - 'text': '上行',  
199 - 'children': grabs(data[name][0], idBefore),  
200 - 'a_attr': {  
201 - 'type': 'route',  
202 - 'route': code + '_0',  
203 - 'id': idBefore + 'route_' + code + '_0'  
204 - }  
205 - }, {  
206 - 'text': '下行',  
207 - 'children': grabs(data[name][1], idBefore),  
208 - 'a_attr': {  
209 - 'type': 'route',  
210 - 'route': code + '_1',  
211 - 'id': idBefore + 'route_' + code + '_1'  
212 - }  
213 - }]  
214 - });  
215 - }  
216 -  
217 - function grabs(array, idBefore) {  
218 - if (!array)  
219 - return;  
220 - var rs = [];  
221 - $.each(array, function () {  
222 - rs.push({  
223 - 'text': this.nbbm,  
224 - 'a_attr': {  
225 - 'type': 'device',  
226 - 'device': this.deviceId,  
227 - 'id': idBefore + 'device_' + this.nbbm  
228 - },  
229 - 'data': {lineId: this.lineId, upDown: this.upDown},  
230 - 'icon': 'uk-icon-bus'  
231 - });  
232 - });  
233 - return rs;  
234 - }  
235 -  
236 - return treeData;  
237 - };  
238 -  
239 - var lineAutocomplete = function (element) {  
240 - //construction data  
241 - var data = [],  
242 - code2Name = gb_data_basic.lineCode2NameAll(),  
243 - name;  
244 - for (var code in code2Name) {  
245 - name = code2Name[code];  
246 - data.push({  
247 - value: name,  
248 - code: code,  
249 - fullChars: pinyin.getFullChars(name),  
250 - camelChars: pinyin.getCamelChars(name)  
251 - });  
252 - }  
253 - init_autocom_pinyin(element, data);  
254 - };  
255 -  
256 - var personAutocomplete = function (element, personMaps) {  
257 - /*var data = [],name;  
258 - for(var jobCode in personMaps){  
259 - name=personMaps[jobCode];  
260 - data.push({  
261 - value: jobCode+'/'+name,  
262 - fullChars: pinyin.getFullChars(name).toUpperCase(),  
263 - camelChars: pinyin.getCamelChars(name)  
264 - });  
265 - }*/  
266 - //init_autocom_pinyin(element, data);  
267 - init_autocom_pinyin(element, gb_data_basic.allPersonnel());  
268 - };  
269 -  
270 - var remarksAutocomplete = function (element) {  
271 - init_autocom_pinyin(element, gb_data_basic.remarksMapps());  
272 - };  
273 -  
274 - var carAutocomplete = function (element, list) {  
275 - var data = [];  
276 - $.each(list, function () {  
277 - data.push({value: this});  
278 - });  
279 - init_autocomplete(element, data);  
280 - };  
281 -  
282 - var init_autocom_pinyin = function (element, data) {  
283 - // init autocomplete  
284 - var autocomplete = UIkit.autocomplete(element, {  
285 - minLength: 1,  
286 - delay: 50,  
287 - source: function (release) {  
288 - var q = $('input', element).val().toUpperCase(),  
289 - rs = [],  
290 - count = 0;  
291 -  
292 - $.each(data, function () {  
293 - if (this.value.indexOf(q) != -1 || this.fullChars.indexOf(q) != -1 || this.camelChars.indexOf(q) != -1) {  
294 - rs.push(this);  
295 - count++;  
296 - }  
297 -  
298 - if (count >= 10)  
299 - return false;  
300 - });  
301 -  
302 - release && release(rs);  
303 - }  
304 - });  
305 - };  
306 -  
307 - var init_autocomplete = function (element, data) {  
308 - var autocomplete = UIkit.autocomplete(element, {  
309 - minLength: 1,  
310 - delay: 50,  
311 - source: function (release) {  
312 - var q = $('input', element).val().toUpperCase(),  
313 - rs = [],  
314 - count = 0;  
315 -  
316 - $.each(data, function () {  
317 - if (this.value.indexOf(q) != -1) {  
318 - rs.push(this);  
319 - count++;  
320 - }  
321 - if (count >= 10)  
322 - return false;  
323 - });  
324 - release && release(rs);  
325 - }  
326 - });  
327 - };  
328 -  
329 - var accAdd = function (a, b) {  
330 - var c, d, e;  
331 - try {  
332 - c = a.toString().split(".")[1].length;  
333 - } catch (f) {  
334 - c = 0;  
335 - }  
336 - try {  
337 - d = b.toString().split(".")[1].length;  
338 - } catch (f) {  
339 - d = 0;  
340 - }  
341 - return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;  
342 - };  
343 -  
344 - function accDiv(arg1,arg2){  
345 - var t1=0,t2=0,r1,r2;  
346 - try{t1=arg1.toString().split(".")[1].length}catch(e){}  
347 - try{t2=arg2.toString().split(".")[1].length}catch(e){}  
348 - with(Math){  
349 - r1=Number(arg1.toString().replace(".",""))  
350 - r2=Number(arg2.toString().replace(".",""))  
351 - return (r1/r2)*pow(10,t2-t1);  
352 - }  
353 - }  
354 -  
355 - function mul(a, b) {  
356 - var c = 0,  
357 - d = a.toString(),  
358 - e = b.toString();  
359 - try {  
360 - c += d.split(".")[1].length;  
361 - } catch (f) {  
362 - }  
363 - try {  
364 - c += e.split(".")[1].length;  
365 - } catch (f) {  
366 - }  
367 - return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);  
368 - }  
369 -  
370 - var numSubtr = function (a, b) {  
371 - var c, d, e;  
372 - try {  
373 - c = a.toString().split(".")[1].length;  
374 - } catch (f) {  
375 - c = 0;  
376 - }  
377 - try {  
378 - d = b.toString().split(".")[1].length;  
379 - } catch (f) {  
380 - d = 0;  
381 - }  
382 - return e = Math.pow(10, Math.max(c, d)), (a * e - b * e) / e;  
383 - };  
384 -  
385 - var trim = function (str, is_global) {  
386 - var result;  
387 - result = str.replace(/(^\s+)|(\s+$)/g, "");  
388 - if (is_global.toLowerCase() == "g") {  
389 - result = result.replace(/\s/g, "");  
390 - }  
391 - return result;  
392 - };  
393 -  
394 - var inverse = function (map) {  
395 - var rs = {};  
396 - for(var k in map){  
397 - rs[map[k]] = k;  
398 - }  
399 -  
400 - return rs;  
401 - };  
402 -  
403 - var next_elem = function (clazz, e) {  
404 - var ne = e.next();  
405 - if(ne.length==0)  
406 - return [];  
407 - else if(ne.hasClass(clazz))  
408 - return ne;  
409 - else  
410 - return next_elem(clazz, ne);  
411 - };  
412 -  
413 - var getDisabledVal = function (f) {  
414 - var rs = {};  
415 - $('input,select', f).each(function () {  
416 - if($(this).attr('disabled')){  
417 - rs[$(this).attr('name')]=$(this).val();  
418 - }  
419 - });  
420 - return rs;  
421 - };  
422 -  
423 - return {  
424 - reqCode80: reqCode80,  
425 - groupBy: groupBy,  
426 - extractJsy: extractJsy,  
427 - extractLpName: extractLpName,  
428 - compileTempByDom: compileTempByDom,  
429 - $get: $get,  
430 - $post: $post,  
431 - $post_arr: $post_arr,  
432 - $del: $del,  
433 - get_vals: get_vals,  
434 - get_keys: get_keys,  
435 - get_device_tree_data: get_device_tree_data,  
436 - lineAutocomplete: lineAutocomplete,  
437 - personAutocomplete: personAutocomplete,  
438 - carAutocomplete: carAutocomplete,  
439 - init_autocomplete: init_autocomplete,  
440 - init_autocom_pinyin: init_autocom_pinyin,  
441 - accAdd: accAdd,  
442 - numSubtr: numSubtr,  
443 - trim: trim,  
444 - remarksAutocomplete: remarksAutocomplete,  
445 - flatpickrDateTimeConfig: flatpickrDateTimeConfig,  
446 - inverse: inverse,  
447 - accDiv: accDiv,  
448 - mul: mul,  
449 - adjustExps: adjustExps,  
450 - inOutExps: inOutExps,  
451 - next_elem: next_elem,  
452 - getDisabledVal: getDisabledVal,  
453 - extractNbbm: extractNbbm  
454 -  
455 - //whichTransitionEvent:whichTransitionEvent  
456 - };  
457 -})(); 1 +var gb_common = (function () {
  2 +
  3 + var flatpickrDateTimeConfig = {
  4 + enableTime: true,
  5 + time_24hr: true,
  6 + "locale": "zh",
  7 + onOpen: function () {
  8 + $(this.calendarContainer).addClass('showTimeInput');
  9 + }
  10 + };
  11 + var reqCode80 = {
  12 + 0xA1: '请求恢复运营',
  13 + 0xA2: '申请调档',
  14 + 0xA3: '出场请求',
  15 + 0xA5: '进场请求',
  16 + 0xA7: '加油请求',
  17 + 0x50: '车辆故障',
  18 + 0x70: '路阻报告',
  19 + 0x60: '事故报告',
  20 + 0x11: '扣证纠纷',
  21 + 0x12: '报警'
  22 + };
  23 +
  24 + var adjustExps = ['配车', '保养', '故障', '肇事', '路阻', '纠纷', '缺人', '客稀', '缺车', '气候', '援外', '吊慢', '抽减', '路救抛锚', '其他'];
  25 + var inOutExps = ['故障', '肇事', '纠纷', '路救抛锚', '其他'];
  26 +
  27 + var groupBy = function (list, field) {
  28 + var rs = {},
  29 + key;
  30 + $.each(list, function () {
  31 + key = this[field];
  32 + if (!rs[key])
  33 + rs[key] = [];
  34 +
  35 + rs[key].push(this);
  36 + });
  37 +
  38 + return rs;
  39 + };
  40 +
  41 + /**
  42 + * 从班次集合里提取驾驶员
  43 + * @param list
  44 + */
  45 + var extractJsy = function (list) {
  46 + var rs = {};
  47 + $.each(list, function () {
  48 + rs[this.jGh + '/' + this.jName]=1;
  49 + });
  50 + return rs;
  51 + };
  52 +
  53 + /**
  54 + * 从班次集合里提取路牌
  55 + * @param list
  56 + */
  57 + var extractLpName = function (list) {
  58 + var rs = {};
  59 + $.each(list, function () {
  60 + rs[this.lpName]=1;
  61 + });
  62 + return rs;
  63 + };
  64 +
  65 + /**
  66 + * 从班次集合里提取车辆
  67 + * @param list
  68 + */
  69 + var extractNbbm = function (list) {
  70 + var rs = {};
  71 + $.each(list, function () {
  72 + rs[this.clZbh]=1;
  73 + });
  74 + return rs;
  75 + };
  76 +
  77 + var compileTempByDom = function (dom, opts) {
  78 + var tps = {},
  79 + id;
  80 + $('script[type="text/html"]', dom).each(function () {
  81 + id = $(this).attr('id');
  82 + if (id)
  83 + tps[id] = template.compile($(this).html(), opts);
  84 + });
  85 + return tps;
  86 + };
  87 +
  88 + var $get = function (url, data, successFun) {
  89 + $.ajax({
  90 + url: url,
  91 + data: data,
  92 + complete: function (xhr, ts) {
  93 + ajaxComplete(xhr, ts, successFun);
  94 + }
  95 + });
  96 + };
  97 +
  98 + var $post = function (url, data, successFun, errFun) {
  99 + $.ajax({
  100 + url: url,
  101 + method: 'POST',
  102 + data: data,
  103 + complete: function (xhr, ts) {
  104 + ajaxComplete(xhr, ts, successFun, errFun);
  105 + }
  106 + });
  107 + };
  108 +
  109 + var $post_arr = function (url, data, successFun) {
  110 + $.ajax({
  111 + url: url,
  112 + method: 'POST',
  113 + traditional: true,
  114 + data: data,
  115 + complete: function (xhr, ts) {
  116 + ajaxComplete(xhr, ts, successFun);
  117 + }
  118 + });
  119 + };
  120 +
  121 + var $del = function (url, successFun) {
  122 + $post(url, {'_method': 'delete'}, function (rs) {
  123 + successFun && successFun(rs);
  124 + });
  125 + };
  126 +
  127 + var errorHead = '<span style="color:red;">异常:</span>';
  128 +
  129 + function successHandle(json, handle, err) {
  130 + var status = json.status;
  131 + if (status == 407) {
  132 + location.href = '/login.html';
  133 + return;
  134 + }
  135 +
  136 + if (!status) {
  137 + handle && handle(json);
  138 + return;
  139 + }
  140 +
  141 + if (status == 'ERROR'){
  142 + UIkit.modal.alert(errorHead + (json.msg ? json.msg : '未知异常'), {labels: {Ok: '确定'}});
  143 + //关闭wait窗口
  144 + hide_wait_modal();
  145 + err && err();
  146 + }
  147 + else
  148 + handle && handle(json);
  149 + }
  150 +
  151 + function ajaxComplete(xhr, ts, succ, err) {
  152 + if (ts == 'success') {
  153 + successHandle(JSON.parse(xhr.responseText), succ, err);
  154 + } else if (ts == 'error') {
  155 + UIkit.modal.alert(errorHead + xhr.responseText, {labels: {Ok: '确定'}});
  156 + //关闭wait窗口
  157 + hide_wait_modal();
  158 + err && err();
  159 + }
  160 + }
  161 +
  162 + var get_vals = function (json) {
  163 + var array = [];
  164 + for (var key in json) {
  165 + array.push(json[key]);
  166 + }
  167 +
  168 + return array;
  169 + };
  170 +
  171 + var get_keys = function (json) {
  172 + var array = [];
  173 + for (var key in json) {
  174 + array.push(key);
  175 + }
  176 + return array;
  177 + };
  178 +
  179 + var get_device_tree_data = function (allGps, idBefore) {
  180 + if (!idBefore)
  181 + idBefore = '';
  182 + var treeData = [];
  183 + //var data = groupBy(get_vals(gb_data_gps.allGps), 'lineId');
  184 + var data = groupBy(get_vals(allGps), 'lineId');
  185 + var name;
  186 + for (var code in data) {
  187 + try {
  188 + name = gb_data_basic.codeToLine[code].name;
  189 + } catch (e) {
  190 + continue;
  191 + }
  192 +
  193 + data[name] = groupBy(data[code], 'upDown');
  194 + treeData.push({
  195 + 'text': name,
  196 + 'a_attr': {'type': 'line', 'id': idBefore + 'line_' + code},
  197 + 'children': [{
  198 + 'text': '上行',
  199 + 'children': grabs(data[name][0], idBefore),
  200 + 'a_attr': {
  201 + 'type': 'route',
  202 + 'route': code + '_0',
  203 + 'id': idBefore + 'route_' + code + '_0'
  204 + }
  205 + }, {
  206 + 'text': '下行',
  207 + 'children': grabs(data[name][1], idBefore),
  208 + 'a_attr': {
  209 + 'type': 'route',
  210 + 'route': code + '_1',
  211 + 'id': idBefore + 'route_' + code + '_1'
  212 + }
  213 + }]
  214 + });
  215 + }
  216 +
  217 + function grabs(array, idBefore) {
  218 + if (!array)
  219 + return;
  220 + var rs = [];
  221 + $.each(array, function () {
  222 + rs.push({
  223 + 'text': this.nbbm,
  224 + 'a_attr': {
  225 + 'type': 'device',
  226 + 'device': this.deviceId,
  227 + 'id': idBefore + 'device_' + this.nbbm
  228 + },
  229 + 'data': {lineId: this.lineId, upDown: this.upDown},
  230 + 'icon': 'uk-icon-bus'
  231 + });
  232 + });
  233 + return rs;
  234 + }
  235 +
  236 + return treeData;
  237 + };
  238 +
  239 + var lineAutocomplete = function (element) {
  240 + //construction data
  241 + var data = [],
  242 + code2Name = gb_data_basic.lineCode2NameAll(),
  243 + name;
  244 + for (var code in code2Name) {
  245 + name = code2Name[code];
  246 + data.push({
  247 + value: name,
  248 + code: code,
  249 + fullChars: pinyin.getFullChars(name),
  250 + camelChars: pinyin.getCamelChars(name)
  251 + });
  252 + }
  253 + init_autocom_pinyin(element, data);
  254 + };
  255 +
  256 + var personAutocomplete = function (element, personMaps) {
  257 + /*var data = [],name;
  258 + for(var jobCode in personMaps){
  259 + name=personMaps[jobCode];
  260 + data.push({
  261 + value: jobCode+'/'+name,
  262 + fullChars: pinyin.getFullChars(name).toUpperCase(),
  263 + camelChars: pinyin.getCamelChars(name)
  264 + });
  265 + }*/
  266 + //init_autocom_pinyin(element, data);
  267 + init_autocom_pinyin(element, gb_data_basic.allPersonnel());
  268 + };
  269 +
  270 + var remarksAutocomplete = function (element) {
  271 + init_autocom_pinyin(element, gb_data_basic.remarksMapps());
  272 + };
  273 +
  274 + var carAutocomplete = function (element, list) {
  275 + var data = [];
  276 + $.each(list, function () {
  277 + data.push({value: this});
  278 + });
  279 + init_autocomplete(element, data);
  280 + };
  281 +
  282 + var init_autocom_pinyin = function (element, data) {
  283 + // init autocomplete
  284 + var autocomplete = UIkit.autocomplete(element, {
  285 + minLength: 1,
  286 + delay: 50,
  287 + source: function (release) {
  288 + var q = $('input', element).val().toUpperCase(),
  289 + rs = [],
  290 + count = 0;
  291 +
  292 + $.each(data, function () {
  293 + if (this.value.indexOf(q) != -1 || this.fullChars.indexOf(q) != -1 || this.camelChars.indexOf(q) != -1) {
  294 + rs.push(this);
  295 + count++;
  296 + }
  297 +
  298 + if (count >= 10)
  299 + return false;
  300 + });
  301 +
  302 + release && release(rs);
  303 + }
  304 + });
  305 + };
  306 +
  307 + var init_autocomplete = function (element, data) {
  308 + var autocomplete = UIkit.autocomplete(element, {
  309 + minLength: 1,
  310 + delay: 50,
  311 + source: function (release) {
  312 + var q = $('input', element).val().toUpperCase(),
  313 + rs = [],
  314 + count = 0;
  315 +
  316 + $.each(data, function () {
  317 + if (this.value.indexOf(q) != -1) {
  318 + rs.push(this);
  319 + count++;
  320 + }
  321 + if (count >= 10)
  322 + return false;
  323 + });
  324 + release && release(rs);
  325 + }
  326 + });
  327 + };
  328 +
  329 + var accAdd = function (a, b) {
  330 + var c, d, e;
  331 + try {
  332 + c = a.toString().split(".")[1].length;
  333 + } catch (f) {
  334 + c = 0;
  335 + }
  336 + try {
  337 + d = b.toString().split(".")[1].length;
  338 + } catch (f) {
  339 + d = 0;
  340 + }
  341 + return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;
  342 + };
  343 +
  344 + function accDiv(arg1,arg2){
  345 + var t1=0,t2=0,r1,r2;
  346 + try{t1=arg1.toString().split(".")[1].length}catch(e){}
  347 + try{t2=arg2.toString().split(".")[1].length}catch(e){}
  348 + with(Math){
  349 + r1=Number(arg1.toString().replace(".",""))
  350 + r2=Number(arg2.toString().replace(".",""))
  351 + return (r1/r2)*pow(10,t2-t1);
  352 + }
  353 + }
  354 +
  355 + function mul(a, b) {
  356 + var c = 0,
  357 + d = a.toString(),
  358 + e = b.toString();
  359 + try {
  360 + c += d.split(".")[1].length;
  361 + } catch (f) {
  362 + }
  363 + try {
  364 + c += e.split(".")[1].length;
  365 + } catch (f) {
  366 + }
  367 + return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
  368 + }
  369 +
  370 + var numSubtr = function (a, b) {
  371 + var c, d, e;
  372 + try {
  373 + c = a.toString().split(".")[1].length;
  374 + } catch (f) {
  375 + c = 0;
  376 + }
  377 + try {
  378 + d = b.toString().split(".")[1].length;
  379 + } catch (f) {
  380 + d = 0;
  381 + }
  382 + return e = Math.pow(10, Math.max(c, d)), (a * e - b * e) / e;
  383 + };
  384 +
  385 + var trim = function (str, is_global) {
  386 + var result;
  387 + result = str.replace(/(^\s+)|(\s+$)/g, "");
  388 + if (is_global.toLowerCase() == "g") {
  389 + result = result.replace(/\s/g, "");
  390 + }
  391 + return result;
  392 + };
  393 +
  394 + var inverse = function (map) {
  395 + var rs = {};
  396 + for(var k in map){
  397 + rs[map[k]] = k;
  398 + }
  399 +
  400 + return rs;
  401 + };
  402 +
  403 + var next_elem = function (clazz, e) {
  404 + var ne = e.next();
  405 + if(ne.length==0)
  406 + return [];
  407 + else if(ne.hasClass(clazz))
  408 + return ne;
  409 + else
  410 + return next_elem(clazz, ne);
  411 + };
  412 +
  413 + var getDisabledVal = function (f) {
  414 + var rs = {};
  415 + $('input,select', f).each(function () {
  416 + if($(this).attr('disabled')){
  417 + rs[$(this).attr('name')]=$(this).val();
  418 + }
  419 + });
  420 + return rs;
  421 + };
  422 +
  423 + return {
  424 + reqCode80: reqCode80,
  425 + groupBy: groupBy,
  426 + extractJsy: extractJsy,
  427 + extractLpName: extractLpName,
  428 + compileTempByDom: compileTempByDom,
  429 + $get: $get,
  430 + $post: $post,
  431 + $post_arr: $post_arr,
  432 + $del: $del,
  433 + get_vals: get_vals,
  434 + get_keys: get_keys,
  435 + get_device_tree_data: get_device_tree_data,
  436 + lineAutocomplete: lineAutocomplete,
  437 + personAutocomplete: personAutocomplete,
  438 + carAutocomplete: carAutocomplete,
  439 + init_autocomplete: init_autocomplete,
  440 + init_autocom_pinyin: init_autocom_pinyin,
  441 + accAdd: accAdd,
  442 + numSubtr: numSubtr,
  443 + trim: trim,
  444 + remarksAutocomplete: remarksAutocomplete,
  445 + flatpickrDateTimeConfig: flatpickrDateTimeConfig,
  446 + inverse: inverse,
  447 + accDiv: accDiv,
  448 + mul: mul,
  449 + adjustExps: adjustExps,
  450 + inOutExps: inOutExps,
  451 + next_elem: next_elem,
  452 + getDisabledVal: getDisabledVal,
  453 + extractNbbm: extractNbbm
  454 +
  455 + //whichTransitionEvent:whichTransitionEvent
  456 + };
  457 +})();