From 853227c1073c320e0e0eea244f115a624b1133f1 Mon Sep 17 00:00:00 2001 From: herenshan112 Date: Wed, 14 Aug 2024 08:45:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=B8=8E=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/DesignForm/app/formPage.vue | 7 +++ .../DesignForm/formControlPropertiNew.vue | 24 +++++++- .../DesignForm/public/form/childTable.vue | 10 ++-- .../DesignForm/public/form/form.vue | 6 ++ src/components/DesignForm/validateInt.ts | 39 ++++++++++++ src/components/DesignForm/validateText.ts | 60 +++++++++++++++++++ 6 files changed, 140 insertions(+), 6 deletions(-) create mode 100644 src/components/DesignForm/validateInt.ts create mode 100644 src/components/DesignForm/validateText.ts diff --git a/src/components/DesignForm/app/formPage.vue b/src/components/DesignForm/app/formPage.vue index 7461022..717874a 100644 --- a/src/components/DesignForm/app/formPage.vue +++ b/src/components/DesignForm/app/formPage.vue @@ -604,7 +604,9 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) if(type == "digitpage"){ let oldFormConfig = props.formData.config let newFormConfig = props.formData.config.groupKey + let odlHideField = props.formData.config.hideField delete props.formData.config.groupKey + delete props.formData.config.hideField let sendInfo = { "fieldKey":key, "mathsFornula":props.formData.config, @@ -640,8 +642,13 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) resultDict.value = formatRes.dict } props.formData.config.groupKey = newFormConfig + props.formData.config.hideField = odlHideField }) }) + .finally(()=>{ + props.formData.config.groupKey = newFormConfig + props.formData.config.hideField = odlHideField + }) } if (typeof props.changeKeyVal === 'function') { props.changeKeyVal(key, value,type,attribute) diff --git a/src/components/DesignForm/formControlPropertiNew.vue b/src/components/DesignForm/formControlPropertiNew.vue index 2d03ea9..d1576e1 100644 --- a/src/components/DesignForm/formControlPropertiNew.vue +++ b/src/components/DesignForm/formControlPropertiNew.vue @@ -8,6 +8,7 @@ import { reactive, computed, toRefs, ref, watch, inject } from 'vue' import { getRequest } from '@/api/DesignForm' import { useDesignFormStore } from '@/store/DesignForm/designForm' import validate from './validate' +import { ValidateTextTypes } from '@/components/DesignForm/validateText' import { ElMessage } from 'element-plus' import { formatNumber } from '@/api/DesignForm/utils' import { PublicAtrr } from '@/api/DesignForm/types' @@ -127,7 +128,16 @@ const state = reactive({ } ] }) - + +/** +@ 作者: 秦东 +@ 时间: 2024-08-14 08:41:02 +@ 功能: 必填 +*/ +const ValidateTextTypes = reactive({ + +}) + const formAttr = computed(() => { const isSearch = state.isSearch return [ @@ -3382,6 +3392,18 @@ const disabledIstrue = (val:string) => { 校验设置
{{controlData.customRules}} + + + + + + + + { - console.log("如果编辑页禁用时-----1---->",props.data.name) - console.log("如果编辑页禁用时-----2---->",formProps.value.model[props.data.name]) - console.log("如果编辑页禁用时-----3---->",formProps.value.model) - console.log("如果编辑页禁用时-----4---->",formProps.value) + // console.log("如果编辑页禁用时-----1---->",props.data.name) + // console.log("如果编辑页禁用时-----2---->",formProps.value.model[props.data.name]) + // console.log("如果编辑页禁用时-----3---->",formProps.value.model) + // console.log("如果编辑页禁用时-----4---->",formProps.value) return formProps.value.model[props.data.name] }) const type = computed(() => { @@ -35,7 +35,7 @@ const editDisabled = computed(() => { return formProps.value.type === 2 && props.data.config?.editDisabled }) const addColumn = () => { - console.log("如果编辑页禁用时--------->",tableDataNew.value) + // console.log("如果编辑页禁用时--------->",tableDataNew.value) const temp: any = {} if (props.data.list) { props.data.list.forEach((item: any) => { diff --git a/src/components/DesignForm/public/form/form.vue b/src/components/DesignForm/public/form/form.vue index 0b00637..cd0d977 100644 --- a/src/components/DesignForm/public/form/form.vue +++ b/src/components/DesignForm/public/form/form.vue @@ -452,6 +452,7 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) let oldFormConfig = props.formData.config let newFormConfig = props.formData.config.groupKey + let odlHideField = props.formData.config.hideField delete props.formData.config.groupKey delete props.formData.config.hideField let sendInfo = { @@ -489,8 +490,13 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) resultDict.value = formatRes.dict } props.formData.config.groupKey = newFormConfig + props.formData.config.hideField = odlHideField }) }) + .finally(()=>{ + props.formData.config.groupKey = newFormConfig + props.formData.config.hideField = odlHideField + }) } // }) diff --git a/src/components/DesignForm/validateInt.ts b/src/components/DesignForm/validateInt.ts new file mode 100644 index 0000000..160e822 --- /dev/null +++ b/src/components/DesignForm/validateInt.ts @@ -0,0 +1,39 @@ +import { ValidateTextTypes } from '@/components/DesignForm/validateText' +/** +@ 作者: 秦东 +@ 时间: 2024-08-13 16:37:23 +@ 功能: 数字类校验规则 +*/ + +const validateIntConfig: ValidateTextTypes[] = [ + { + type: 'int', + label: '正整数', + regExp: /^[0-9]*[1-9][0-9]*$/, + message: '请输入正整数', + checkbox: false + }, + { + type: 'number', + label: '数字', + regExp: /^\d+(\.\d+)?$/, + message: '请输入数字', + checkbox: false + }, + { + type: 'money', + label: '金额', + regExp: /^[0-9]+\.?[0-9]{0,2}$/, + message: '请输入正确的金额,最多两位小数', + checkbox: false + }, + { + type: 'float', + label: '浮点数', + regExp: /^(\-|\+)?\d+(\.\d+)?$/, + message: '请输入正确的金额,最多两位小数', + checkbox: false + } +] + +export default validateIntConfig diff --git a/src/components/DesignForm/validateText.ts b/src/components/DesignForm/validateText.ts new file mode 100644 index 0000000..b70142a --- /dev/null +++ b/src/components/DesignForm/validateText.ts @@ -0,0 +1,60 @@ + +/** +@ 作者: 秦东 +@ 时间: 2024-08-13 16:33:46 +@ 功能: 文本类校验规则 +*/ +export interface ValidateTextTypes { + type: string + label: string + regExp: RegExp + message: string + checkbox: boolean +} +const validateTextConfig: ValidateTextTypes[] = [ + { + type: 'mobile', + label: '手机号码', + regExp: /^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, + message: '请输入手机号码', + checkbox: false + }, + { + type: 'tel', + label: '固话', + regExp: /^0\d{2,3}-\d{7,8}$/, + message: '请输入固定电话号码', + checkbox: false + }, + { + type: 'phone', + label: '固话或手机', + regExp: /^((0\d{2,3}(-?)\d{7,8})|(1[3456789]\d{9}))$/, + message: '请输入固定电话号码或手机号', + checkbox: false + }, + { + type: 'email', + label: '邮箱', + regExp: /^[a-z0-9A-Z._%-]+@([a-z0-9A-Z-]+\.)+[a-zA-Z]{2,4}$/, + message: '请输入邮箱地址', + checkbox: false + }, + { + type: 'card', + label: '身份证', + regExp: + /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/, + message: '请输入身份证号', + checkbox: false + }, + { + type: 'url', + label: '网址', + regExp: /^https?:\/\/((.)+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?.(\?)?)*)*$/, + message: '请输入网址', + checkbox: false + } +] + +export default validateTextConfig