vben フォームの動的検証

記録して次回直接使用します。

必要

ID タイプとして ID カードを選択した場合、ID カード番号が検証されます。ID カード番号は 18 桁に制限されます。

コード

FormSchema の構成

    {
    
    
      field: 'certificate_type',
      label: '证件类型',
      component: 'Select',
      componentProps: {
    
    
        placeholder: '请选择证件类型',
        options: DictData.getDictById('IdCardType'),
      },
      colProps: {
    
    
        span: 8,
        offset: 2,
        pull: 2,
      },
      rules: [{
    
     required: true, message: '请选择证件类型', trigger: 'change' }],
    },

    {
    
    
      field: 'certificate_num',
      label: '证件号码',
      component: 'Input',
      colProps: {
    
    
        span: 8,
      },
      componentProps: ({
    
     formModel }) => {
    
    
        return {
    
    
          placeholder: '请输入证件号码',
          maxlength: formModel?.certificate_type == '身份证' ? 18 : 100,
        };
      },
      dynamicRules({
    
     model }) {
    
    
        if (model?.certificate_type === '身份证') {
    
    
          return [{
    
     required: true, validator: idNumberValidator, trigger: 'blur' }];
        } else {
    
    
          return [{
    
     required: true, message: '请输入证件号码', trigger: 'blur' }];
        }
      },
    },

おすすめ

転載: blog.csdn.net/weixin_54858833/article/details/123854013