-
Notifications
You must be signed in to change notification settings - Fork 0
/
cyz.comm.js
2929 lines (2386 loc) · 96.2 KB
/
cyz.comm.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/**
*cyz工具操作js
*
* */
//var console=console||{log:function(){return;}}
//var wr_log=(function(){var rtn={a:3,log:function(){console.log.apply(this,arguments)}}; return rtn;;}());
//全局参数定义
var global_url = "http://weizhang.hnwfll.com/";
var Global = {
//目录参数
defJs: 'api',//默认JS框架
baseJS: '',//js目录
wsURL: '',
fileURL: '',
imgAllURL:global_url,
imgURL: '',//图片处理URL
allURL: '',
c_ex: false,//js扩展 ,默认所有都引入
model: 80,
b_sign: '',//业务标识,与业务相关 如 80:普通用户手机端 90:后台管理 99:开发配置
call_err_inj: false,//接口错误注入方法
call_ajax_para: {},
is_debug: false,
Interface: {
//接口请求全部是post
login: global_url + 'index/login/index',
/*
登录成功(code为1,返回用户数据(暂时全部返回));登录失败(code为0)
*/
province : global_url + 'index/province/index',
/*
获取省份,成功(code为1,返回省份简称和ID);失败(code为0);
*/
city : global_url + 'index/city/index',
/*
获取车牌前缀,成功(code为1,返回牌前缀和ID);失败(code为0);
*/
car : global_url + 'index/car/index',
/*
获取车型,成功(code为1,返回牌前缀和ID);失败(code为0);
*/
car_number: global_url + 'index/violate/car_number',
/*
车牌识别接口,识别成功(code为1,返回车牌号);识别失败(code为0);
传参:参数为image,值为手机拍照获取的图片(图片大小不能超过4M)base64加密后的字符串
*/
violate_chapter_query: global_url + 'index/violate/violate_chapter',
/*
违章查询接口,传参:1.car_type(车型(默认为02小车(除广东地区外,其他地区只支持02小车):01 大型汽车 ,02 小型汽车 ,
03 使馆汽车 ,04 领馆汽车 ,05 境外汽车 ,06 外籍汽车 ,07 两三轮摩托车,08 轻便摩托车,09 使馆摩托车 ,10 领馆摩托车,11 境外摩托车 ,12 外籍摩托车 ,
13 农用运输车 ,14 拖拉机 ,15 挂车,16 教练汽车 ,17 教练摩托车,26 香港入境车,27 澳门入境车),2.car_prefix(车牌号前缀(urlencode编码),例如:粤A,粤B),3.car_number(车牌号)
4.chejiahao(车架号),5.fadongji(发动机号),6.省份 province(例如:"广东省",urlencode编码),7.市区 city(例如:"广州市",urlencode编码)
8.超证检测 super_evidence(0为不超证检测(默认),1为超证检测),9.实时查询 real_query(0为不实时查询(默认),1为实时查询),10.车牌号码 car_number
11.车辆性质 car_nature (0为个人车,1为单位车),12.用户ID:参数member_id
*/
province_city: global_url + 'index/city/province_city',
/*
违章查询地区(省份和市区)选择接口
*/
upload_images: global_url + 'index/order/upload_images',
/*
上传行驶证接口,限制5M以下的图片,单个上传图片,传参 file(base64图片,不用过滤头部 ,原原本本的base64数据)
*/
self_submit_order: global_url + 'index/order/self_submit_order',
/*
违章自助下单,提交行驶证正反面,查询违章,为待审核订单,平台重新报价后审核通过,审核通过后成为待付款订单。
传参:行驶证正本 driving_license_just_image(base64加密),行驶证副本 driving_license_back_image(base64加密),车牌前缀 car_prefix,车牌号码 car_number,
发动机号 fa_dong_ji,车架号 che_jia_hao,备注 remark,预留手机号码 mobile,用户ID member_id(用户ID)
*/
message: global_url + 'index/message/index',
/*
消息接口:传参 receive_user_id (用户ID),消息类型:type(0为系统消息,1为通知消息)
*/
message_detail: global_url + 'index/message/detail',
/*
消息接口:传参 message_id (消息ID)
*/
order_list: global_url + 'index/order/index',
/*
我的订单列表:传参 status(订单状态:0为待付款,1为已付款,3为已分配,4为处理中,5为已完成,6处理失败,7为待审核),传参用户ID:member_id
*/
payment: global_url + 'index/order/payment',
/*
立即付款,传参 order_id(订单ID),返回订单数据(一个订单下面有多个违章记录,record里面就是违章记录)
*/
cancel: global_url + 'index/order/cancel',
/*
取消订单,传参 order_id(订单ID),返回成功失败信息
*/
delete: global_url + 'index/order/delete',
/*
删除订单,传参 order_id(订单ID),返回成功失败信息,已付款订单不能删除
*/
password_reset: global_url + 'index/member/password_reset',
/*
密码重置接口,传参 password(密码),手机号码 mobile,用户ID:参数member_id
*/
recharge: global_url + 'index/member/recharge',
/*
充值记录,用户ID参数 member_id ,时间参数:开始时间(start_time),结束时间(end_time)
*/
order_detail: global_url + 'index/order/order_detail',
/*
订单详情,用户ID参数 member_id ,订单ID参数:order_id
*/
handle_index: global_url + 'index/order/handle_index',
/*
违章查询页面接口,查询记录列表显示,传参 member_id(用户ID)
*/
cancel_handle: global_url + 'index/order/cancel_handle',
/*
取消办理(其实就是删除),用户ID参数 member_id ,订单ID参数:order_id
*/
handle: global_url + 'index/order/handle',
/*
前往办理,用户ID参数 member_id ,订单ID参数:order_id(其实就是查询记录ID)
*/
pay: global_url + 'index/order/pay',
/*
订单页面立即付款,用户ID参数 member_id ,订单ID参数:order_id
*/
go_handle: global_url + 'index/order/go_handle',
/*
去办理下单,
非本人本车(传参):query_order_id(查询订单ID),query_order_record_ids(查询订单记录ID),is_self(是否本人本车:0为本人,1为他人),
driving_license_just_image(行驶证正面),driving_license_back_image(行驶证反面),mobile(车主电话),member_id(用户ID)
本人本车(传参):query_order_id(查询订单ID),query_order_record_ids(查询订单记录ID),is_self(是否本人本车:0为本人,1为他人),
driving_license_just_image(行驶证正面),driving_license_back_image(行驶证反面),mobile(车主电话),
drive_license_just_image(驾驶证正面),drive_license_back_image(驾驶证反面),drive_name(驾驶人姓名),drive_code(驾驶证档案编号),
drive_number(驾驶证号码),drive_license_mobile(考驾照电话号码),member_id(用户ID)
*/
handle_query: global_url + 'index/order/handle_query',
/*
违章查询记录接口,参数:member_id(用户ID)
*/
history_query: global_url + 'index/violate/history_query',
/*
历史查询记录,返回所有数据,参数:member_id(用户ID)
*/
license_plate_query: global_url + 'index/violate/license_plate_query',
/*
输入车牌,查询到车牌有关信息,传参:car_number(车牌号码)
*/
pay_order: global_url + 'index/order/pay_order',
/*
支付订单页面,传参:member_id(用户ID),order_id(订单ID),返回所有数据
*/
member: global_url + 'index/member/member',
/*
个人中心页面,传参:member_id(用户ID),返回所有数据
*/
},//后端请求接口
page_extend: function (obj) {//扩展页面参数
$.extend(true, Global.page, obj);
},
u: {},
req_header: function (a, b) { return $cyz.setAndGetStorage('req_header', a, b); },
comm: function (a, b) { return $cyz.setAndGetStorage('comm', a, b); },
user: function (a, b) { return $cyz.setAndGetStorage('user', a, b); },
page: {
dlgs: {},
tbs: {},
datas: {
yesno: [{ code: 1, name: '是' }, { code: 0, name: '否' }],
state: [{ code: 1, name: '启用' }, { code: 0, name: '禁用' }]
},
funcs: {}
}
/*
pageparas:{
},//页面参数
comm:{
},
user:false
*/
};
/**********************************************字符串扩展功能**********************************************/
//字符串对象检测是否为空
String.prototype.IsNullOrEmpty = function () {
var obj = this;
var flag = false;
if (obj == null || obj == undefined || typeof (obj) == 'undefined' || obj == '') {
flag = true;
} else if (typeof (obj) == 'string') {
obj = obj.trim();
if (obj == '') {//为空
flag = true;
} else {//不为空
obj = obj.toUpperCase();
if (obj == 'NULL' || obj == 'UNDEFINED' || obj == '{}') {
flag = true;
}
}
}
else {
flag = false;
}
return flag;
};
//右取字符串
String.prototype.Right = function (len) {
if (isNaN(len) || len == null) {
len = this.length;
}
else {
if (parseInt(len) < 0 || parseInt(len) > this.length) {
len = this.length;
}
}
return this.substring(this.length - len, this.length);
};
// 清除两边的空格
String.prototype.trim = function () {
return this.replace(/(^\s*)|(\s*$)/g, '');
};
// 合并多个空白为一个空白
String.prototype.ResetBlank = function () {
var regEx = /\s+/g;
return this.replace(regEx, ' ');
};
// 保留数字
String.prototype.GetNum = function () {
var regEx = /[^\d]/g;
return this.replace(regEx, '');
};
// 保留中文
String.prototype.GetCN = function () {
var regEx = /[^\u4e00-\u9fa5\uf900-\ufa2d]/g;
return this.replace(regEx, '');
};
// String转化为Number
String.prototype.ToInt = function () {
return isNaN(parseInt(this)) ? this.toString() : parseInt(this);
};
// 得到字节长度
String.prototype.GetLen = function () {
var regEx = /^[\u4e00-\u9fa5\uf900-\ufa2d]+$/;
if (regEx.test(this)) {
return this.length * 2;
} else {
var oMatches = this.match(/[\x00-\xff]/g);
var oLength = this.length * 2 - oMatches.length;
return oLength;
}
};
// 获取文件全名
String.prototype.GetFileName = function () {
var regEx = /^.*\/([^\/\?]*).*$/;
return this.replace(regEx, '$1');
};
// 获取文件扩展名
String.prototype.GetExtensionName = function () {
var regEx = /^.*\/[^\/]*(\.[^\.\?]*).*$/;
return this.replace(regEx, '$1');
};
//替换所有
String.prototype.replaceAll = function (reallyDo, replaceWith, ignoreCase) {
if (!RegExp.prototype.isPrototypeOf(reallyDo)) {
return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi" : "g")), replaceWith);
} else {
return this.replace(reallyDo, replaceWith);
}
};
String.prototype.format = function (args) {
var result = this;
var para_arr = result.match(/\{[^\}]+\}/g);//获取{}匹配的内容 含大括号
if (para_arr == null)//没匹配到时,返回原
return result;
if (arguments.length > 0) {
if (arguments.length == 1 && typeof (args) == "object") {
for (var i = 0; i < para_arr.length; i++) {//遍历匹配到的数组
var para = para_arr[i];//含括号
var para_val = para.substr(1, para.length - 2);//值
var p_arr = para_val.split("##");//拆分参数
var p = p_arr[0];
if (p.length > 0 && args[p] != 'undefined') {//参数
var v = args[p];
if (p_arr.length > 1) {//有特殊处理时
if (p_arr[1] == 'img') {//如果是图片地址显示
// 以分号分隔,再以逗号分隔,取第二个
var v1_arr = v.split(";");
var v2_arr = v1_arr[0].split(",");
if (v2_arr.length > 1) {
v = v2_arr[1];
}
}
else if (p_arr[1] == 'bigimg') {//如果是图片地址显示
if (Global.is_debug)
$cyz.log(args, '图片地址');
// 以分号分隔,再以逗号分隔,取第二个
var v1_arr = v.split(";");
var v2_arr = v1_arr[0].split(",");
if (v2_arr.length > 1)
v = v2_arr[1].replace('thumbnail/', '');
}
else if (p_arr[1] == 'eval' && p_arr.length > 2) {
var v1 = p_arr[2];
var arrEntities = {
'<': '<',
'>': '>',
' ': ' ',
'&': '&',
'"': '"',
"@@": v || v == 0 ? v + '' : ''
};
// v1 = v1.replace(new RegExp("@@", 'g'), "'" + v + "'");
v1 = v1.replace(/(&(lt|gt|nbsp|amp|quot);)|(@@)/ig, function (all, t) {
return arrEntities[all + ""];
});
v = eval("(" + v1 + ")");
}
}
result = result.replace(para, v || v == 0 ? v : "");//替换数据
}
}
result = result.replace(new RegExp("(data-src)", "g"), "src");
}
else {
for (var i = 0; i < arguments.length; i++) {
if (arguments[i] != undefined) {
var reg = new RegExp("({)" + i + "(})", "g");
result = result.replace(reg, arguments[i]);
}
}
}
}
return result;
};
//格式化字符串
String.Format = function () {
if (arguments.length == 0) {
return '';
}
if (arguments.length == 1) {
return arguments[0];
}
var reg = /{(\d+)?}/g;
var args = arguments;
var result = arguments[0].replace(reg, function ($0, $1) {
return args[parseInt($1) + 1];
});
return result;
};
/**********************************************数字扩展功能**********************************************/
// 数字补零
Number.prototype.LenWithZero = function (oCount) {
var strText = this.toString();
while (strText.length < oCount) {
strText = '0' + strText;
}
return strText;
};
// Unicode还原
Number.prototype.ChrW = function () {
return String.fromCharCode(this);
};
/**********************************************数组扩展功能**********************************************/
// 数字数组由小到大排序
Array.prototype.Min2Max = function () {
var oValue;
for (var i = 0; i < this.length; i++) {
for (var j = 0; j <= i; j++) {
if (this[i] < this[j]) {
oValue = this[i];
this[i] = this[j];
this[j] = oValue;
}
}
}
return this;
};
// 数字数组由大到小排序
Array.prototype.Max2Min = function () {
var oValue;
for (var i = 0; i < this.length; i++) {
for (var j = 0; j <= i; j++) {
if (this[i] > this[j]) {
oValue = this[i];
this[i] = this[j];
this[j] = oValue;
}
}
}
return this;
};
// 获得数字数组中最大项
Array.prototype.GetMax = function () {
var oValue = 0;
for (var i = 0; i < this.length; i++) {
if (this[i] > oValue) {
oValue = this[i];
}
}
return oValue;
};
// 获得数字数组中最小项
Array.prototype.GetMin = function () {
var oValue = 0;
for (var i = 0; i < this.length; i++) {
if (this[i] < oValue) {
oValue = this[i];
}
}
return oValue;
};
/**********************************************日期扩展功能**********************************************/
// 获取当前时间的中文形式
Date.prototype.GetCNDate = function () {
var oDateText = '';
oDateText += this.getFullYear().LenWithZero(4) + new Number(24180).ChrW();
oDateText += (this.getMonth() + 1).LenWithZero(2) + new Number(26376).ChrW();
oDateText += this.getDate().LenWithZero(2) + new Number(26085).ChrW();
oDateText += this.getHours().LenWithZero(2) + new Number(26102).ChrW();
oDateText += this.getMinutes().LenWithZero(2) + new Number(20998).ChrW();
oDateText += this.getSeconds().LenWithZero(2) + new Number(31186).ChrW();
oDateText += new Number(32).ChrW() + new Number(32).ChrW() + new Number(26143).ChrW() + new Number(26399).ChrW() + new String('26085199682010819977222352011620845').substr(this.getDay() * 5, 5).ToInt().ChrW();
return oDateText;
};
//扩展Date格式化
Date.prototype.Format = function (format) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": ("00" + this.getMilliseconds()).Right(3) //毫秒
};
var week = {
"0": "\u65e5",
"1": "\u4e00",
"2": "\u4e8c",
"3": "\u4e09",
"4": "\u56db",
"5": "\u4e94",
"6": "\u516d"
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
if (/(E+)/.test(format)) {
format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") : "") + week[this.getDay() + ""]);
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return format;
}
Date.prototype.Diff = function (interval, objDate) {
//若参数不足或 objDate 不是日期类型則回传 undefined
if (arguments.length < 2 || objDate.constructor != Date) { return undefined; }
switch (interval) {
//计算秒差
case 's': return parseInt((objDate - this) / 1000);
//计算分差
case 'n': return parseInt((objDate - this) / 60000);
//计算時差
case 'h': return parseInt((objDate - this) / 3600000);
//计算日差
case 'd': return parseInt((objDate - this) / 86400000);
//计算周差
case 'w': return parseInt((objDate - this) / (86400000 * 7));
//计算月差
case 'm': return (objDate.getMonth() + 1) + ((objDate.getFullYear() - this.getFullYear()) * 12) - (this.getMonth() + 1);
//计算年差
case 'y': return objDate.getFullYear() - this.getFullYear();
//输入有误
default: return undefined;
}
}
Date.prototype.DateAdd = function (strInterval, Number) {
var dtTmp = this;
switch (strInterval) {
case 's': return new Date(Date.parse(dtTmp) + (1000 * Number));
case 'n': return new Date(Date.parse(dtTmp) + (60000 * Number));
case 'h': return new Date(Date.parse(dtTmp) + (3600000 * Number));
case 'd': return new Date(Date.parse(dtTmp) + (86400000 * Number));
case 'w': return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
case 'q': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number * 3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case 'm': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case 'y': return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
}
};
//公共方法
(function (window) {
var u = {};
var isAndroid = (/android/gi).test(navigator.appVersion);
var uzStorage = function () {
var ls;
try {
ls = window.localStorage;
} catch (ex) {
console.warn(ex);
}
return ls;
};
u.loadJs = function (url, success) {
var domScript = document.createElement('script');
domScript.src = url;
success = success || function () { };
//domScript.onload = domScript.onreadystatechange = function() {
if (navigator.userAgent.indexOf("MSIE") > 0) {
domScript.onreadystatechange = function () {
if ('loaded' === this.readyState || 'complete' === this.readyState) {
success();
this.onload = this.onreadystatechange = null;
this.parentNode.removeChild(this);
}
}
} else {
domScript.onload = function () {
success();
this.onload = this.onreadystatechange = null;
this.parentNode.removeChild(this);
}
}
document.getElementsByTagName('head')[0].appendChild(domScript);
};
u.isArray = function (obj) {//判断是否是数组
return Object.prototype.toString.call(obj) === '[object Array]';
};
//生成数组数据
u.getArrData = function (d) {
var data = [];
if ($cyz.isArray(d)) {
if (d.length > 1) {//超过一个时,判断第二个是数组还是json
if ($cyz.isArray(d[1]))//就是紧凑列表方式
data = $cyz.crkvdatas_arr(d);
else if ($cyz.isJson(d[1]))
data = d;//取所有
}
else if (d.length == 1 && $cyz.isJson(d[0])) {// 只有一行时,判断列表是紧凑数据还是正常数据 根据第一个
var json = d[0];
var ar_col = [];
var i = 0;
//取对应的值
for (var item in json) {
var colval = json[item];
colval = colval == null ? '' : json[item].toString();
ar_col.push(colval);
i++;
}
var is_comp = true;//是否紧凑数据
for (var j = 0; j < i; j++) {
if (ar_col.indexOf(j.toString()) < 0)//有一个不符合规则时,就是正常数据
is_comp = false;
}
if (!is_comp)//如果不是紧凑列表数据时,就取 如果是就为空数据
data = d;
}
}
else if ($cyz.isJson(d)) {//为json时
data = [d];
}
return data;
};
u.hasObj = function (str) {
if (typeof str == 'undefined') return false;
try {
var o = str.toString();
return eval(' typeof ' + o + ' !="undefined" ');
} catch (ex) {
console.warn(ex);
return false;
}
};
u.isJson = function (obj) {
var isjson = typeof (obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
return isjson;
};
u.getVal = function (k, d) {//o:对象,子级用.表示,def:默认值(未取到时用默认值)
var r = d;//默认值为 undefined
if (typeof k != 'string' || k == '') return d;//不是字符串时,返回默认值
try {
r = eval('(' + k + ')');
if (typeof r == 'undefined')
r = d;
} catch (ex) {//出错时,赋值默认值
r = d;
}
return r;
};
u.setStorage = function (key, value) {
if (arguments.length === 2) {
var v = value;
if (typeof v == 'object') {
v = JSON.stringify(v);
v = 'obj-' + v;
} else {
v = 'str-' + v;
}
var ls = uzStorage();
if (ls) {
ls.setItem(key, v);
}
}
};
u.getStorage = function (key) {
var ls = uzStorage();
if (ls) {
var v = ls.getItem(key);
if (!v) {
return;
}
if (v.indexOf('obj-') === 0) {
v = v.slice(4);
return JSON.parse(v);
} else if (v.indexOf('str-') === 0) {
return v.slice(4);
}
}
};
u.rmStorage = function (key) {
var ls = uzStorage();
if (ls && key) {
ls.removeItem(key);
}
};
//设置和获取本地存储
u.setAndGetStorage = function (key, a, b) {
return $cyz.setAndGet(
function (a1) {
var o = $cyz.getStorage(key);
if ($cyz.isJson(o)) return o[a1];
//return $cyz.getStorage(key)[a1];
},
function () {//取所有值
return $cyz.getStorage(key);
},
function (a1, b1) {//赋值
var u = $cyz.getStorage(key);
u = $.extend(true, {}, u, eval('({' + a1 + ':"' + b1 + '"})'));
$cyz.setStorage(key, u);
return u;
},
function (a1) {
var u = $cyz.getStorage(key);
if (a1 == null) {
u = a1;
}
else
u = $.extend(true, {}, u, a1);
$cyz.setStorage(key, u);
return u;
}, a, b);//通用赋值取值操作
};
//get:单取值(字符串变量) getall(取所有值) set:赋值(按字符串变量) setall:赋值所有json对象 a,b 操作数
u.setAndGet = function (func_get, func_getall, func_set, func_setall, a, b) {//通用赋值取值操作
var a_type = typeof a;
var b_type = typeof b;
if (a_type != 'undefined') {//有值时
if ($cyz.isJson(a)) {//如果是json格式 ,就把参数赋值到dialog,并返回对象
return func_setall(a);
}
else {//如果不是 判断是否是string,如果也不是,就不做处理
if (a_type == 'string') {//字符串时,根据b判断赋值还是取值
if (b_type == 'undefined') {//没有b时,取值
return func_get(a);
}
else {//赋值
return func_set(a, b);
}
}
else {//不是字符串时 不处理,返回对象
if (a == null)
return func_setall(a);
else
return func_setall({});
}
}
}
else {//没有值,直接返回整个参数对象
return func_getall();
}
};
u.strToJson = function (str) {
if (typeof str === 'string') {
try {
//return JSON && JSON.parse(str);
var v = eval('(' + str + ')');
if ($cyz.isJson(v) || $cyz.isArray(v))
return v;
else
return undefined;
} catch (ex) {
console.warn(str, ex);
return undefined;
}
}
else if ($cyz.isJson(str))
return str;
else
return undefined;
};
u.jsonToStr = function (json) {
if ($cyz.isJson(json) || $cyz.isArray(json))
return JSON && JSON.stringify(json);
else if (typeof json == 'undefined' || json == null)
return '';
else
return json.toString();
};
u.toStr = function (json) {
if ($cyz.isJson(json) || $cyz.isArray(json))
return JSON && JSON.stringify(json);
else if (typeof json == 'undefined' || json == null)
return '';
else
return json.toString();
};
u.inArray = function (stringToSearch, arrayToSearch) {//判断是否在数组中
for (s = 0; s < (u.isArray(arrayToSearch) ? arrayToSearch : [arrayToSearch]).length; s++) {
thisEntry = arrayToSearch[s].toString();
if (thisEntry == stringToSearch) {
return true;
}
}
return false;
};
u.checkMobile = function (str) {//验证手机号
var re = /^1\d{10}$/;
if (re.test(str)) {
return true;
} else {
return false;
}
};
u.checkDate = function (str) {//验证日期
if (/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/.test(str)) {
return true;
}
else
return false;
};
u.checkTel = function (str) {//验证固定电话
if (/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(str)) {
return true;
}
else
return false;
};
u.checkIDCard = function (str) {//验证身份证
if (/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/.test(str)) {
return true;
}
else
return false;
};
u.checkRegExp = function (regobj, str) {//按正则表达式验证 reg为字符串或正则对象
try {
var reg = regobj;
if (typeof reg == 'String')
reg = eval('/' + reg + '/');
if (reg.test(str))
return true;
else
return false;
} catch (ex) {
console.warn('正则处理失败', regobj, ex);
return false;
}
};
u.getUrlPara = function (name, url) //取url参数
{
var reg = new RegExp("(^|&|/?)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式
var r = null;
if (url)
r = url.match(reg);
else
r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]); return null; //返回参数值
};
u.removeUrlPara = function (paramKey, r) //取url参数
{
// var reg = new RegExp("(^|&|/?)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式
var url = null;
if (r)
url = r;
else
url = window.location.href; //匹配目标参数
var rKeys = [];
if (typeof paramKey == 'string') {
rKeys = [paramKey];
}
else if ($cyz.isArray(paramKey)) {
rKeys = paramKey;
}
var urlParam = url.substr(url.indexOf("?") + 1);
var beforeUrl = url.substr(0, url.indexOf("?"));
var nextUrl = "";
var arr = new Array();
if (urlParam != "") {
var urlParamArr = urlParam.split("&");
for (var i = 0; i < urlParamArr.length; i++) {
var paramArr = urlParamArr[i].split("=");
if (!$cyz.inArray(paramArr[0], rKeys)) {//没在移除范围内
arr.push(urlParamArr[i]);
}
}
}
if (arr.length > 0) {
nextUrl = (beforeUrl == "" ? "" : "?") + arr.join("&");
}
url = beforeUrl + nextUrl;
return url;
};
u.getDouble = function (obj) {//获取小数
var result = 0.00;
var objStr = (obj == null || (typeof obj == 'undefined')) ? '' : obj.toString();
result = parseFloat(objStr);
return result;
};
u.getTimeStr = function (second) {
var str = '';
var s = parseInt(second);