UNPKG

8.83 kBJavaScriptView Raw
1module.exports = function (row) {
2 /**
3 *
4 */
5 const codes = [
6 '097', // (铝框门门扇
7 '089' // (门扇木门)
8 ]
9
10 // 构造表单
11
12 var forms = [{
13 key: this.utils.getKey('门洞宽'),
14 label: '门洞宽',
15 type:'txt',
16 tip: `范围应在${row[this.utils.getKey('门洞宽最小值')]}~${row[this.utils.getKey('门洞宽极限值')]}之间(如果填写了门扇宽,则范围会有浮动)`,
17 value: ""
18 },
19 {
20 key: this.utils.getKey('门洞高'),
21 label: '门洞高',
22 type:'txt',
23 tip: `范围应在${row[this.utils.getKey('门洞高最小值')]}~${row[this.utils.getKey('门洞高极限值')]}之间(如果填写了门扇高,则范围会有浮动)`,
24 value: ""
25 },
26 {
27 key: this.utils.getKey('门洞深'),
28 label: '门洞深',
29 type:'txt',
30 tip: `范围应在${row[this.utils.getKey('门洞深最小值')]}~${row[this.utils.getKey('门洞深极限值')]}之间`,
31 value: ""
32 },
33 {
34 key: this.utils.getKey('门扇宽'),
35 label: '门扇宽',
36 type:'txt',
37 tip: `范围应在${row[this.utils.getKey('门扇宽最小值')]}~${row[this.utils.getKey('门扇宽极限值')]}之间(如果填写了门洞宽,则范围会有浮动)`,
38 value: ""
39 },
40 {
41 key: this.utils.getKey('门扇高'),
42 label: '门扇高',
43 type:'txt',
44 tip: `范围应在${row[this.utils.getKey('门扇高最小值')]}~${row[this.utils.getKey('门扇高极限值')]}之间(如果填写了门洞高,则范围会有浮动)`,
45 value: ""
46 }
47 ]
48
49 var validateMap = {
50 [`${this.utils.getKey('门洞宽')}_valid`]: (value, fd, fo) => {
51 let errorMsg = '';
52 // 如果不填写就不验证(特殊逻辑)
53 if(!value || value == '') return ''
54 errorMsg = this.utils.staValidFun('门洞宽', value);
55
56 if(!!errorMsg) return errorMsg;
57 // 如果填写了门扇宽
58 // 门扇数是双扇 门扇宽*2-60<=门洞宽<=门扇宽*2-10;
59 // 门扇数是四扇 门扇宽*4-180<=门洞宽<=门扇宽*4-130;
60 if(fd[this.utils.getKey('门扇宽')] != '' && !isNaN(fd[this.utils.getKey('门扇宽')])) {
61 if(row[this.utils.getKey('扇面')] == "双扇") {
62 if(value < (fd[this.utils.getKey('门扇宽')]*2 - 60) || value > (fd[this.utils.getKey('门扇宽')]*2 - 10)) {
63 errorMsg = '门洞宽范围应在'+ (fd[this.utils.getKey('门扇宽')]*2 - 60) + '~'+ (fd[this.utils.getKey('门扇宽')]*2 - 10) + '之间';
64 }
65 }
66 else if(row[this.utils.getKey('扇面')] == "四扇") {
67 if(value < (fd[this.utils.getKey('门扇宽')]*4 -180) || value > (fd[this.utils.getKey('门扇宽')]*4 -130)) {
68 errorMsg = '门洞宽范围应在'+ (fd[this.utils.getKey('门扇宽')]*4 -180) + '~'+ (fd[this.utils.getKey('门扇宽')]*4 -130) + '之间';
69 }
70 }
71 // 走常规最值验证
72 else if(value < row[this.utils.getKey('门洞宽最小值')] || value > row[this.utils.getKey('门洞宽极限值')]) errorMsg = `门洞宽${fo.tip}`;
73 }
74 // 走常规最值验证
75 else {
76 if(value < row[this.utils.getKey('门洞宽最小值')] || value > row[this.utils.getKey('门洞宽极限值')]) errorMsg = `门洞宽${fo.tip}`;
77 }
78 return errorMsg;
79 },
80 [`${this.utils.getKey('门洞高')}_valid`]: (value, fd, fo) => {
81 let errorMsg = '';
82 // 如果不填写就不验证(特殊逻辑)
83 if(!value || value == '') return ''
84 errorMsg = this.utils.staValidFun('门洞高', value);
85 if(!!errorMsg) return errorMsg;
86 //如果填写了,门扇高
87 //门扇数是双扇 门扇高+80<=门洞高<=门扇高+110;
88 //门扇数是四扇 门扇高+80<=门洞高<=门扇高+110;
89 if(fd[this.utils.getKey('门扇高')] !== '' && !isNaN(fd[this.utils.getKey('门扇高')])) {
90 if(value < (fd[this.utils.getKey('门扇高')]*1 + 80) || value > (fd[this.utils.getKey('门扇高')]*1 + 110)) {
91 errorMsg = '门洞高范围应在'+ (fd[this.utils.getKey('门扇高')]*1 + 80) + '~'+ (fd[this.utils.getKey('门扇高')]*1 + 110) + '之间';
92 }
93 }
94 else {
95 if(value < row[this.utils.getKey('门洞高最小值')] || value > row[this.utils.getKey('门洞高极限值')]) errorMsg = `门洞高${fo.tip}`;
96 }
97 return errorMsg;
98 },
99 [`${this.utils.getKey('门洞深')}_valid`]: (value, fd, fo) => {
100 let errorMsg = '';
101 // 如果不填写就不验证(特殊逻辑)
102 if(!value || value == '') return ''
103 errorMsg = this.utils.staValidFun('门洞深', value);
104 errorMsg = this.utils.runAction([
105 {condition: () => {return errorMsg}, msg: errorMsg},
106 {condition: () => {return (value < row[this.utils.getKey('门洞深最小值')] || value > row[this.utils.getKey('门洞深极限值')])}, msg: `门洞深${fo.tip}`}
107 ]);
108 return errorMsg;
109 },
110
111 // 门扇宽
112 [`${this.utils.getKey('门扇宽')}_valid`]: (value, fd, fo) => {
113 let errorMsg = '';
114 errorMsg = this.utils.staValidFun('门扇宽', value);
115 if(!!errorMsg) return errorMsg;
116 //如果填写了,门洞宽
117 // 门扇数是双扇 (门洞宽+10)/2<=门扇宽<=(门洞宽+60)/2;
118 // 门扇数是四扇 (门洞宽+130)/4<=门扇宽<=(门洞宽+180)/4;
119 if(fd[this.utils.getKey('门洞宽')] !== '' && !isNaN(fd[this.utils.getKey('门洞宽')])) {
120 if(row[this.utils.getKey('扇面')] == "双扇") {
121 if(value < ((fd[this.utils.getKey('门洞宽')]*1 + 10)/2) || value > ((fd[this.utils.getKey('门洞宽')]*1 + 60)/2)) {
122 errorMsg = '门扇宽范围应在'+ ((fd.U_DSWide*1 + 10)/2) + '~'+ ((fd.U_DSWide*1 + 60)/2) + '之间';
123 }
124 }
125 else if(row[this.utils.getKey('扇面')] == "四扇") {
126 if(value < ((fd[this.utils.getKey('门洞宽')]*1 + 130)/4) || value > ((fd[this.utils.getKey('门洞宽')]*1 + 180)/4)) {
127 errorMsg = '门扇宽范围应在'+ ((fd[this.utils.getKey('门洞宽')]*1 + 130)/4) + '~'+ ((fd[this.utils.getKey('门洞宽')]*1 + 180)/4) + '之间';
128 }
129 }
130 else if(value < row[this.utils.getKey('门洞宽最小值')] || value > row[this.utils.getKey('门洞宽极限值')]) errorMsg = `门扇宽${fo.tip}`;
131 }
132 else {
133 if(value < row[this.utils.getKey('门洞宽最小值')] || value > row[this.utils.getKey('门洞宽极限值')]) errorMsg = `门扇宽${fo.tip}`;
134 }
135 return errorMsg;
136 },
137 // 门扇高
138 [`${this.utils.getKey('门扇高')}_valid`]: (value, fd, fo) => {
139 let errorMsg = '';
140 errorMsg = this.utils.staValidFun('门扇高', value);
141 if(!!errorMsg) return errorMsg;
142 //如果填写了,门洞高
143 // 门扇数是双扇 门洞高-110<=门扇高<=门洞高-80;
144 // 门扇数是四扇 门洞高-110<=门扇高<=门洞高-80;
145 if(fd[this.utils.getKey('门洞高')] !== '' && !isNaN(fd[this.utils.getKey('门洞高')])) {
146 if(value < (fd[this.utils.getKey('门洞高')]*1 - 110) || value > (fd[this.utils.getKey('门洞高')]*1 - 80)) {
147 errorMsg = '门扇高范围应在'+ (fd[this.utils.getKey('门洞高')] *1 - 110) + '~'+ (fd[this.utils.getKey('门洞高')]*1 - 80) + '之间';
148 }
149 }
150 else {
151 if(value < row[this.utils.getKey('门洞高最小值')] || value > row[this.utils.getKey('门洞高极限值')]) errorMsg = `门扇高${fo.tip}`;
152 }
153 return errorMsg;
154 }
155
156 }
157
158 return {
159 validateMap: validateMap,
160 codes: codes,
161 forms: forms
162 }
163}
\No newline at end of file