el-plus-crud 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +115 -3
- package/dist/el-plus-crud.mjs +6968 -6968
- package/dist/el-plus-crud.umd.js +27 -27
- package/dist/style.css +1 -1
- package/lib/components/el-plus-form/ElPlusFormDialog.vue +107 -107
- package/lib/components/el-plus-form/components/ElPlusFormAutocomplete.vue +49 -49
- package/lib/components/el-plus-form/components/ElPlusFormBtns.vue +133 -133
- package/lib/components/el-plus-form/components/ElPlusFormCascaderPanel.vue +51 -51
- package/lib/components/el-plus-form/components/ElPlusFormCheckbox.vue +42 -42
- package/lib/components/el-plus-form/components/ElPlusFormCheckboxButton.vue +42 -42
- package/lib/components/el-plus-form/components/ElPlusFormColor.vue +38 -38
- package/lib/components/el-plus-form/components/ElPlusFormDaterange.vue +44 -44
- package/lib/components/el-plus-form/components/ElPlusFormDatetime.vue +38 -38
- package/lib/components/el-plus-form/components/ElPlusFormImage.vue +113 -113
- package/lib/components/el-plus-form/components/ElPlusFormNbinput.vue +51 -51
- package/lib/components/el-plus-form/components/ElPlusFormRadio.vue +42 -42
- package/lib/components/el-plus-form/components/ElPlusFormRate.vue +38 -38
- package/lib/components/el-plus-form/components/ElPlusFormSlider.vue +38 -38
- package/lib/components/el-plus-form/components/ElPlusFormStatus.vue +67 -67
- package/lib/components/el-plus-form/components/ElPlusFormSwitch.vue +38 -38
- package/lib/components/el-plus-form/components/ElPlusFormTag.vue +78 -78
- package/lib/components/el-plus-form/components/ElPlusFormTransfer.vue +44 -44
- package/lib/components/el-plus-form/components/ElPlusFormTree.vue +53 -53
- package/lib/components/el-plus-form/components/ElPlusFormTreeSelect.vue +36 -36
- package/lib/components/el-plus-form/components/ElPlusFormUpload.vue +2 -0
- package/lib/components/el-plus-form/components/index.ts +17 -17
- package/lib/components/el-plus-form/data/file.ts +74 -74
- package/lib/components/el-plus-form/mixins/index.ts +113 -113
- package/lib/components/el-plus-form/util/validate.ts +310 -310
- package/lib/components-list.ts +66 -66
- package/package.json +1 -1
|
@@ -1,310 +1,310 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 获取通用的校验规则
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* 不能为空
|
|
7
|
-
*/
|
|
8
|
-
export const notNull = [{ required: true, trigger: 'blur', validator: validateInputNotNull }]
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* 不能全是空格
|
|
12
|
-
*/
|
|
13
|
-
export const notAllBlank = [{ required: true, trigger: 'blur', validator: validateInputNotAllBlank }]
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* 必须是数字
|
|
17
|
-
*/
|
|
18
|
-
export const number = [{ type: 'number', message: '请填入数字!' }]
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* 校验验证码
|
|
22
|
-
*/
|
|
23
|
-
export const vCode = [{ required: true, trigger: 'blur', validator: validateValidateCode }]
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* 校验邮箱
|
|
27
|
-
*/
|
|
28
|
-
export const email = [{ trigger: 'blur', validator: validateEmail }]
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* 校验手机号
|
|
32
|
-
*/
|
|
33
|
-
export const phone = [{ required: true, trigger: 'blur', validator: validatePhone }]
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* 校验密码
|
|
37
|
-
*/
|
|
38
|
-
export const password = [{ required: true, trigger: 'blur', validator: validatePassword }]
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* 校验密码
|
|
42
|
-
*/
|
|
43
|
-
export const password2 = [{ trigger: 'blur', validator: validatePassword }]
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* 校验账户
|
|
47
|
-
*/
|
|
48
|
-
export const account = [{ required: true, trigger: 'blur', validator: validateAccount }]
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* 校验英文字母加数字
|
|
52
|
-
*/
|
|
53
|
-
export const wordnum = [{ trigger: 'blur', validator: validateWordNumber }]
|
|
54
|
-
export const wordnum2 = [{ required: true, trigger: 'blur', validator: validateWordNumber }]
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* 必须是数字且不为空
|
|
58
|
-
*/
|
|
59
|
-
export const numberNotNull = [
|
|
60
|
-
{ required: true, message: '不能为空!', trigger: 'blur' },
|
|
61
|
-
{ type: 'number', message: '请填入数字!' }
|
|
62
|
-
]
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* 正整数
|
|
66
|
-
*/
|
|
67
|
-
export const zhengZhengShu = [{ required: true, trigger: 'blur', validator: validateZhengZhengShu }]
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Double类型
|
|
71
|
-
*/
|
|
72
|
-
export const double = [{ required: true, trigger: 'blur', validator: validateDouble }]
|
|
73
|
-
/**
|
|
74
|
-
* Double类型且必填
|
|
75
|
-
*/
|
|
76
|
-
export const double2 = [{ trigger: 'blur', validator: validateDouble }]
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* 选择
|
|
80
|
-
*/
|
|
81
|
-
export const select = [{ required: true, trigger: 'change', validator: validateSelect }]
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* 级联选择
|
|
85
|
-
* @type {[*]}
|
|
86
|
-
*/
|
|
87
|
-
export const cascader = [{ required: true, trigger: 'change', validator: validateSelect }]
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* 必须上传
|
|
91
|
-
*/
|
|
92
|
-
export const upload = [{ required: true, trigger: 'change', validator: validateUpload }]
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* 文本域
|
|
96
|
-
*/
|
|
97
|
-
export const textarea = [{ required: true, trigger: 'change', validator: validateTextarea }]
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* 正整数校验
|
|
101
|
-
* @param rule
|
|
102
|
-
* @param value
|
|
103
|
-
* @param callback
|
|
104
|
-
*/
|
|
105
|
-
function validateZhengZhengShu(rule: any, value: any, callback?: any) {
|
|
106
|
-
if (!/^[1-9]\d*$/.test(value * 1 + '')) {
|
|
107
|
-
callback(new Error('请输入正整数!'))
|
|
108
|
-
} else {
|
|
109
|
-
callback()
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* 选择
|
|
115
|
-
* @param rule
|
|
116
|
-
* @param value
|
|
117
|
-
* @param callback
|
|
118
|
-
*/
|
|
119
|
-
function validateValidateCode(rule: any, value: any, callback?: any) {
|
|
120
|
-
if (value.length !== 4) {
|
|
121
|
-
callback(new Error('验证码必须是4位!'))
|
|
122
|
-
} else {
|
|
123
|
-
callback()
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* 选择
|
|
129
|
-
* @param rule
|
|
130
|
-
* @param value
|
|
131
|
-
* @param callback
|
|
132
|
-
*/
|
|
133
|
-
function validateInputNotNull(rule: any, value: any, callback?: any) {
|
|
134
|
-
if (typeof value === 'undefined' || value === '' || value === null) {
|
|
135
|
-
callback(new Error('此项必填!'))
|
|
136
|
-
} else {
|
|
137
|
-
callback()
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* 不能全是空格
|
|
143
|
-
* @param rule
|
|
144
|
-
* @param value
|
|
145
|
-
* @param callback
|
|
146
|
-
*/
|
|
147
|
-
function validateInputNotAllBlank(rule: any, value: any, callback?: any) {
|
|
148
|
-
if (typeof value === 'undefined' || value === '' || value === null) {
|
|
149
|
-
callback(new Error('此项必填!'))
|
|
150
|
-
} else {
|
|
151
|
-
if (typeof value === 'number') {
|
|
152
|
-
value = value + ''
|
|
153
|
-
}
|
|
154
|
-
if (typeof value === 'string' && value.match(/^[ ]*$/)) {
|
|
155
|
-
callback(new Error('不能全是空格!'))
|
|
156
|
-
} else {
|
|
157
|
-
callback()
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* 选择
|
|
164
|
-
* @param rule
|
|
165
|
-
* @param value
|
|
166
|
-
* @param callback
|
|
167
|
-
*/
|
|
168
|
-
function validateSelect(rule: any, value: any, callback?: any) {
|
|
169
|
-
if (value === null || typeof value === 'undefined' || value === '' || value.length <= 0) {
|
|
170
|
-
callback(new Error('请选择!'))
|
|
171
|
-
} else {
|
|
172
|
-
callback()
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* 上传
|
|
178
|
-
* @param rule
|
|
179
|
-
* @param value
|
|
180
|
-
* @param callback
|
|
181
|
-
*/
|
|
182
|
-
function validateUpload(rule: any, value: any, callback?: any) {
|
|
183
|
-
if (value === null || typeof value === 'undefined' || value === '' || value.length <= 0) {
|
|
184
|
-
callback(new Error('请上传!'))
|
|
185
|
-
} else {
|
|
186
|
-
callback()
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* 文本域
|
|
192
|
-
* @param rule
|
|
193
|
-
* @param value
|
|
194
|
-
* @param callback
|
|
195
|
-
*/
|
|
196
|
-
function validateTextarea(rule: any, value: any, callback?: any) {
|
|
197
|
-
if (typeof value === 'undefined' || value === '' || value === null) {
|
|
198
|
-
callback(new Error('此项必填!'))
|
|
199
|
-
} else if (!value.replace(/\n/g, '')) {
|
|
200
|
-
callback(new Error('不能全是换行!'))
|
|
201
|
-
} else if (typeof value === 'string' && value.replace(/\n/g, '').match(/^[ ]*$/)) {
|
|
202
|
-
callback(new Error('不能全是空格!'))
|
|
203
|
-
} else {
|
|
204
|
-
callback()
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* 小数校验规则
|
|
210
|
-
* @param rule
|
|
211
|
-
* @param value
|
|
212
|
-
* @param callback
|
|
213
|
-
*/
|
|
214
|
-
function validateDouble(rule: any, value: any, callback?: any) {
|
|
215
|
-
if (!/^\d+(\.(\d{1}|\d{2}))?$/.test(value * 1 + '')) {
|
|
216
|
-
callback(new Error('小数格式错误(最多两位)!'))
|
|
217
|
-
} else {
|
|
218
|
-
callback()
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* 校验邮箱
|
|
224
|
-
* @param rule
|
|
225
|
-
* @param value
|
|
226
|
-
* @param callback
|
|
227
|
-
*/
|
|
228
|
-
function validateEmail(rule: any, value: any, callback?: any) {
|
|
229
|
-
if (!value) {
|
|
230
|
-
callback(new Error('邮箱必填'))
|
|
231
|
-
} else if (!/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value)) {
|
|
232
|
-
callback(new Error('邮箱格式错误!'))
|
|
233
|
-
} else {
|
|
234
|
-
callback()
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* 校验手机号
|
|
240
|
-
* @param rule
|
|
241
|
-
* @param value
|
|
242
|
-
* @param callback
|
|
243
|
-
*/
|
|
244
|
-
function validatePhone(rule: any, value: any, callback?: any) {
|
|
245
|
-
if (!value) {
|
|
246
|
-
callback(new Error('手机号必填'))
|
|
247
|
-
} else if (!/^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(value)) {
|
|
248
|
-
callback(new Error('手机号格式错误!'))
|
|
249
|
-
} else {
|
|
250
|
-
callback()
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* 校验密码
|
|
256
|
-
* @param rule
|
|
257
|
-
* @param value
|
|
258
|
-
* @param callback
|
|
259
|
-
*/
|
|
260
|
-
export function validatePassword(rule: any, value: any, callback?: any) {
|
|
261
|
-
if (!value || !/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?=.*[~!@#$%^&*])(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,32}$/.test(value)) {
|
|
262
|
-
callback(new Error('密码为8-32位字母大小写+特殊字符+数字!'))
|
|
263
|
-
} else {
|
|
264
|
-
callback()
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* 校验密码
|
|
270
|
-
* @param rule
|
|
271
|
-
* @param value
|
|
272
|
-
* @param callback
|
|
273
|
-
*/
|
|
274
|
-
export function validatePassword2(rule: any, value: any, callback?: any) {
|
|
275
|
-
if (value && !/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?=.*[~!@#$%^&*])(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,32}$/.test(value)) {
|
|
276
|
-
callback(new Error('密码为8-32位字母大小写+特殊字符+数字!'))
|
|
277
|
-
} else {
|
|
278
|
-
callback()
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* 校验账户
|
|
284
|
-
* @param rule
|
|
285
|
-
* @param value
|
|
286
|
-
* @param callback
|
|
287
|
-
*/
|
|
288
|
-
function validateAccount(rule: any, value: any, callback?: any) {
|
|
289
|
-
if (typeof value === 'undefined' || value === '' || value === null) {
|
|
290
|
-
callback(new Error('此项必填!'))
|
|
291
|
-
} else if (value && !/^([a-z,A-z,0-9]){4,20}$/.test(value)) {
|
|
292
|
-
callback(new Error('账号为4-20位字母或数字!'))
|
|
293
|
-
} else {
|
|
294
|
-
callback()
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* 校验字母和数字组成
|
|
300
|
-
* @param rule
|
|
301
|
-
* @param value
|
|
302
|
-
* @param callback
|
|
303
|
-
*/
|
|
304
|
-
function validateWordNumber(rule: any, value: any, callback?: any) {
|
|
305
|
-
if (value && !/^([a-z,A-z,0-9]){16,20}$/.test(value)) {
|
|
306
|
-
callback(new Error('请输入16-20位字母或数字!'))
|
|
307
|
-
} else {
|
|
308
|
-
callback()
|
|
309
|
-
}
|
|
310
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* 获取通用的校验规则
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 不能为空
|
|
7
|
+
*/
|
|
8
|
+
export const notNull = [{ required: true, trigger: 'blur', validator: validateInputNotNull }]
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 不能全是空格
|
|
12
|
+
*/
|
|
13
|
+
export const notAllBlank = [{ required: true, trigger: 'blur', validator: validateInputNotAllBlank }]
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 必须是数字
|
|
17
|
+
*/
|
|
18
|
+
export const number = [{ type: 'number', message: '请填入数字!' }]
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 校验验证码
|
|
22
|
+
*/
|
|
23
|
+
export const vCode = [{ required: true, trigger: 'blur', validator: validateValidateCode }]
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 校验邮箱
|
|
27
|
+
*/
|
|
28
|
+
export const email = [{ trigger: 'blur', validator: validateEmail }]
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 校验手机号
|
|
32
|
+
*/
|
|
33
|
+
export const phone = [{ required: true, trigger: 'blur', validator: validatePhone }]
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* 校验密码
|
|
37
|
+
*/
|
|
38
|
+
export const password = [{ required: true, trigger: 'blur', validator: validatePassword }]
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* 校验密码
|
|
42
|
+
*/
|
|
43
|
+
export const password2 = [{ trigger: 'blur', validator: validatePassword }]
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* 校验账户
|
|
47
|
+
*/
|
|
48
|
+
export const account = [{ required: true, trigger: 'blur', validator: validateAccount }]
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* 校验英文字母加数字
|
|
52
|
+
*/
|
|
53
|
+
export const wordnum = [{ trigger: 'blur', validator: validateWordNumber }]
|
|
54
|
+
export const wordnum2 = [{ required: true, trigger: 'blur', validator: validateWordNumber }]
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 必须是数字且不为空
|
|
58
|
+
*/
|
|
59
|
+
export const numberNotNull = [
|
|
60
|
+
{ required: true, message: '不能为空!', trigger: 'blur' },
|
|
61
|
+
{ type: 'number', message: '请填入数字!' }
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* 正整数
|
|
66
|
+
*/
|
|
67
|
+
export const zhengZhengShu = [{ required: true, trigger: 'blur', validator: validateZhengZhengShu }]
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Double类型
|
|
71
|
+
*/
|
|
72
|
+
export const double = [{ required: true, trigger: 'blur', validator: validateDouble }]
|
|
73
|
+
/**
|
|
74
|
+
* Double类型且必填
|
|
75
|
+
*/
|
|
76
|
+
export const double2 = [{ trigger: 'blur', validator: validateDouble }]
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* 选择
|
|
80
|
+
*/
|
|
81
|
+
export const select = [{ required: true, trigger: 'change', validator: validateSelect }]
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* 级联选择
|
|
85
|
+
* @type {[*]}
|
|
86
|
+
*/
|
|
87
|
+
export const cascader = [{ required: true, trigger: 'change', validator: validateSelect }]
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 必须上传
|
|
91
|
+
*/
|
|
92
|
+
export const upload = [{ required: true, trigger: 'change', validator: validateUpload }]
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* 文本域
|
|
96
|
+
*/
|
|
97
|
+
export const textarea = [{ required: true, trigger: 'change', validator: validateTextarea }]
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* 正整数校验
|
|
101
|
+
* @param rule
|
|
102
|
+
* @param value
|
|
103
|
+
* @param callback
|
|
104
|
+
*/
|
|
105
|
+
function validateZhengZhengShu(rule: any, value: any, callback?: any) {
|
|
106
|
+
if (!/^[1-9]\d*$/.test(value * 1 + '')) {
|
|
107
|
+
callback(new Error('请输入正整数!'))
|
|
108
|
+
} else {
|
|
109
|
+
callback()
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* 选择
|
|
115
|
+
* @param rule
|
|
116
|
+
* @param value
|
|
117
|
+
* @param callback
|
|
118
|
+
*/
|
|
119
|
+
function validateValidateCode(rule: any, value: any, callback?: any) {
|
|
120
|
+
if (value.length !== 4) {
|
|
121
|
+
callback(new Error('验证码必须是4位!'))
|
|
122
|
+
} else {
|
|
123
|
+
callback()
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* 选择
|
|
129
|
+
* @param rule
|
|
130
|
+
* @param value
|
|
131
|
+
* @param callback
|
|
132
|
+
*/
|
|
133
|
+
function validateInputNotNull(rule: any, value: any, callback?: any) {
|
|
134
|
+
if (typeof value === 'undefined' || value === '' || value === null) {
|
|
135
|
+
callback(new Error('此项必填!'))
|
|
136
|
+
} else {
|
|
137
|
+
callback()
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* 不能全是空格
|
|
143
|
+
* @param rule
|
|
144
|
+
* @param value
|
|
145
|
+
* @param callback
|
|
146
|
+
*/
|
|
147
|
+
function validateInputNotAllBlank(rule: any, value: any, callback?: any) {
|
|
148
|
+
if (typeof value === 'undefined' || value === '' || value === null) {
|
|
149
|
+
callback(new Error('此项必填!'))
|
|
150
|
+
} else {
|
|
151
|
+
if (typeof value === 'number') {
|
|
152
|
+
value = value + ''
|
|
153
|
+
}
|
|
154
|
+
if (typeof value === 'string' && value.match(/^[ ]*$/)) {
|
|
155
|
+
callback(new Error('不能全是空格!'))
|
|
156
|
+
} else {
|
|
157
|
+
callback()
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* 选择
|
|
164
|
+
* @param rule
|
|
165
|
+
* @param value
|
|
166
|
+
* @param callback
|
|
167
|
+
*/
|
|
168
|
+
function validateSelect(rule: any, value: any, callback?: any) {
|
|
169
|
+
if (value === null || typeof value === 'undefined' || value === '' || value.length <= 0) {
|
|
170
|
+
callback(new Error('请选择!'))
|
|
171
|
+
} else {
|
|
172
|
+
callback()
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* 上传
|
|
178
|
+
* @param rule
|
|
179
|
+
* @param value
|
|
180
|
+
* @param callback
|
|
181
|
+
*/
|
|
182
|
+
function validateUpload(rule: any, value: any, callback?: any) {
|
|
183
|
+
if (value === null || typeof value === 'undefined' || value === '' || value.length <= 0) {
|
|
184
|
+
callback(new Error('请上传!'))
|
|
185
|
+
} else {
|
|
186
|
+
callback()
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* 文本域
|
|
192
|
+
* @param rule
|
|
193
|
+
* @param value
|
|
194
|
+
* @param callback
|
|
195
|
+
*/
|
|
196
|
+
function validateTextarea(rule: any, value: any, callback?: any) {
|
|
197
|
+
if (typeof value === 'undefined' || value === '' || value === null) {
|
|
198
|
+
callback(new Error('此项必填!'))
|
|
199
|
+
} else if (!value.replace(/\n/g, '')) {
|
|
200
|
+
callback(new Error('不能全是换行!'))
|
|
201
|
+
} else if (typeof value === 'string' && value.replace(/\n/g, '').match(/^[ ]*$/)) {
|
|
202
|
+
callback(new Error('不能全是空格!'))
|
|
203
|
+
} else {
|
|
204
|
+
callback()
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* 小数校验规则
|
|
210
|
+
* @param rule
|
|
211
|
+
* @param value
|
|
212
|
+
* @param callback
|
|
213
|
+
*/
|
|
214
|
+
function validateDouble(rule: any, value: any, callback?: any) {
|
|
215
|
+
if (!/^\d+(\.(\d{1}|\d{2}))?$/.test(value * 1 + '')) {
|
|
216
|
+
callback(new Error('小数格式错误(最多两位)!'))
|
|
217
|
+
} else {
|
|
218
|
+
callback()
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* 校验邮箱
|
|
224
|
+
* @param rule
|
|
225
|
+
* @param value
|
|
226
|
+
* @param callback
|
|
227
|
+
*/
|
|
228
|
+
function validateEmail(rule: any, value: any, callback?: any) {
|
|
229
|
+
if (!value) {
|
|
230
|
+
callback(new Error('邮箱必填'))
|
|
231
|
+
} else if (!/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value)) {
|
|
232
|
+
callback(new Error('邮箱格式错误!'))
|
|
233
|
+
} else {
|
|
234
|
+
callback()
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* 校验手机号
|
|
240
|
+
* @param rule
|
|
241
|
+
* @param value
|
|
242
|
+
* @param callback
|
|
243
|
+
*/
|
|
244
|
+
function validatePhone(rule: any, value: any, callback?: any) {
|
|
245
|
+
if (!value) {
|
|
246
|
+
callback(new Error('手机号必填'))
|
|
247
|
+
} else if (!/^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(value)) {
|
|
248
|
+
callback(new Error('手机号格式错误!'))
|
|
249
|
+
} else {
|
|
250
|
+
callback()
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* 校验密码
|
|
256
|
+
* @param rule
|
|
257
|
+
* @param value
|
|
258
|
+
* @param callback
|
|
259
|
+
*/
|
|
260
|
+
export function validatePassword(rule: any, value: any, callback?: any) {
|
|
261
|
+
if (!value || !/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?=.*[~!@#$%^&*])(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,32}$/.test(value)) {
|
|
262
|
+
callback(new Error('密码为8-32位字母大小写+特殊字符+数字!'))
|
|
263
|
+
} else {
|
|
264
|
+
callback()
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* 校验密码
|
|
270
|
+
* @param rule
|
|
271
|
+
* @param value
|
|
272
|
+
* @param callback
|
|
273
|
+
*/
|
|
274
|
+
export function validatePassword2(rule: any, value: any, callback?: any) {
|
|
275
|
+
if (value && !/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?=.*[~!@#$%^&*])(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,32}$/.test(value)) {
|
|
276
|
+
callback(new Error('密码为8-32位字母大小写+特殊字符+数字!'))
|
|
277
|
+
} else {
|
|
278
|
+
callback()
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* 校验账户
|
|
284
|
+
* @param rule
|
|
285
|
+
* @param value
|
|
286
|
+
* @param callback
|
|
287
|
+
*/
|
|
288
|
+
function validateAccount(rule: any, value: any, callback?: any) {
|
|
289
|
+
if (typeof value === 'undefined' || value === '' || value === null) {
|
|
290
|
+
callback(new Error('此项必填!'))
|
|
291
|
+
} else if (value && !/^([a-z,A-z,0-9]){4,20}$/.test(value)) {
|
|
292
|
+
callback(new Error('账号为4-20位字母或数字!'))
|
|
293
|
+
} else {
|
|
294
|
+
callback()
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* 校验字母和数字组成
|
|
300
|
+
* @param rule
|
|
301
|
+
* @param value
|
|
302
|
+
* @param callback
|
|
303
|
+
*/
|
|
304
|
+
function validateWordNumber(rule: any, value: any, callback?: any) {
|
|
305
|
+
if (value && !/^([a-z,A-z,0-9]){16,20}$/.test(value)) {
|
|
306
|
+
callback(new Error('请输入16-20位字母或数字!'))
|
|
307
|
+
} else {
|
|
308
|
+
callback()
|
|
309
|
+
}
|
|
310
|
+
}
|