From 02afadbb7993048d04c3d455385525c0c57e2832 Mon Sep 17 00:00:00 2001 From: liwenxuan <1298531568@qq.com> Date: Fri, 24 May 2024 08:17:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E9=80=89=E9=A1=B9=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE-=E5=A4=9A=E9=80=89=E7=BB=93=E5=90=88=E5=8D=95?= =?UTF-8?q?=E9=80=89=E6=95=88=E6=9E=9C=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DesignForm/public/form/form.vue | 86 +++++++------------ 1 file changed, 29 insertions(+), 57 deletions(-) diff --git a/src/components/DesignForm/public/form/form.vue b/src/components/DesignForm/public/form/form.vue index d86c8067c..9d62527b0 100644 --- a/src/components/DesignForm/public/form/form.vue +++ b/src/components/DesignForm/public/form/form.vue @@ -206,11 +206,8 @@ const recursionToGetFinallyHideFields = (hideFieldArr: any[],radioSelectArr3: st //以被默认隐藏的每个字段为key,显示该字段的所有条件的数组作为value,来作为该数组的每一项。 const hideFieldConditionArr:hideFieldConditionArritem[] = [] - //保存应多选条件造成的应隐藏的字段 let hideFieldsFromCheckbox: string[] = [] - - for(let i = 0;i < hideFieldArr.length;i++){ hideFieldConditionArr.push({ toShow:hideFieldArr[i], @@ -218,7 +215,6 @@ const recursionToGetFinallyHideFields = (hideFieldArr: any[],radioSelectArr3: st }) } console.log(hideFieldConditionArr) - //遍历所有配置条件数组radioSelectArr3,当radioSelectArr3 [ i ] . toshowFieldKey 【i】==hideFieldArr【i】时 for(let i = 0;i < radioSelectArr3.length;i++){ for(let j = 0;j < radioSelectArr3[i].toShowFieldKey.length;j++){ @@ -227,8 +223,6 @@ const recursionToGetFinallyHideFields = (hideFieldArr: any[],radioSelectArr3: st console.log(j) console.log(n) */ if(radioSelectArr3[i].toShowFieldKey[j]==hideFieldConditionArr[n].toShow){ - - if(Array.isArray(radioSelectArr3[i].conditionFieldValue)){ let valStr = ""; for(let x = 0;x{ - for(let n = 0; n< modelKeyArr.length;n++){ - if(modelKeyArr[n]==conditionField){ - let count_1 = 0; - let trueValue = model.value[modelKeyArr[n]] - if(trueValue.length>0&&arrayEqual(trueValue,conditionFieldValueArr)){ - //此时满足了条件,但是必须看一下conditionField有没有被隐藏.如果被隐藏了,则x不能增加. - //alert("多选条件成功触发") - console.log(conditionField) - console.log(toshow) - let flag = false//其依赖的选项的父字段是否被隐藏.默认没被隐藏, - //如果此时的conditionField有可能被隐藏且已被隐藏,x不能++ - for(let a = 0;a1说明时多选,=1说明是单选. - for(let b = 0;b0&&arrayEqual(trueValue,conditionFieldValueArr)){ + //此时满足了条件,但是必须看一下conditionField有没有被隐藏.如果被隐藏了,则x不能增加. + //alert("多选条件成功触发") + console.log(conditionField) + console.log(toshow) + let flag = false//其依赖的选项的父字段是否被隐藏.默认没被隐藏, + //如果此时的conditionField有可能被隐藏且已被隐藏,x不能++ + for(let a = 0;a1说明时多选,=1说明是单选. + for(let b = 0;b item!=hideFieldsFromCheckbox[i]) - //emits('refresh') - } */ - } + } + if(flag==false){ + x++ + hideFieldsFromCheckbox.push(toshow) + console.log(hideFieldArr) + /* for(let i = 0;i item!=hideFieldsFromCheckbox[i]) + //emits('refresh') + } */ } } } - //}) - - - - - }else{ + } + }else{//来自单选下拉 console.log(conditionFieldValue) for(let n = 0; n< modelKeyArr.length;n++){ if(modelKeyArr[n]==conditionField){ @@ -329,7 +310,6 @@ const recursionToGetFinallyHideFields = (hideFieldArr: any[],radioSelectArr3: st //console.log(trueValue) if(trueValue==conditionFieldValue){ //此时满足了条件,但是必须看一下conditionField有没有被隐藏.如果被隐藏了,则x不能增加. - let flag = false//其依赖的选项的父字段是否被隐藏.默认没被隐藏, //如果此时的conditionField有可能被隐藏且已被隐藏,x不能++ for(let a = 0;a0){ hideFieldArr = hideFieldArr.filter((item: string) => item!=toshow) } } - - //将隐藏的字段值重置 for(let i = 0; i< hideFieldArr.length;i++){ //console.log(i+"dsfafdasdfasfsda===="+hideFieldArr[i]+"=====jiuopfdsahokjuhuiofadshuiofadsjbknfdjisahuifhjken wij================"+model.value[hideFieldArr[i]]) @@ -369,8 +345,6 @@ const recursionToGetFinallyHideFields = (hideFieldArr: any[],radioSelectArr3: st model.value[hideFieldArr[i]] = [] } } - - //默认隐藏的字段中目前被显示出来的 nowShowingDefaultHideFieldArr = defaultHideFields.filter(a => !hideFieldArr.includes(a)) console.log("(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))") @@ -379,9 +353,7 @@ const recursionToGetFinallyHideFields = (hideFieldArr: any[],radioSelectArr3: st //当被显示出来的字段涉及到的conditionfield已经被隐藏了时,其x应-1,如果x-1后造成该field被隐藏,应递归重新敲定hideFieldArr if() } */ - return hideFieldArr - }