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 | +]; | ... | ... |