| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394 |
- import { Rule } from 'ant-design-vue/lib/form/interface';
- /**
- * 常用表单自定义验证规则
- *
- */
- export const validatorLongitude = (_rule: Rule, value: string) => {
- const reg =
- /^(\-|\+)?(((\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)$/;
- if (!value) {
- return Promise.reject('请输入经度');
- } else if (!reg.test(value)) {
- return Promise.reject('经度整数部分为0-180,小数部分为0到6位!');
- }
- return Promise.resolve();
- };
- export const validatorLatitude = (_rule: Rule, value: string) => {
- const reg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,20}|90\.0{0,20}|[0-8]?\d{1}|90)$/;
- if (value === '') {
- return Promise.reject('请输入维度');
- } else if (!reg.test(value)) {
- return Promise.reject('纬度整数部分为0-90,小数部分为0到6位!');
- }
- return Promise.resolve();
- };
- //正整数并且可以是英文
- export const numberAndEngLishRule: Rule[] = [
- {
- validator: (_, value: string) => {
- const reg1 = /^[0-9]*[1-9][0-9]*$/;
- const reg2 = /^[A-Za-z0-9]+$/;
- if (!reg1.test(value) && !reg2.test(value)) {
- return Promise.reject('不能为负数');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- //数字和非负数
- export const numberAndNonegativeRule: Rule[] = [
- {
- validator: (_, value: string) => {
- const reg = /^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/;
- if (!reg.test(value)) {
- return Promise.reject('不能为负数或者不能输入非数字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- // 数字验证
- export const numberRule: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- const reg = /^[0-9]{8}$/;
- if (!reg.test(value)) {
- return Promise.reject('只能输入数字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const phoneRegexp = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
- //中英文正则
- export const chineseAndEnlishRule: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- const reg = /^[a-zA-Z\u4e00-\u9fa5]+$/;
- if (value === '' || value === undefined) {
- return Promise.reject('请输入');
- } else if (!reg.test(value)) {
- return Promise.reject('格式不正确');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- // 手机号验证
- export const phoneRule: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- const reg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
- if (value === '') {
- return Promise.reject('请输入手机号码');
- } else if (!reg.test(value)) {
- return Promise.reject('手机号格式不正确');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- // 电子邮箱验证
- export const emailRule: Rule[] = [
- {
- validator: (_, value: string) => {
- const reg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;
- if (!value) {
- return Promise.resolve();
- } else if (!reg.test(value)) {
- return Promise.reject('电子邮箱格式不正确');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- // 中文正则
- export const ChineseRegexp = /[\u4E00-\u9FA5]/;
- //字母或者数字正则
- export const allowLetterAndNumberRegExp = /^[A-Za-z0-9]+$/;
- // 电子邮箱正则
- export const EmailRegexp = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/;
- // 手机号正则
- export const PhoneRegexp = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
- //中文正则
- export const ChineseRegVerify: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- const ChineseRegexp = /[\u4E00-\u9FA5]/;
- if (!ChineseRegexp.test(value)) {
- return Promise.reject('用户名只能是中文');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- /**
- * 视频管理
- */
- export const CameraMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 50) {
- return Promise.reject('视频标题长度不超过200字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const CameraVideoUrl: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- const ChineseRegexp = /[\u4E00-\u9FA5]/;
- if (ChineseRegexp.test(value)) {
- return Promise.reject('输入内容不能是中文');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const CameraVideoStreamUrl: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- const ChineseRegexp =
- /^https?:\/\/(.+\/)+.+(\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4|m3u8))$/i;
- if (!ChineseRegexp.test(value)) {
- return Promise.reject('请输入正确格式的视频地址');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const CameraNumberUrl: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- const ChineseRegexp = /^[A-Za-z0-9]+$/;
- if (!ChineseRegexp.test(value)) {
- return Promise.reject('请输入正确格式的视频编号');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- //站内通知
- export const NotificationTitleMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 50) {
- return Promise.reject('标题长度不超过200字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const NotificationContentMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 50) {
- return Promise.reject('内容长度不超过50字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceNameMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 30) {
- return Promise.reject('设备名称长度不超过30字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceProfileIdMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 36) {
- return Promise.reject('所属产品长度不超过36字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceOrgIdMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 36) {
- return Promise.reject('组织长度不超过36字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceLabelMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 255) {
- return Promise.reject('设备标签不超过255字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceDescriptionlMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 500) {
- return Promise.reject('备注不超过500字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceIdMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 36) {
- return Promise.reject('id不超过36字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceTenantIdMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 36) {
- return Promise.reject('租户Code不超过36字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceTbDeviceIdMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 36) {
- return Promise.reject('tbDeviceId不超过36字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceUserNameMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 50) {
- return Promise.reject('用户名长度不超过50字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceQueryUserNameMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 50) {
- return Promise.reject('设备名称长度不超过50字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- export const DeviceProfileQueryUserNameMaxLength: Rule[] = [
- {
- required: true,
- validator: (_, value: string) => {
- if (String(value).length > 255) {
- return Promise.reject('配置名称长度不超过255字');
- }
- return Promise.resolve();
- },
- validateTrigger: 'blur',
- },
- ];
- // enum MediaType {
- // MP4 = 'mp4',
- // M3U8 = 'm3u8',
- // }
- export const MediaTypeValidate: Rule[] = [
- {
- required: true,
- // validator: (_, value: string) => {
- // // const reg = /(?:.*)(?<=\.)/;
- // // const type = (value || '').replace(reg, '');
- // // if (type !== MediaType.M3U8) {
- // // return Promise.reject('视频流只支持m3u8格式');
- // // }
- // return Promise.resolve();
- // },
- validateTrigger: 'blur',
- },
- ];
|