rules.ts 5.56 KB
import { Rule } from 'ant-design-vue/lib/form/interface';
/**
 * 常用表单自定义验证规则
 *
 */

// 数字验证
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 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 = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/;
      if (value === '') {
        return Promise.resolve();
      } else if (!reg.test(value)) {
        return Promise.reject('电子邮箱格式不正确');
      }
      return Promise.resolve();
    },
    validateTrigger: 'blur',
  },
];

// 中文正则
export const ChineseRegexp = /[\u4E00-\u9FA5]/g;

// 电子邮箱正则
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 NotificationTitleMaxLength: Rule[] = [
  {
    required: true,
    validator: (_, value: string) => {
      if (String(value).length > 50) {
        return Promise.reject('标题长度不超过200字');
      }
    },
    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 NotificationTypeMaxLength: Rule[] = [
  {
    required: true,
    validator: (_, value: string) => {
      if (!value) {
        return Promise.reject('请选择类型');
      }
      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',
  },
];