UNPKG

5.8 kBJavaScriptView Raw
1module.exports = function (row) {
2 /**
3 *
4 */
5 const codes = [
6 '001', //吊柜
7 '002', //地柜
8 '003', //高柜
9 '004', //半高柜
10 '005', //柜门
11 ]
12
13 // 构造表单
14
15 var forms = [{
16 key: this.utils.getKey('下单分类'),
17 label: '下单分类',
18 type:'select',
19 collections: [{label:"标准", value:"标准"},{label:"非标", value:"非标"}],
20 value: ""
21 },
22 {
23 key: this.utils.getKey('宽度'),
24 label: '宽度',
25 type:'txt',
26 tip:`范围${row[this.utils.getKey('宽度最小值')]}~${row[this.utils.getKey('宽度最大值')]}`,
27 value: ""
28 },
29 {
30 key: this.utils.getKey('高度'),
31 label: '高度',
32 type:'txt',
33 tip:`范围${row[this.utils.getKey('高度最小值')]}~${row[this.utils.getKey('高度最大值')]}`,
34 value: ""
35 },
36 {
37 key: this.utils.getKey('深度'),
38 label: '进深',
39 type:'txt',
40 tip:`范围${row[this.utils.getKey('台面进深最小值')]}~${row[this.utils.getKey('台面进深最大值')]}`,
41 value: ""
42 }
43 ]
44
45 var validateMap = {
46 [`${this.utils.getKey('下单分类')}_valid`]: (value, fd, fo) => {
47 if(!value || value == '') return '请选择下单分类';
48 return '';
49 },
50
51 [`${this.utils.getKey('宽度')}_valid`]: (value, fd, fo) => {
52 // 下单类型为包管的时候不需要验证前沿造型,并且要清除前沿造型
53 if(fd[this.utils.getKey('下单分类')] == '标准') {
54 fd[this.utils.getKey('宽度')] = '';
55 return ''
56 }
57 errorMsg = this.utils.staValidFun('宽度', value);
58 errorMsg = this.utils.runAction([
59 {condition:() => {return errorMsg}, msg: errorMsg},
60 {condition:() => {return (value * 1 < row[this.utils.getKey('宽度最小值')] || value * 1 > row[this.utils.getKey('宽度最大值')])}, msg: `宽度${fo.tip}`}
61 ]);
62 return errorMsg;
63 },
64
65 [`${this.utils.getKey('高度')}_valid`]: (value, fd, fo) => {
66 let errorMsg = '';
67 errorMsg = this.utils.staValidFun('高度', value);
68 errorMsg = this.utils.runAction([
69 {condition:() => {return errorMsg}, msg: errorMsg},
70 {condition:() => {return (value * 1 < row[this.utils.getKey('高度最小值')] || value * 1 > row[this.utils.getKey('高度最大值')])}, msg: `高度${fo.tip}`}
71 ]);
72 return errorMsg;
73 },
74
75 [`${this.utils.getKey('深度')}_valid`]: (value, fd, fo) => {
76 let errorMsg = '';
77 errorMsg = this.utils.staValidFun('进深', value);
78 errorMsg = this.utils.runAction([
79 {condition:() => {return errorMsg}, msg: errorMsg},
80 {condition:() => {return (value * 1 < row[this.utils.getKey('台面进深最小值')] || value * 1 > row[this.utils.getKey('台面进深最大值')])}, msg: `进深${fo.tip}`}
81 ]);
82 return errorMsg;
83 }
84 }
85 var self = this;
86 var hights = function() {
87 let hs = row[self.utils.getKey('高度预设值')];
88 if(!hs) return []
89 hs = hs.split(",");
90 let m = [];
91 for(let i =0; i < hs.length; i++) {
92 m.push({
93 label:hs[i],
94 value: hs[i]
95 })
96 }
97 return m
98 }();
99
100 var deeps = function() {
101 let hs = row[self.utils.getKey('深度预设值')];
102 if(!hs) return []
103 hs = hs.split(",");
104 let m = [];
105 for(let i =0; i < hs.length; i++) {
106 m.push({
107 label:hs[i],
108 value: hs[i]
109 })
110 }
111 return m
112 }()
113 return {
114 validateMap: validateMap,
115 // 更新form的 disabled 和 type
116 refreshForm: function() {
117 let formData = {};
118 for (let i = 0; i < this.forms.length; i++) {
119 let rone = this.forms[i];
120 formData[rone.key] = rone.value;
121 }
122 this.forms.map((item) => {
123 if(formData[self.utils.getKey('下单分类')] == '标准') {
124 // 宽度隐掉
125 if(formData[self.utils.getKey('宽度')] == item.key) Object.assign(item, {disabled: true, value:''});
126 else if(formData[self.utils.getKey('高度')] == item.key) Object.assign(item, {value:'', type:'select', collections: hights});
127 else if(formData[self.utils.getKey('深度')] == item.key) Object.assign(item, {value:'', type:'select', collections: deeps});
128 else Object.assign(item, {disabled: false});
129 }
130 else if(formData[self.utils.getKey('下单分类')] == '非标') {
131 if(formData[self.utils.getKey('宽度')] == item.key) Object.assign(item, {disabled: false, value:''});
132 else if(formData[self.utils.getKey('高度')] == item.key) Object.assign(item, {value:'', type:'txt'});
133 else if(formData[self.utils.getKey('深度')] == item.key) Object.assign(item, {value:'', type:'txt'});
134 else Object.assign(item, {disabled: false});
135 }
136 else {
137 Object.assign(item, {disabled: false});
138 }
139 })
140 },
141 codes: codes,
142 forms: forms
143 }
144}
\No newline at end of file