From 17531a8f39179db8ee881b0200569d2571e5f447 Mon Sep 17 00:00:00 2001 From: liwenxuan <1298531568@qq.com> Date: Tue, 21 May 2024 11:13:26 +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=E4=BC=98=E5=8C=96:=E6=A0=B9=E6=8D=AE=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=9D=A1=E4=BB=B6=E6=BB=A1=E8=B6=B3=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E6=9D=A5=E5=AE=9E=E7=8E=B0=E6=98=BE=E7=A4=BA=E9=9A=90?= =?UTF-8?q?=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DesignForm/public/form/form.vue | 115 +++++++++++++++++- 1 file changed, 110 insertions(+), 5 deletions(-) diff --git a/src/components/DesignForm/public/form/form.vue b/src/components/DesignForm/public/form/form.vue index e6e186b12..07f048d30 100644 --- a/src/components/DesignForm/public/form/form.vue +++ b/src/components/DesignForm/public/form/form.vue @@ -358,16 +358,90 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) hideFieldArr = Array.from(new Set(hideFieldArr)) nextTick(() => { + console.log("以showFields的处理过冒号的每个元素为key,其对应的optionValue为value,新建的数组radioselectArr3 --- 内容为完整显示隐藏条件") console.log(radioSelectArr3) + console.log("当前表单的值-------------------") console.log(model.value) - let modelKeyArr = []; + console.log("默认隐藏的字段-----------------") + console.log(hideFieldArr) + let modelKeyArr = [];//所有字段 for(let i= 0;i0){ + alert(x) + hideFieldArr = hideFieldArr.filter(item => item!=toshow) + } + } + + - //根据条件的生效情况从隐藏数组中过滤字段 + /* //根据条件的生效情况从隐藏数组中过滤字段 for(let i = 0;i< radioSelectArr3.length;i++){ for(let j = 0; j< modelKeyArr.length;j++){ @@ -394,14 +468,45 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) } } } + } */ + + + + /* const radioSelectArr4:any[] = [] + //联动隐藏效果实现 + for(let i = 0;i < radioSelectArr3.length;i++){ + //console.log(radioSelectArr3[i].conditionFieldKey) + for(let j = 0;j < hideFieldArr.length;j++){ + //目前隐藏掉的字段中,找出涉及到隐藏条件conditionFieldKey的,放入radioSelectArr4 + if(radioSelectArr3[i].conditionFieldKey == hideFieldArr[j]){ + + console.log("radioSelectArr3[i].conditionFieldKey============="+radioSelectArr3[i].conditionFieldKey) + console.log("hideFieldArr[j]=================================="+hideFieldArr[j]) + radioSelectArr4.push(radioSelectArr3[i]) + console.log("radioSelectArr3[i]============="+JSON.stringify(radioSelectArr3[i])) + } + } } + console.log(radioSelectArr4) + for(let i = 0;i < radioSelectArr4.length;i++){ + //本次隐藏掉的字段中,涉及到隐藏条件conditionFieldKey的 + // + console.log("radioSelectArr4[i]============="+JSON.stringify(radioSelectArr4[i])) + } */ + + + console.log("条件筛选过后最终要隐藏的字段-----"+hideFieldArr) + + //将隐藏的字段值重置 for(let i = 0; i< hideFieldArr.length;i++){ - console.log(i+"dsfafdasdfasfsda===="+hideFieldArr[i]+"=====jiuopfdsahokjuhuiofadshuiofadsjbknfdjisahuifhjken wij================"+model.value[hideFieldArr[i]]) + //console.log(i+"dsfafdasdfasfsda===="+hideFieldArr[i]+"=====jiuopfdsahokjuhuiofadshuiofadsjbknfdjisahuifhjken wij================"+model.value[hideFieldArr[i]]) if(typeof model.value[hideFieldArr[i]] === "string" || typeof model.value[hideFieldArr[i]] === "number"){ model.value[hideFieldArr[i]] = "" + }else if( model.value[hideFieldArr[i]] instanceof Array){ + model.value[hideFieldArr[i]] = [] } } - console.log(hideFieldArr) + //编辑表单页不隐藏任何字段。 if(formProps.value.type!=5){ props.formData.config.hideField?.push(...hideFieldArr) }