uniapp【修复】:自定义表单手机,邮箱格式验证

This commit is contained in:
花城
2025-01-10 11:42:31 +08:00
parent 9b42b5ef4e
commit b5ba2a5c25
2 changed files with 35 additions and 5 deletions

View File

@@ -35,3 +35,21 @@ export enum FormTypeEnum {
/** 定位 */ /** 定位 */
coordinate = 'coordinate', coordinate = 'coordinate',
} }
/** 表单里的字段类型 */
export enum FormValidationTypeEnum {
/** 字符串 */
string = 'string',
/** 数字 */
number = 'number',
/** 整数 */
integer = 'integer',
/** 价格 */
price = 'price',
/** 邮箱 */
email = 'email',
/** 手机号 */
mobile = 'mobile',
/** 多数据 */
array = 'array',
}

View File

@@ -144,8 +144,9 @@
import { queryAreas } from '@/core/api'; import { queryAreas } from '@/core/api';
import { useLoginStore } from '@/core/store'; import { useLoginStore } from '@/core/store';
import { UserToken, shareUrl } from '@/core/consts'; import { UserToken, shareUrl } from '@/core/consts';
import { FormHeadEnum, ShareClientEnum, ShareEnum, ShareModelEnum, FormTypeEnum, PaymentTypeEnum } from '@/core/enum'; import { FormHeadEnum, ShareClientEnum, ShareEnum, ShareModelEnum, FormTypeEnum, PaymentTypeEnum , FormValidationTypeEnum} from '@/core/enum';
import { timeFormat } from '@/uni_modules/uv-ui-tools/libs/function/index.js'; import { timeFormat } from '@/uni_modules/uv-ui-tools/libs/function/index.js';
import { mobile,email } from '@/uni_modules/uv-ui-tools/libs/function/test.js';
import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue'; import GoodsDetailSkuPopup from '@/pages/components/goods-detail/components/goods-detail-sku/goods-detail-sku.vue';
interface QueryParams { interface QueryParams {
@@ -371,6 +372,17 @@
/** 按钮提交 */ /** 按钮提交 */
const handleSubmit = () => { const handleSubmit = () => {
_useLoginStore.checkLogin(async () => { _useLoginStore.checkLogin(async () => {
/** 验证手机号 */
let mobileData = state.formInfo.items.find((item : any) => item.validationType == FormValidationTypeEnum.mobile && item.required && !mobile(item.defaultValue));
if (mobileData) {
handleShowToast(`请输入正确的${mobileData.name}`); return;
}
/** 验证邮箱 */
let emailData = state.formInfo.items.find((item : any) => item.validationType == FormValidationTypeEnum.email && item.required && !email(item.defaultValue));
if (emailData) {
handleShowToast(`请输入正确的${emailData.name}`); return;
}
let data = state.formInfo.items.find((item : any) => item.required && !item.defaultValue); let data = state.formInfo.items.find((item : any) => item.required && !item.defaultValue);
if (data) { if (data) {