|
|
@ -351,11 +351,13 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) |
|
|
|
|
|
|
|
|
//暂时使用的隐藏数组,数据敲定后赋给props.formData.config.hideField |
|
|
//暂时使用的隐藏数组,数据敲定后赋给props.formData.config.hideField |
|
|
let hideFieldArr: any[] = []; |
|
|
let hideFieldArr: any[] = []; |
|
|
|
|
|
|
|
|
//但凡配置条件的字段先放入隐藏数组中 |
|
|
//但凡配置条件的字段先放入隐藏数组中 |
|
|
for(let i = 0;i< radioSelectArr2.length;i++){ |
|
|
for(let i = 0;i< radioSelectArr2.length;i++){ |
|
|
hideFieldArr.push(radioSelectArr2[i].toShowFieldKey) |
|
|
hideFieldArr.push(radioSelectArr2[i].toShowFieldKey) |
|
|
} |
|
|
} |
|
|
hideFieldArr = Array.from(new Set(hideFieldArr)) |
|
|
hideFieldArr = Array.from(new Set(hideFieldArr)) |
|
|
|
|
|
const defaultHideFields: any[] = JSON.parse(JSON.stringify(hideFieldArr)) |
|
|
|
|
|
|
|
|
nextTick(() => { |
|
|
nextTick(() => { |
|
|
console.log("以showFields的处理过冒号的每个元素为key,其对应的optionValue为value,新建的数组radioselectArr3 --- 内容为完整显示隐藏条件") |
|
|
console.log("以showFields的处理过冒号的每个元素为key,其对应的optionValue为value,新建的数组radioselectArr3 --- 内容为完整显示隐藏条件") |
|
|
@ -370,7 +372,7 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) |
|
|
} |
|
|
} |
|
|
console.log("所有字段modelKeyArr^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^") |
|
|
console.log("所有字段modelKeyArr^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^") |
|
|
console.log(modelKeyArr) |
|
|
console.log(modelKeyArr) |
|
|
//以被默认隐藏的每个字段为key,显示该字段的所有条件的数组作为value作为该数组的每一项。 |
|
|
//以被默认隐藏的每个字段为key,显示该字段的所有条件的数组作为value,来作为该数组的每一项。 |
|
|
const hideFieldConditionArr:hideFieldConditionArritem[] = [] |
|
|
const hideFieldConditionArr:hideFieldConditionArritem[] = [] |
|
|
|
|
|
|
|
|
interface hideFieldConditionArritem { |
|
|
interface hideFieldConditionArritem { |
|
|
@ -384,8 +386,8 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
console.log(hideFieldConditionArr) |
|
|
console.log(hideFieldConditionArr) |
|
|
//遍历所有配置条件数组radioSelectArr3,当radioSelectArr3 [ i ] . toshowFieldKey 【i】==hideFieldArr【i】时 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//遍历所有配置条件数组radioSelectArr3,当radioSelectArr3 [ i ] . toshowFieldKey 【i】==hideFieldArr【i】时 |
|
|
for(let i = 0;i < radioSelectArr3.length;i++){ |
|
|
for(let i = 0;i < radioSelectArr3.length;i++){ |
|
|
for(let j = 0;j < radioSelectArr3[i].toShowFieldKey.length;j++){ |
|
|
for(let j = 0;j < radioSelectArr3[i].toShowFieldKey.length;j++){ |
|
|
for(let n = 0;n < hideFieldConditionArr.length;n++){ |
|
|
for(let n = 0;n < hideFieldConditionArr.length;n++){ |
|
|
@ -406,8 +408,11 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
console.log(hideFieldConditionArr); |
|
|
console.log(hideFieldConditionArr); |
|
|
|
|
|
//要显示的和其满足显示条件的个数. |
|
|
|
|
|
//let showfieldsCountX = []; |
|
|
for(let i = 0;i<hideFieldConditionArr.length;i++){ |
|
|
for(let i = 0;i<hideFieldConditionArr.length;i++){ |
|
|
let x = 0//满足显示条件的次数 |
|
|
let x = 0//满足显示条件的次数 |
|
|
|
|
|
|
|
|
let toshow = hideFieldConditionArr[i].toShow |
|
|
let toshow = hideFieldConditionArr[i].toShow |
|
|
let conditions = hideFieldConditionArr[i].conditions |
|
|
let conditions = hideFieldConditionArr[i].conditions |
|
|
//console.log(conditions) |
|
|
//console.log(conditions) |
|
|
@ -423,7 +428,10 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) |
|
|
//console.log(modelKeyArr[n]) |
|
|
//console.log(modelKeyArr[n]) |
|
|
//console.log(trueValue) |
|
|
//console.log(trueValue) |
|
|
if(trueValue==conditionFieldValue){ |
|
|
if(trueValue==conditionFieldValue){ |
|
|
|
|
|
//此时满足了条件,但是必须看一下conditionField有没有被隐藏.如果被隐藏了,则x不能增加. |
|
|
|
|
|
//let flag = false//其依赖的选项的字段是否被隐藏.默认没被隐藏,其依赖的选项的字段一定是有可能被隐藏的.也就是在遍历defaultHideFields时有可能找到他:条件- |
|
|
x++ |
|
|
x++ |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -433,79 +441,46 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(x>0){ |
|
|
if(x>0){ |
|
|
alert(x) |
|
|
/* showfieldsCountX.push({ |
|
|
|
|
|
count:x, |
|
|
|
|
|
field:toshow, |
|
|
|
|
|
conditionField: |
|
|
|
|
|
}) */ |
|
|
|
|
|
//alert(x) |
|
|
hideFieldArr = hideFieldArr.filter(item => item!=toshow) |
|
|
hideFieldArr = hideFieldArr.filter(item => item!=toshow) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//将隐藏的字段值重置 |
|
|
|
|
|
for(let i = 0; i< hideFieldArr.length;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]] = [] |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//默认隐藏的字段中目前被显示出来的 |
|
|
|
|
|
let nowShowingDefaultHideFieldArr = defaultHideFields.filter(a => !hideFieldArr.includes(a)) |
|
|
|
|
|
console.log("(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))") |
|
|
|
|
|
console.log(nowShowingDefaultHideFieldArr) |
|
|
|
|
|
//for(let i = 0;i< nowShowingDefaultHideFieldArr.length; i++){ |
|
|
|
|
|
//当被显示出来的字段涉及到的conditionfield已经被隐藏了时,其x应-1,如果x-1后造成该field被隐藏,应递归重新敲定hideFieldArr |
|
|
|
|
|
//if() |
|
|
|
|
|
//} |
|
|
|
|
|
|
|
|
/* //根据条件的生效情况从隐藏数组中过滤字段 |
|
|
|
|
|
for(let i = 0;i< radioSelectArr3.length;i++){ |
|
|
|
|
|
for(let j = 0; j< modelKeyArr.length;j++){ |
|
|
|
|
|
|
|
|
|
|
|
if(modelKeyArr[j]==radioSelectArr3[i].conditionFieldKey){ |
|
|
|
|
|
//console.log("当前:字段标识modelKeyArr[j]========="+modelKeyArr[j]+"字段标识modelKeyArr[j]的值===="+model.value[modelKeyArr[j]]) |
|
|
|
|
|
//console.log("规则:字段标识radioSelectArr3[i].conditionFieldKey========="+radioSelectArr3[i].conditionFieldKey+"conditionFieldValue的值======"+radioSelectArr3[i].conditionFieldValue) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//作为条件的字段的设定条件值等于其当前的值 |
|
|
|
|
|
if(radioSelectArr3[i].conditionFieldValue == model.value[modelKeyArr[j]]){ |
|
|
|
|
|
console.log("当前的值==="+model.value[modelKeyArr[j]]) |
|
|
|
|
|
console.log("modelKeyArr[j]==="+modelKeyArr[j]) |
|
|
|
|
|
console.log("作为条件的字段的设定条件值radioSelectArr3[i]==="+radioSelectArr3[i].conditionFieldValue) |
|
|
|
|
|
console.log(radioSelectArr3[i].toShowFieldKey) |
|
|
|
|
|
//hideFieldArr = hideFieldArr.filter( item => radioSelectArr3[i].toShowFieldKey.find((bItem: any) => item != bItem)) |
|
|
|
|
|
for(let n = 0; n < hideFieldArr.length; n++){ |
|
|
|
|
|
for(let m = 0; m < radioSelectArr3[i].toShowFieldKey.length; m++){ |
|
|
|
|
|
if(hideFieldArr[n] == radioSelectArr3[i].toShowFieldKey[m]){ |
|
|
|
|
|
hideFieldArr.splice(n,1); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} */ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 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) |
|
|
console.log("条件筛选过后最终要隐藏的字段-----"+hideFieldArr) |
|
|
|
|
|
|
|
|
//将隐藏的字段值重置 |
|
|
|
|
|
for(let i = 0; i< hideFieldArr.length;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]] = [] |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
//编辑表单页不隐藏任何字段。 |
|
|
//编辑表单页不隐藏任何字段。 |
|
|
if(formProps.value.type!=5){ |
|
|
if(formProps.value.type!=5){ |
|
|
props.formData.config.hideField?.push(...hideFieldArr) |
|
|
props.formData.config.hideField?.push(...hideFieldArr) |
|
|
|