validate_condition.js
8.1 KB
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
var $ = require('jquery');
var common = require('../../../../common/common');
var configData=require('./_config');
var condition_type_list = configData.condition_type_list;
var conditionValidate={
base_conf:configData.condition_base_conf,
validateData:function(_data){
var _g=this;
if(!_data){
common.util.__tip("请先设置条件后保存!", "warning");
return false;
}
var conditions_l1=_data.conditions;
//第一级
if(!conditions_l1){
common.util.__tip("请先设置条件后保存!", "warning");
return false;
}
if(conditions_l1){
//这里拦截产品和支付没有设置
if($.isEmptyObject(conditions_l1)){
common.util.__tip("请先设置条件后保存!", "warning");
return false;
}
//只拦截产品维度
//第二级和第三级json 对象
var obj_l2,obj_l3;
//第二级和第三级type
var _type_l2,_type_l3;
var conditions_l2;
var value_l2,value_l3;
var regrex_int = new RegExp(/^\d+$/);
var regrex_float_2b = new RegExp(/^\d+(\.\d{1,2})?$/);
var regrex_special_prds = new RegExp(/^\d+(,\d+)*$/);
var errorMsg={};
var int_22 = Number("22"), int_1 = Number("1"), int_2 = Number("2");
for(var key2 in conditions_l1){
obj_l2=conditions_l1[key2];
_type_l2=obj_l2["type"];
//产品
if(condition_type_list[0].child[_g.base_conf.productIndex].name===_type_l2){
value_l2=obj_l2["value"];
if(conditionValidate.isBlank(value_l2)){
errorMsg["NO."+key2]="请先设置第一级条件!";
continue;
}
//个数
if(obj_l2["operatobj"]==="num" && $.isNumeric(value_l2) ){
var _value_l2_int = Number(value_l2);
if(!regrex_int.test(_value_l2_int)){
errorMsg["NO."+key2] = condition_type_list[0].child[_g.base_conf.productIndex].caption + "个数请填写整数类型!";
}
}
//金额
if(obj_l2["operatobj"]==="amount" && $.isNumeric(value_l2)){
var _value_l2_int = Number(value_l2);
if(!regrex_float_2b.test(_value_l2_int)){
errorMsg["NO."+key2] = condition_type_list[0].child[_g.base_conf.productIndex].caption + "金额请填写数字类型!";
}
}
conditions_l2=obj_l2["conditions"];
if(!conditions_l2||conditions_l2.length===0){
/*
if(errorMsg["NO."+key2]){
errorMsg["NO."+key2]=errorMsg["NO."+key2]+";"+"请添加品类、品牌、促销标记或特定商品!";
}else{
errorMsg["NO."+key2]="请添加品类、品牌、促销标记或特定商品!";
} */
continue;
}
//第三层中的conditions遍历校验
for(var key3 in conditions_l2){
obj_l3=conditions_l2[key3];
value_l3=obj_l3["value"];
_type_l3=obj_l3["type"];
//特定商品
if(condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.special_product_index].name === _type_l3){
if(conditionValidate.isBlank(value_l3)){
errorMsg["NO."+key2+"."+key3]="请设置"+condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.special_product_index].caption;
}
if(!regrex_special_prds.test(value_l3)){
if(errorMsg["NO."+key2+"."+key3]){
errorMsg["NO."+key2+"."+key3] = errorMsg["NO."+key2+"."+key3]+";"
+ condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.special_product_index].caption
+ "数据格式不对";
}else{
errorMsg["NO."+key2+"."+key3]= condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.special_product_index].caption
+ "数据格式不对";
}
}
}
//product_brand
if(condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.product_brand_index].name === _type_l3){
if(conditionValidate.isBlank(value_l3)){
errorMsg["NO."+key2+"."+key3]="请设置"+condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.product_brand_index].caption;
}
}
//product_sort
if(condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.product_sort_index].name === _type_l3){
if(conditionValidate.isBlank(value_l3)){
errorMsg["NO."+key2+"."+key3]="请设置"+condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.product_sort_index].caption;
}
}
//product_promotion_flag
if(condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.promotion_flag_index].name === _type_l3){
if(conditionValidate.isBlank(value_l3)){
errorMsg["NO."+key2+"."+key3]="请设置"+condition_type_list[0].child[_g.base_conf.productIndex].child[_g.base_conf.promotion_flag_index].caption;
}
}
}
}
}
}
if(!$.isEmptyObject(errorMsg)){
for(var key in errorMsg){
common.util.__tip(key+errorMsg[key], "warning");
}
return false;
}
return true;
},
/**
* 检验条件是否赋值
*/
validateValue:function(_params){
if(!_params){
return false;
}
var _value = _params.value;
if(!_value){
return false;
}
if(_value){
var _trim_value = $.trim(_value);
if(_trim_value){
//todo 更严格的更细粒度的校验
return true;
}
if(!_trim_value){
return false;
}
}
},
/**
* 是否为空
* 空格 或 空值 均为空
*/
isBlank:function(_str){
var _g=this;
if(!_str || _g.isBlankSpace(_str)){
return true;
}
},
/**
* 是否是空格,
* 是:true;
* 否:false;
*/
isBlankSpace:function(_str){
if(!_str){
return false;
}
if(_str){
var _trim_str=$.trim(_str);
if(!_trim_str){
return true;
}
if(_trim_str){
return false;
}
}
}
};
module.exports = conditionValidate;