From b5ba2a5c2513d92a4bf5c456f50e52d578844b92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E5=9F=8E?= <141405260+17521612761@users.noreply.github.com> Date: Fri, 10 Jan 2025 11:42:31 +0800 Subject: [PATCH] =?UTF-8?q?uniapp=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91?= =?UTF-8?q?=EF=BC=9A=E8=87=AA=E5=AE=9A=E4=B9=89=E8=A1=A8=E5=8D=95=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=EF=BC=8C=E9=82=AE=E7=AE=B1=E6=A0=BC=E5=BC=8F=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CoreShop/core/enum/form.enum.ts | 18 +++++++++++++++ .../pages/subpackage/form/detail/detail.vue | 22 ++++++++++++++----- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/CoreCms.Net.Uni-App/CoreShop/core/enum/form.enum.ts b/CoreCms.Net.Uni-App/CoreShop/core/enum/form.enum.ts index d1a95fc2..638ed65b 100644 --- a/CoreCms.Net.Uni-App/CoreShop/core/enum/form.enum.ts +++ b/CoreCms.Net.Uni-App/CoreShop/core/enum/form.enum.ts @@ -34,4 +34,22 @@ export enum FormTypeEnum { textarea = 'textarea', /** 定位 */ coordinate = 'coordinate', +} + +/** 表单里的字段类型 */ +export enum FormValidationTypeEnum { + /** 字符串 */ + string = 'string', + /** 数字 */ + number = 'number', + /** 整数 */ + integer = 'integer', + /** 价格 */ + price = 'price', + /** 邮箱 */ + email = 'email', + /** 手机号 */ + mobile = 'mobile', + /** 多数据 */ + array = 'array', } \ No newline at end of file diff --git a/CoreCms.Net.Uni-App/CoreShop/pages/subpackage/form/detail/detail.vue b/CoreCms.Net.Uni-App/CoreShop/pages/subpackage/form/detail/detail.vue index 29967c40..91de9f6e 100644 --- a/CoreCms.Net.Uni-App/CoreShop/pages/subpackage/form/detail/detail.vue +++ b/CoreCms.Net.Uni-App/CoreShop/pages/subpackage/form/detail/detail.vue @@ -144,8 +144,9 @@ import { queryAreas } from '@/core/api'; import { useLoginStore } from '@/core/store'; 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 { 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'; interface QueryParams { @@ -370,13 +371,24 @@ /** 按钮提交 */ const handleSubmit = () => { - _useLoginStore.checkLogin(async () => { - - let data = state.formInfo.items.find((item : any) => item.required && !item.defaultValue); + _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); if (data) { handleShowToast(`${data.name}不能为空`); return; } - + /** 判断图片的 */ let images = state.formInfo.items.find((item : any) => item.type === FormTypeEnum.image && item.required && item.defaultValue.length == 0); if (images) {