Showing
1 changed file
with
394 additions
and
394 deletions
1 | -import { Rule } from 'ant-design-vue/lib/form/interface'; | ||
2 | -/** | ||
3 | - * 常用表单自定义验证规则 | ||
4 | - * | ||
5 | - */ | ||
6 | - | ||
7 | -export const validatorLongitude = (_rule: Rule, value: string) => { | ||
8 | - const reg = | ||
9 | - /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,20})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,20}|180)$/; | ||
10 | - if (!value) { | ||
11 | - return Promise.reject('请输入经度'); | ||
12 | - } else if (!reg.test(value)) { | ||
13 | - return Promise.reject('经度整数部分为0-180,小数部分为0到6位!'); | ||
14 | - } | ||
15 | - return Promise.resolve(); | ||
16 | -}; | ||
17 | -export const validatorLatitude = (_rule: Rule, value: string) => { | ||
18 | - const reg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,20}|90\.0{0,20}|[0-8]?\d{1}|90)$/; | ||
19 | - if (value === '') { | ||
20 | - return Promise.reject('请输入维度'); | ||
21 | - } else if (!reg.test(value)) { | ||
22 | - return Promise.reject('纬度整数部分为0-90,小数部分为0到6位!'); | ||
23 | - } | ||
24 | - | ||
25 | - return Promise.resolve(); | ||
26 | -}; | ||
27 | - | ||
28 | -//正整数并且可以是英文 | ||
29 | -export const numberAndEngLishRule: Rule[] = [ | ||
30 | - { | ||
31 | - validator: (_, value: string) => { | ||
32 | - const reg1 = /^[0-9]*[1-9][0-9]*$/; | ||
33 | - const reg2 = /^[A-Za-z0-9]+$/; | ||
34 | - if (!reg1.test(value) && !reg2.test(value)) { | ||
35 | - return Promise.reject('不能为负数'); | ||
36 | - } | ||
37 | - return Promise.resolve(); | ||
38 | - }, | ||
39 | - validateTrigger: 'blur', | ||
40 | - }, | ||
41 | -]; | ||
42 | - | ||
43 | -//数字和非负数 | ||
44 | -export const numberAndNonegativeRule: Rule[] = [ | ||
45 | - { | ||
46 | - validator: (_, value: string) => { | ||
47 | - const reg = /^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/; | ||
48 | - if (!reg.test(value)) { | ||
49 | - return Promise.reject('不能为负数或者不能输入非数字'); | ||
50 | - } | ||
51 | - return Promise.resolve(); | ||
52 | - }, | ||
53 | - validateTrigger: 'blur', | ||
54 | - }, | ||
55 | -]; | ||
56 | - | ||
57 | -// 数字验证 | ||
58 | -export const numberRule: Rule[] = [ | ||
59 | - { | ||
60 | - required: true, | ||
61 | - validator: (_, value: string) => { | ||
62 | - const reg = /^[0-9]{8}$/; | ||
63 | - if (!reg.test(value)) { | ||
64 | - return Promise.reject('只能输入数字'); | ||
65 | - } | ||
66 | - return Promise.resolve(); | ||
67 | - }, | ||
68 | - validateTrigger: 'blur', | ||
69 | - }, | ||
70 | -]; | ||
71 | -export const phoneRegexp = /^[1][3,4,5,6,7,8,9][0-9]{9}$/; | ||
72 | - | ||
73 | -//中英文正则 | ||
74 | -export const chineseAndEnlishRule: Rule[] = [ | ||
75 | - { | ||
76 | - required: true, | ||
77 | - validator: (_, value: string) => { | ||
78 | - const reg = /^[a-zA-Z\u4e00-\u9fa5]+$/; | ||
79 | - if (value === '' || value === undefined) { | ||
80 | - return Promise.reject('请输入'); | ||
81 | - } else if (!reg.test(value)) { | ||
82 | - return Promise.reject('格式不正确'); | ||
83 | - } | ||
84 | - return Promise.resolve(); | ||
85 | - }, | ||
86 | - validateTrigger: 'blur', | ||
87 | - }, | ||
88 | -]; | ||
89 | - | ||
90 | -// 手机号验证 | ||
91 | -export const phoneRule: Rule[] = [ | ||
92 | - { | ||
93 | - required: true, | ||
94 | - validator: (_, value: string) => { | ||
95 | - const reg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/; | ||
96 | - if (value === '') { | ||
97 | - return Promise.reject('请输入手机号码'); | ||
98 | - } else if (!reg.test(value)) { | ||
99 | - return Promise.reject('手机号格式不正确'); | ||
100 | - } | ||
101 | - return Promise.resolve(); | ||
102 | - }, | ||
103 | - validateTrigger: 'blur', | ||
104 | - }, | ||
105 | -]; | ||
106 | - | ||
107 | -// 电子邮箱验证 | ||
108 | -export const emailRule: Rule[] = [ | ||
109 | - { | ||
110 | - validator: (_, value: string) => { | ||
111 | - const reg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/; | ||
112 | - if (!value) { | ||
113 | - return Promise.resolve(); | ||
114 | - } else if (!reg.test(value)) { | ||
115 | - return Promise.reject('电子邮箱格式不正确'); | ||
116 | - } | ||
117 | - return Promise.resolve(); | ||
118 | - }, | ||
119 | - validateTrigger: 'blur', | ||
120 | - }, | ||
121 | -]; | ||
122 | - | ||
123 | -// 中文正则 | ||
124 | -export const ChineseRegexp = /[\u4E00-\u9FA5]/; | ||
125 | - | ||
126 | -//字母或者数字正则 | ||
127 | -export const allowLetterAndNumberRegExp = /^[A-Za-z0-9]+$/; | ||
128 | - | ||
129 | -// 电子邮箱正则 | ||
130 | -export const EmailRegexp = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/; | ||
131 | - | ||
132 | -// 手机号正则 | ||
133 | -export const PhoneRegexp = /^[1][3,4,5,6,7,8,9][0-9]{9}$/; | ||
134 | - | ||
135 | -//中文正则 | ||
136 | -export const ChineseRegVerify: Rule[] = [ | ||
137 | - { | ||
138 | - required: true, | ||
139 | - validator: (_, value: string) => { | ||
140 | - const ChineseRegexp = /[\u4E00-\u9FA5]/; | ||
141 | - if (!ChineseRegexp.test(value)) { | ||
142 | - return Promise.reject('用户名只能是中文'); | ||
143 | - } | ||
144 | - return Promise.resolve(); | ||
145 | - }, | ||
146 | - validateTrigger: 'blur', | ||
147 | - }, | ||
148 | -]; | ||
149 | - | ||
150 | -/** | ||
151 | - * 视频管理 | ||
152 | - */ | ||
153 | -export const CameraMaxLength: Rule[] = [ | ||
154 | - { | ||
155 | - required: true, | ||
156 | - validator: (_, value: string) => { | ||
157 | - if (String(value).length > 50) { | ||
158 | - return Promise.reject('视频标题长度不超过200字'); | ||
159 | - } | ||
160 | - return Promise.resolve(); | ||
161 | - }, | ||
162 | - validateTrigger: 'blur', | ||
163 | - }, | ||
164 | -]; | ||
165 | - | ||
166 | -export const CameraVideoUrl: Rule[] = [ | ||
167 | - { | ||
168 | - required: true, | ||
169 | - validator: (_, value: string) => { | ||
170 | - const ChineseRegexp = /[\u4E00-\u9FA5]/; | ||
171 | - if (ChineseRegexp.test(value)) { | ||
172 | - return Promise.reject('输入内容不能是中文'); | ||
173 | - } | ||
174 | - return Promise.resolve(); | ||
175 | - }, | ||
176 | - validateTrigger: 'blur', | ||
177 | - }, | ||
178 | -]; | ||
179 | - | ||
180 | -export const CameraVideoStreamUrl: Rule[] = [ | ||
181 | - { | ||
182 | - required: true, | ||
183 | - validator: (_, value: string) => { | ||
184 | - const ChineseRegexp = | ||
185 | - /^https?:\/\/(.+\/)+.+(\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4|m3u8))$/i; | ||
186 | - if (!ChineseRegexp.test(value)) { | ||
187 | - return Promise.reject('请输入正确格式的视频地址'); | ||
188 | - } | ||
189 | - return Promise.resolve(); | ||
190 | - }, | ||
191 | - validateTrigger: 'blur', | ||
192 | - }, | ||
193 | -]; | ||
194 | -export const CameraNumberUrl: Rule[] = [ | ||
195 | - { | ||
196 | - required: true, | ||
197 | - validator: (_, value: string) => { | ||
198 | - const ChineseRegexp = /^[A-Za-z0-9]+$/; | ||
199 | - if (!ChineseRegexp.test(value)) { | ||
200 | - return Promise.reject('请输入正确格式的视频编号'); | ||
201 | - } | ||
202 | - return Promise.resolve(); | ||
203 | - }, | ||
204 | - validateTrigger: 'blur', | ||
205 | - }, | ||
206 | -]; | ||
207 | - | ||
208 | -//站内通知 | ||
209 | -export const NotificationTitleMaxLength: Rule[] = [ | ||
210 | - { | ||
211 | - required: true, | ||
212 | - validator: (_, value: string) => { | ||
213 | - if (String(value).length > 50) { | ||
214 | - return Promise.reject('标题长度不超过200字'); | ||
215 | - } | ||
216 | - return Promise.resolve(); | ||
217 | - }, | ||
218 | - validateTrigger: 'blur', | ||
219 | - }, | ||
220 | -]; | ||
221 | - | ||
222 | -export const NotificationContentMaxLength: Rule[] = [ | ||
223 | - { | ||
224 | - required: true, | ||
225 | - validator: (_, value: string) => { | ||
226 | - if (String(value).length > 50) { | ||
227 | - return Promise.reject('内容长度不超过50字'); | ||
228 | - } | ||
229 | - return Promise.resolve(); | ||
230 | - }, | ||
231 | - validateTrigger: 'blur', | ||
232 | - }, | ||
233 | -]; | ||
234 | - | ||
235 | -export const DeviceNameMaxLength: Rule[] = [ | ||
236 | - { | ||
237 | - required: true, | ||
238 | - validator: (_, value: string) => { | ||
239 | - if (String(value).length > 30) { | ||
240 | - return Promise.reject('设备名称长度不超过30字'); | ||
241 | - } | ||
242 | - return Promise.resolve(); | ||
243 | - }, | ||
244 | - validateTrigger: 'blur', | ||
245 | - }, | ||
246 | -]; | ||
247 | - | ||
248 | -export const DeviceProfileIdMaxLength: Rule[] = [ | ||
249 | - { | ||
250 | - required: true, | ||
251 | - validator: (_, value: string) => { | ||
252 | - if (String(value).length > 36) { | ||
253 | - return Promise.reject('所属产品长度不超过36字'); | ||
254 | - } | ||
255 | - return Promise.resolve(); | ||
256 | - }, | ||
257 | - validateTrigger: 'blur', | ||
258 | - }, | ||
259 | -]; | ||
260 | - | ||
261 | -export const DeviceOrgIdMaxLength: Rule[] = [ | ||
262 | - { | ||
263 | - required: true, | ||
264 | - validator: (_, value: string) => { | ||
265 | - if (String(value).length > 36) { | ||
266 | - return Promise.reject('组织长度不超过36字'); | ||
267 | - } | ||
268 | - return Promise.resolve(); | ||
269 | - }, | ||
270 | - validateTrigger: 'blur', | ||
271 | - }, | ||
272 | -]; | ||
273 | - | ||
274 | -export const DeviceLabelMaxLength: Rule[] = [ | ||
275 | - { | ||
276 | - required: true, | ||
277 | - validator: (_, value: string) => { | ||
278 | - if (String(value).length > 255) { | ||
279 | - return Promise.reject('设备标签不超过255字'); | ||
280 | - } | ||
281 | - return Promise.resolve(); | ||
282 | - }, | ||
283 | - validateTrigger: 'blur', | ||
284 | - }, | ||
285 | -]; | ||
286 | -export const DeviceDescriptionlMaxLength: Rule[] = [ | ||
287 | - { | ||
288 | - required: true, | ||
289 | - validator: (_, value: string) => { | ||
290 | - if (String(value).length > 500) { | ||
291 | - return Promise.reject('备注不超过500字'); | ||
292 | - } | ||
293 | - return Promise.resolve(); | ||
294 | - }, | ||
295 | - validateTrigger: 'blur', | ||
296 | - }, | ||
297 | -]; | ||
298 | -export const DeviceIdMaxLength: Rule[] = [ | ||
299 | - { | ||
300 | - required: true, | ||
301 | - validator: (_, value: string) => { | ||
302 | - if (String(value).length > 36) { | ||
303 | - return Promise.reject('id不超过36字'); | ||
304 | - } | ||
305 | - return Promise.resolve(); | ||
306 | - }, | ||
307 | - validateTrigger: 'blur', | ||
308 | - }, | ||
309 | -]; | ||
310 | - | ||
311 | -export const DeviceTenantIdMaxLength: Rule[] = [ | ||
312 | - { | ||
313 | - required: true, | ||
314 | - validator: (_, value: string) => { | ||
315 | - if (String(value).length > 36) { | ||
316 | - return Promise.reject('租户Code不超过36字'); | ||
317 | - } | ||
318 | - return Promise.resolve(); | ||
319 | - }, | ||
320 | - validateTrigger: 'blur', | ||
321 | - }, | ||
322 | -]; | ||
323 | - | ||
324 | -export const DeviceTbDeviceIdMaxLength: Rule[] = [ | ||
325 | - { | ||
326 | - required: true, | ||
327 | - validator: (_, value: string) => { | ||
328 | - if (String(value).length > 36) { | ||
329 | - return Promise.reject('tbDeviceId不超过36字'); | ||
330 | - } | ||
331 | - return Promise.resolve(); | ||
332 | - }, | ||
333 | - validateTrigger: 'blur', | ||
334 | - }, | ||
335 | -]; | ||
336 | - | ||
337 | -export const DeviceUserNameMaxLength: Rule[] = [ | ||
338 | - { | ||
339 | - required: true, | ||
340 | - validator: (_, value: string) => { | ||
341 | - if (String(value).length > 50) { | ||
342 | - return Promise.reject('用户名长度不超过50字'); | ||
343 | - } | ||
344 | - return Promise.resolve(); | ||
345 | - }, | ||
346 | - validateTrigger: 'blur', | ||
347 | - }, | ||
348 | -]; | ||
349 | - | ||
350 | -export const DeviceQueryUserNameMaxLength: Rule[] = [ | ||
351 | - { | ||
352 | - required: true, | ||
353 | - validator: (_, value: string) => { | ||
354 | - if (String(value).length > 50) { | ||
355 | - return Promise.reject('设备名称长度不超过50字'); | ||
356 | - } | ||
357 | - return Promise.resolve(); | ||
358 | - }, | ||
359 | - validateTrigger: 'blur', | ||
360 | - }, | ||
361 | -]; | ||
362 | - | ||
363 | -export const DeviceProfileQueryUserNameMaxLength: Rule[] = [ | ||
364 | - { | ||
365 | - required: true, | ||
366 | - validator: (_, value: string) => { | ||
367 | - if (String(value).length > 255) { | ||
368 | - return Promise.reject('配置名称长度不超过255字'); | ||
369 | - } | ||
370 | - return Promise.resolve(); | ||
371 | - }, | ||
372 | - validateTrigger: 'blur', | ||
373 | - }, | ||
374 | -]; | ||
375 | - | ||
376 | -enum MediaType { | ||
377 | - MP4 = 'mp4', | ||
378 | - M3U8 = 'm3u8', | ||
379 | -} | ||
380 | - | ||
381 | -export const MediaTypeValidate: Rule[] = [ | ||
382 | - { | ||
383 | - required: true, | ||
384 | - validator: (_, value: string) => { | ||
385 | - const reg = /(?:.*)(?<=\.)/; | ||
386 | - const type = (value || '').replace(reg, ''); | ||
387 | - if (type !== MediaType.M3U8) { | ||
388 | - return Promise.reject('视频流只支持m3u8格式'); | ||
389 | - } | ||
390 | - return Promise.resolve(); | ||
391 | - }, | ||
392 | - validateTrigger: 'blur', | ||
393 | - }, | ||
394 | -]; | 1 | +import { Rule } from 'ant-design-vue/lib/form/interface'; |
2 | +/** | ||
3 | + * 常用表单自定义验证规则 | ||
4 | + * | ||
5 | + */ | ||
6 | + | ||
7 | +export const validatorLongitude = (_rule: Rule, value: string) => { | ||
8 | + const reg = | ||
9 | + /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,20})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,20}|180)$/; | ||
10 | + if (!value) { | ||
11 | + return Promise.reject('请输入经度'); | ||
12 | + } else if (!reg.test(value)) { | ||
13 | + return Promise.reject('经度整数部分为0-180,小数部分为0到6位!'); | ||
14 | + } | ||
15 | + return Promise.resolve(); | ||
16 | +}; | ||
17 | +export const validatorLatitude = (_rule: Rule, value: string) => { | ||
18 | + const reg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,20}|90\.0{0,20}|[0-8]?\d{1}|90)$/; | ||
19 | + if (value === '') { | ||
20 | + return Promise.reject('请输入维度'); | ||
21 | + } else if (!reg.test(value)) { | ||
22 | + return Promise.reject('纬度整数部分为0-90,小数部分为0到6位!'); | ||
23 | + } | ||
24 | + | ||
25 | + return Promise.resolve(); | ||
26 | +}; | ||
27 | + | ||
28 | +//正整数并且可以是英文 | ||
29 | +export const numberAndEngLishRule: Rule[] = [ | ||
30 | + { | ||
31 | + validator: (_, value: string) => { | ||
32 | + const reg1 = /^[0-9]*[1-9][0-9]*$/; | ||
33 | + const reg2 = /^[A-Za-z0-9]+$/; | ||
34 | + if (!reg1.test(value) && !reg2.test(value)) { | ||
35 | + return Promise.reject('不能为负数'); | ||
36 | + } | ||
37 | + return Promise.resolve(); | ||
38 | + }, | ||
39 | + validateTrigger: 'blur', | ||
40 | + }, | ||
41 | +]; | ||
42 | + | ||
43 | +//数字和非负数 | ||
44 | +export const numberAndNonegativeRule: Rule[] = [ | ||
45 | + { | ||
46 | + validator: (_, value: string) => { | ||
47 | + const reg = /^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/; | ||
48 | + if (!reg.test(value)) { | ||
49 | + return Promise.reject('不能为负数或者不能输入非数字'); | ||
50 | + } | ||
51 | + return Promise.resolve(); | ||
52 | + }, | ||
53 | + validateTrigger: 'blur', | ||
54 | + }, | ||
55 | +]; | ||
56 | + | ||
57 | +// 数字验证 | ||
58 | +export const numberRule: Rule[] = [ | ||
59 | + { | ||
60 | + required: true, | ||
61 | + validator: (_, value: string) => { | ||
62 | + const reg = /^[0-9]{8}$/; | ||
63 | + if (!reg.test(value)) { | ||
64 | + return Promise.reject('只能输入数字'); | ||
65 | + } | ||
66 | + return Promise.resolve(); | ||
67 | + }, | ||
68 | + validateTrigger: 'blur', | ||
69 | + }, | ||
70 | +]; | ||
71 | +export const phoneRegexp = /^[1][3,4,5,6,7,8,9][0-9]{9}$/; | ||
72 | + | ||
73 | +//中英文正则 | ||
74 | +export const chineseAndEnlishRule: Rule[] = [ | ||
75 | + { | ||
76 | + required: true, | ||
77 | + validator: (_, value: string) => { | ||
78 | + const reg = /^[a-zA-Z\u4e00-\u9fa5]+$/; | ||
79 | + if (value === '' || value === undefined) { | ||
80 | + return Promise.reject('请输入'); | ||
81 | + } else if (!reg.test(value)) { | ||
82 | + return Promise.reject('格式不正确'); | ||
83 | + } | ||
84 | + return Promise.resolve(); | ||
85 | + }, | ||
86 | + validateTrigger: 'blur', | ||
87 | + }, | ||
88 | +]; | ||
89 | + | ||
90 | +// 手机号验证 | ||
91 | +export const phoneRule: Rule[] = [ | ||
92 | + { | ||
93 | + required: true, | ||
94 | + validator: (_, value: string) => { | ||
95 | + const reg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/; | ||
96 | + if (value === '') { | ||
97 | + return Promise.reject('请输入手机号码'); | ||
98 | + } else if (!reg.test(value)) { | ||
99 | + return Promise.reject('手机号格式不正确'); | ||
100 | + } | ||
101 | + return Promise.resolve(); | ||
102 | + }, | ||
103 | + validateTrigger: 'blur', | ||
104 | + }, | ||
105 | +]; | ||
106 | + | ||
107 | +// 电子邮箱验证 | ||
108 | +export const emailRule: Rule[] = [ | ||
109 | + { | ||
110 | + validator: (_, value: string) => { | ||
111 | + const reg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/; | ||
112 | + if (!value) { | ||
113 | + return Promise.resolve(); | ||
114 | + } else if (!reg.test(value)) { | ||
115 | + return Promise.reject('电子邮箱格式不正确'); | ||
116 | + } | ||
117 | + return Promise.resolve(); | ||
118 | + }, | ||
119 | + validateTrigger: 'blur', | ||
120 | + }, | ||
121 | +]; | ||
122 | + | ||
123 | +// 中文正则 | ||
124 | +export const ChineseRegexp = /[\u4E00-\u9FA5]/; | ||
125 | + | ||
126 | +//字母或者数字正则 | ||
127 | +export const allowLetterAndNumberRegExp = /^[A-Za-z0-9]+$/; | ||
128 | + | ||
129 | +// 电子邮箱正则 | ||
130 | +export const EmailRegexp = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/; | ||
131 | + | ||
132 | +// 手机号正则 | ||
133 | +export const PhoneRegexp = /^[1][3,4,5,6,7,8,9][0-9]{9}$/; | ||
134 | + | ||
135 | +//中文正则 | ||
136 | +export const ChineseRegVerify: Rule[] = [ | ||
137 | + { | ||
138 | + required: true, | ||
139 | + validator: (_, value: string) => { | ||
140 | + const ChineseRegexp = /[\u4E00-\u9FA5]/; | ||
141 | + if (!ChineseRegexp.test(value)) { | ||
142 | + return Promise.reject('用户名只能是中文'); | ||
143 | + } | ||
144 | + return Promise.resolve(); | ||
145 | + }, | ||
146 | + validateTrigger: 'blur', | ||
147 | + }, | ||
148 | +]; | ||
149 | + | ||
150 | +/** | ||
151 | + * 视频管理 | ||
152 | + */ | ||
153 | +export const CameraMaxLength: Rule[] = [ | ||
154 | + { | ||
155 | + required: true, | ||
156 | + validator: (_, value: string) => { | ||
157 | + if (String(value).length > 50) { | ||
158 | + return Promise.reject('视频标题长度不超过200字'); | ||
159 | + } | ||
160 | + return Promise.resolve(); | ||
161 | + }, | ||
162 | + validateTrigger: 'blur', | ||
163 | + }, | ||
164 | +]; | ||
165 | + | ||
166 | +export const CameraVideoUrl: Rule[] = [ | ||
167 | + { | ||
168 | + required: true, | ||
169 | + validator: (_, value: string) => { | ||
170 | + const ChineseRegexp = /[\u4E00-\u9FA5]/; | ||
171 | + if (ChineseRegexp.test(value)) { | ||
172 | + return Promise.reject('输入内容不能是中文'); | ||
173 | + } | ||
174 | + return Promise.resolve(); | ||
175 | + }, | ||
176 | + validateTrigger: 'blur', | ||
177 | + }, | ||
178 | +]; | ||
179 | + | ||
180 | +export const CameraVideoStreamUrl: Rule[] = [ | ||
181 | + { | ||
182 | + required: true, | ||
183 | + validator: (_, value: string) => { | ||
184 | + const ChineseRegexp = | ||
185 | + /^https?:\/\/(.+\/)+.+(\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4|m3u8))$/i; | ||
186 | + if (!ChineseRegexp.test(value)) { | ||
187 | + return Promise.reject('请输入正确格式的视频地址'); | ||
188 | + } | ||
189 | + return Promise.resolve(); | ||
190 | + }, | ||
191 | + validateTrigger: 'blur', | ||
192 | + }, | ||
193 | +]; | ||
194 | +export const CameraNumberUrl: Rule[] = [ | ||
195 | + { | ||
196 | + required: true, | ||
197 | + validator: (_, value: string) => { | ||
198 | + const ChineseRegexp = /^[A-Za-z0-9]+$/; | ||
199 | + if (!ChineseRegexp.test(value)) { | ||
200 | + return Promise.reject('请输入正确格式的视频编号'); | ||
201 | + } | ||
202 | + return Promise.resolve(); | ||
203 | + }, | ||
204 | + validateTrigger: 'blur', | ||
205 | + }, | ||
206 | +]; | ||
207 | + | ||
208 | +//站内通知 | ||
209 | +export const NotificationTitleMaxLength: Rule[] = [ | ||
210 | + { | ||
211 | + required: true, | ||
212 | + validator: (_, value: string) => { | ||
213 | + if (String(value).length > 50) { | ||
214 | + return Promise.reject('标题长度不超过200字'); | ||
215 | + } | ||
216 | + return Promise.resolve(); | ||
217 | + }, | ||
218 | + validateTrigger: 'blur', | ||
219 | + }, | ||
220 | +]; | ||
221 | + | ||
222 | +export const NotificationContentMaxLength: Rule[] = [ | ||
223 | + { | ||
224 | + required: true, | ||
225 | + validator: (_, value: string) => { | ||
226 | + if (String(value).length > 50) { | ||
227 | + return Promise.reject('内容长度不超过50字'); | ||
228 | + } | ||
229 | + return Promise.resolve(); | ||
230 | + }, | ||
231 | + validateTrigger: 'blur', | ||
232 | + }, | ||
233 | +]; | ||
234 | + | ||
235 | +export const DeviceNameMaxLength: Rule[] = [ | ||
236 | + { | ||
237 | + required: true, | ||
238 | + validator: (_, value: string) => { | ||
239 | + if (String(value).length > 30) { | ||
240 | + return Promise.reject('设备名称长度不超过30字'); | ||
241 | + } | ||
242 | + return Promise.resolve(); | ||
243 | + }, | ||
244 | + validateTrigger: 'blur', | ||
245 | + }, | ||
246 | +]; | ||
247 | + | ||
248 | +export const DeviceProfileIdMaxLength: Rule[] = [ | ||
249 | + { | ||
250 | + required: true, | ||
251 | + validator: (_, value: string) => { | ||
252 | + if (String(value).length > 36) { | ||
253 | + return Promise.reject('所属产品长度不超过36字'); | ||
254 | + } | ||
255 | + return Promise.resolve(); | ||
256 | + }, | ||
257 | + validateTrigger: 'blur', | ||
258 | + }, | ||
259 | +]; | ||
260 | + | ||
261 | +export const DeviceOrgIdMaxLength: Rule[] = [ | ||
262 | + { | ||
263 | + required: true, | ||
264 | + validator: (_, value: string) => { | ||
265 | + if (String(value).length > 36) { | ||
266 | + return Promise.reject('组织长度不超过36字'); | ||
267 | + } | ||
268 | + return Promise.resolve(); | ||
269 | + }, | ||
270 | + validateTrigger: 'blur', | ||
271 | + }, | ||
272 | +]; | ||
273 | + | ||
274 | +export const DeviceLabelMaxLength: Rule[] = [ | ||
275 | + { | ||
276 | + required: true, | ||
277 | + validator: (_, value: string) => { | ||
278 | + if (String(value).length > 255) { | ||
279 | + return Promise.reject('设备标签不超过255字'); | ||
280 | + } | ||
281 | + return Promise.resolve(); | ||
282 | + }, | ||
283 | + validateTrigger: 'blur', | ||
284 | + }, | ||
285 | +]; | ||
286 | +export const DeviceDescriptionlMaxLength: Rule[] = [ | ||
287 | + { | ||
288 | + required: true, | ||
289 | + validator: (_, value: string) => { | ||
290 | + if (String(value).length > 500) { | ||
291 | + return Promise.reject('备注不超过500字'); | ||
292 | + } | ||
293 | + return Promise.resolve(); | ||
294 | + }, | ||
295 | + validateTrigger: 'blur', | ||
296 | + }, | ||
297 | +]; | ||
298 | +export const DeviceIdMaxLength: Rule[] = [ | ||
299 | + { | ||
300 | + required: true, | ||
301 | + validator: (_, value: string) => { | ||
302 | + if (String(value).length > 36) { | ||
303 | + return Promise.reject('id不超过36字'); | ||
304 | + } | ||
305 | + return Promise.resolve(); | ||
306 | + }, | ||
307 | + validateTrigger: 'blur', | ||
308 | + }, | ||
309 | +]; | ||
310 | + | ||
311 | +export const DeviceTenantIdMaxLength: Rule[] = [ | ||
312 | + { | ||
313 | + required: true, | ||
314 | + validator: (_, value: string) => { | ||
315 | + if (String(value).length > 36) { | ||
316 | + return Promise.reject('租户Code不超过36字'); | ||
317 | + } | ||
318 | + return Promise.resolve(); | ||
319 | + }, | ||
320 | + validateTrigger: 'blur', | ||
321 | + }, | ||
322 | +]; | ||
323 | + | ||
324 | +export const DeviceTbDeviceIdMaxLength: Rule[] = [ | ||
325 | + { | ||
326 | + required: true, | ||
327 | + validator: (_, value: string) => { | ||
328 | + if (String(value).length > 36) { | ||
329 | + return Promise.reject('tbDeviceId不超过36字'); | ||
330 | + } | ||
331 | + return Promise.resolve(); | ||
332 | + }, | ||
333 | + validateTrigger: 'blur', | ||
334 | + }, | ||
335 | +]; | ||
336 | + | ||
337 | +export const DeviceUserNameMaxLength: Rule[] = [ | ||
338 | + { | ||
339 | + required: true, | ||
340 | + validator: (_, value: string) => { | ||
341 | + if (String(value).length > 50) { | ||
342 | + return Promise.reject('用户名长度不超过50字'); | ||
343 | + } | ||
344 | + return Promise.resolve(); | ||
345 | + }, | ||
346 | + validateTrigger: 'blur', | ||
347 | + }, | ||
348 | +]; | ||
349 | + | ||
350 | +export const DeviceQueryUserNameMaxLength: Rule[] = [ | ||
351 | + { | ||
352 | + required: true, | ||
353 | + validator: (_, value: string) => { | ||
354 | + if (String(value).length > 50) { | ||
355 | + return Promise.reject('设备名称长度不超过50字'); | ||
356 | + } | ||
357 | + return Promise.resolve(); | ||
358 | + }, | ||
359 | + validateTrigger: 'blur', | ||
360 | + }, | ||
361 | +]; | ||
362 | + | ||
363 | +export const DeviceProfileQueryUserNameMaxLength: Rule[] = [ | ||
364 | + { | ||
365 | + required: true, | ||
366 | + validator: (_, value: string) => { | ||
367 | + if (String(value).length > 255) { | ||
368 | + return Promise.reject('配置名称长度不超过255字'); | ||
369 | + } | ||
370 | + return Promise.resolve(); | ||
371 | + }, | ||
372 | + validateTrigger: 'blur', | ||
373 | + }, | ||
374 | +]; | ||
375 | + | ||
376 | +// enum MediaType { | ||
377 | +// MP4 = 'mp4', | ||
378 | +// M3U8 = 'm3u8', | ||
379 | +// } | ||
380 | + | ||
381 | +export const MediaTypeValidate: Rule[] = [ | ||
382 | + { | ||
383 | + required: true, | ||
384 | + // validator: (_, value: string) => { | ||
385 | + // // const reg = /(?:.*)(?<=\.)/; | ||
386 | + // // const type = (value || '').replace(reg, ''); | ||
387 | + // // if (type !== MediaType.M3U8) { | ||
388 | + // // return Promise.reject('视频流只支持m3u8格式'); | ||
389 | + // // } | ||
390 | + // return Promise.resolve(); | ||
391 | + // }, | ||
392 | + validateTrigger: 'blur', | ||
393 | + }, | ||
394 | +]; |