| import { EditorType } from '@12333/constants'; | 
| import _ from 'lodash'; | 
| import { FormItemRuleWithoutValidator } from '@nutui/nutui-taro/dist/types/__VUE/formitem/types'; | 
|   | 
| export class FormValidator { | 
|   /** | 
|    * 验证表单input-number 不为0 | 
|    */ | 
|   static validatorNumberNotNull(value: any, ruleCfg: FormItemRuleWithoutValidator) { | 
|     console.log('value: ', value, typeof value); | 
|     // eslint-disable-next-line eqeqeq | 
|     if (!value) { | 
|       return Promise.reject(ruleCfg.message); | 
|     } | 
|     return Promise.resolve(true); | 
|   } | 
|   | 
|   static validatorRichEditor(value: any, ruleCfg: FormItemRuleWithoutValidator) { | 
|     // eslint-disable-next-line eqeqeq | 
|     const textEditorItem = value.filter((x) => x.type === EditorType.Text); | 
|     if (textEditorItem.some((x) => !x.content)) { | 
|       return Promise.reject(ruleCfg.message); | 
|     } | 
|     return Promise.resolve(true); | 
|   } | 
|   static validatorWeMap(value: any, ruleCfg: FormItemRuleWithoutValidator) { | 
|     // eslint-disable-next-line eqeqeq | 
|     if (_.isEmpty(value) || Object.values(value).some((x) => !x)) { | 
|       return Promise.reject(ruleCfg.message); | 
|     } | 
|     return Promise.resolve(true); | 
|   } | 
|   static validatorArray(value: any, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (!_.isArray(value) || !value?.length) { | 
|       return Promise.reject(ruleCfg.message); | 
|     } | 
|     return Promise.resolve(true); | 
|   } | 
|   | 
|   static validatorPriceVersion( | 
|     value: API.PriceVersionInfoItem[], | 
|     ruleCfg: FormItemRuleWithoutValidator | 
|   ) { | 
|     if (value.some((x) => !x.chargeWay || !x.name || !x.price)) { | 
|       return Promise.reject(ruleCfg.message); | 
|     } | 
|     return Promise.resolve(true); | 
|   } | 
|   | 
|   static validatorUrl(value: string, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (BoleRegExp.RegUrl.test(value)) { | 
|       return Promise.resolve(true); | 
|     } | 
|     return Promise.reject(ruleCfg.message); | 
|   } | 
|   static validatorUrlWithRarameter(value: string, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (BoleRegExp.RegUrlWithParameter.test(value)) { | 
|       return Promise.resolve(true); | 
|     } | 
|     return Promise.reject(ruleCfg.message); | 
|   } | 
|   static validatorSocietyCreditCode(value: string, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (!ruleCfg.required && !value) return Promise.resolve(true); | 
|     if (/^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g.test(value)) { | 
|       return Promise.resolve(true); | 
|     } | 
|     return Promise.reject(ruleCfg.message); | 
|   } | 
|   static validatorPhoneNumber(value: string, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (BoleRegExp.RegPhoneNumber.test(value)) { | 
|       return Promise.resolve(true); | 
|     } | 
|     return Promise.reject(ruleCfg.message); | 
|   } | 
|   static validatorTelNumber(value: string, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (BoleRegExp.RegTelNumber.test(value)) { | 
|       return Promise.resolve(true); | 
|     } | 
|     return Promise.reject(ruleCfg.message); | 
|   } | 
|   static validatorIDCard(value: string, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (BoleRegExp.RegIDCard.test(value)) { | 
|       return Promise.resolve(true); | 
|     } | 
|     return Promise.reject(ruleCfg.message); | 
|   } | 
|   static validatorNumber(value: string, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (BoleRegExp.RegNumber.test(value)) { | 
|       return Promise.resolve(true); | 
|     } | 
|     return Promise.reject(ruleCfg.message); | 
|   } | 
|   | 
|   static validatorEmail(value: string, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (!ruleCfg.required && !value) return Promise.resolve(true); | 
|     if (BoleRegExp.RegEmail.test(value)) { | 
|       return Promise.resolve(true); | 
|     } | 
|     return Promise.reject(ruleCfg.message); | 
|   } | 
|   static validatorBankCard(value: string, ruleCfg: FormItemRuleWithoutValidator) { | 
|     if (!ruleCfg.required && !value) return Promise.resolve(true); | 
|     if (BoleRegExp.RegBankCard.test(value)) { | 
|       return Promise.resolve(true); | 
|     } | 
|     return Promise.reject(ruleCfg.message); | 
|   } | 
| } | 
|   | 
| export class BoleRegExp { | 
|   static RegIDCard = | 
|     /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/; | 
|   | 
|   // static RegEmail = | 
|   //   /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/; | 
|   static RegEmail = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; | 
|   | 
|   /**只有手机 */ | 
|   static RegPhoneNumber = /^1[3-9]\d{9}$/; | 
|   | 
|   /**座机 + 手机*/ | 
|   static RegTelNumber = | 
|     /(^(0[0-9]{2,3})?[-\s]?([2-9][0-9]{6,7})+([0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}[-\s]))?(1[3-9]\d{9})$)|(^(400)[-\s](\d{3})[-\s](\d{4})(.)(\d{1,4})$)|(^(400)(\d{3})(\d{4}$))/; | 
|   | 
|   /**只有座机 */ | 
|   static RegOnlyTelNumber = | 
|     /(^(0[0-9]{2,3})?[-\s]?([2-9][0-9]{6,7})+([0-9]{1,4})?$)|(^(400)[-\s](\d{3})[-\s](\d{4})(.)(\d{1,4})$)|(^(400)(\d{3})(\d{4}$))/; | 
|   | 
|   static RegSocietyCreditCode = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g; | 
|   | 
|   static RegNumber = /^\d+$/; | 
|   | 
|   static RegFileName = /(.*\/)*([^.]+).*/gi; | 
|   | 
|   static RegCanPreview = /png|jpg|jpeg|doc|docx|txt|ppsx|xlsx|xls|pdf/gi; | 
|   | 
|   static RegDecimalNumber = /^\d+(\.\d{0,2}){0,1}$/; | 
|   | 
|   static RegBankCard = /^\d{16,30}$/; | 
|   | 
|   static RegUrl = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})(\/\w+)*\/?$/; | 
|   | 
|   static RegUrlWithParameter = | 
|     /^((http|ftp|https):\/\/)?[\w\-_]+(\.[\w\-_]+)+([\w\-\\.,@?^=%&:/~\\+#]*[\w\-\\@?^=%&/~\\+#])?$/; | 
|   | 
|   static RegUrlWithParameterExact = | 
|     /^((http|ftp|https):\/\/)[\w\-_]+(\.[\w\-_]+)+([\w\-\\.,@?^=%&:/~\\+#]*[\w\-\\@?^=%&/~\\+#])?$/; | 
| } |