From 0f89980834b71925a196cd2027bd0c4e5ec70587 Mon Sep 17 00:00:00 2001 From: liwenxuan <1298531568@qq.com> Date: Tue, 3 Sep 2024 09:42:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E8=A1=A8=E5=8D=95=E4=B8=BB?= =?UTF-8?q?=E8=A1=A8=E6=95=B0=E6=8D=AE=E5=A1=AB=E5=85=85=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=A4=9A=E9=80=89=E5=92=8C=E4=B8=8B=E6=8B=89=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E5=A1=AB=E5=85=85=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DesignForm/public/form/formGroup.vue | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/components/DesignForm/public/form/formGroup.vue b/src/components/DesignForm/public/form/formGroup.vue index 26e37c3..3a6d5bf 100644 --- a/src/components/DesignForm/public/form/formGroup.vue +++ b/src/components/DesignForm/public/form/formGroup.vue @@ -481,7 +481,23 @@ function asfValueChanged(val:any){ if(masterFillRoleFieldsArray1.length>0){ masterFillRoleFieldsArray1.forEach((item1:any)=>{ let x = convertObjectToArray(getNewObject(item.fillRolesFieldsMap,item1)) - formProps.value.model[x[0]] = x[1] + let strOrNumber = convertToStringOrNumber(x[1]) + let strOrNumberOrArray + if(isString(strOrNumber)&&strOrNumber.includes("[")){ + strOrNumberOrArray = convertIfValidNumberArray(strOrNumber) + } + + /* console.log(x[1]) + console.log(strOrNumberOrArray) + console.log(formProps.value.model[x[0]]) */ + if(strOrNumberOrArray){ + formProps.value.model[x[0]] = strOrNumberOrArray + }else{ + formProps.value.model[x[0]] = strOrNumber + } + + //console.log(formProps.value.model[x[0]]) + }) } @@ -492,6 +508,25 @@ function asfValueChanged(val:any){ } } } +function isString(value: any): value is string { + return typeof value === 'string'; +} +function convertIfValidNumberArray(str: string): number[] | null { + const regex = /^\[(\d+(,\d+)*)?\]$/; + if (regex.test(str)) { + const numbersStr = str.slice(1, -1); + if (numbersStr.length === 0) { + return []; + } + return numbersStr.split(',').map(item => Number(item)); + } else { + return null; + } +} +function convertToStringOrNumber(str: string): number | string { + const isOnlyNumbers = /^\d+$/.test(str); + return isOnlyNumbers? Number(str) : str; +} function convertObjectToArray(obj:any) { for (let key in obj) { return [key, obj[key]];