diff --git a/src/components/DesignForm/public/form/form.vue b/src/components/DesignForm/public/form/form.vue index c8f4b3b..543d0ef 100644 --- a/src/components/DesignForm/public/form/form.vue +++ b/src/components/DesignForm/public/form/form.vue @@ -679,6 +679,15 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) let mustBeHidden: any = []; let newModelKeyArr: string[] = []; + +// 判断对象是否是“内容为空的纯对象” +function isEmptyPlainObject(obj) { + // 先确认是对象类型,再检查属性数量为0 + return Object.prototype.toString.call(obj) === '[object Object]' + && Object.keys(obj).length === 0; +} + + function showOrHide(data: any) { //console.log(data) @@ -918,13 +927,13 @@ function showOrHide(data: any) { ) { if (!props.formData.list[i].control.multiple) { radioSelectShowConfigArr.push(props.formData.list[i].control.glxxsz); - if(props.formData.list[i].control.zdtcsz){ + if(props.formData.list[i].control.zdtcsz&&!isEmptyPlainObject(props.formData.list[i].control.zdtcsz.tableData)){ props.formData.list[i].control.zdtcsz.name = props.formData.list[i].name radioSelectZdtcszConfigArr.push(props.formData.list[i].control.zdtcsz) } } else { checkboxShowConfigArr.push(props.formData.list[i].control.glxxsz); - if(props.formData.list[i].control.zdtcsz){ + if(props.formData.list[i].control.zdtcsz&&!isEmptyPlainObject(props.formData.list[i].control.zdtcsz.tableData)){ props.formData.list[i].control.zdtcsz.name = props.formData.list[i].name radioSelectZdtcszConfigArr.push(props.formData.list[i].control.zdtcsz) } @@ -950,7 +959,7 @@ function showOrHide(data: any) { } else { checkboxShowConfigArr.push(a[w].control.glxxsz); } - if(a[w].control.zdtcsz){ + if(a[w].control.zdtcsz&&!isEmptyPlainObject(a[w].control.zdtcsz.tableData)){ a[w].control.zdtcsz.name = a[w].name radioSelectZdtcszConfigArr.push(a[w].control.zdtcsz) } @@ -975,7 +984,7 @@ function showOrHide(data: any) { } else { checkboxShowConfigArr.push(a.control.glxxsz); } - if(a.control.zdtcsz){ + if(a.control.zdtcsz&&!isEmptyPlainObject(a.control.zdtcsz.tableData)){ a.control.zdtcsz.name = a.name radioSelectZdtcszConfigArr.push(a.control.zdtcsz) } @@ -1004,7 +1013,7 @@ function showOrHide(data: any) { } else { checkboxShowConfigArr.push(a.control.glxxsz); } - if(a.control.zdtcsz){ + if(a.control.zdtcsz&&!isEmptyPlainObject(a.control.zdtcsz.tableData)){ a.control.zdtcsz.name = a.name radioSelectZdtcszConfigArr.push(a.control.zdtcsz) } @@ -1023,7 +1032,7 @@ function showOrHide(data: any) { } else { checkboxShowConfigArr.push(q.control.glxxsz); } - if(q.control.zdtcsz){ + if(q.control.zdtcsz&&!isEmptyPlainObject(q.control.zdtcsz.tableData)){ q.control.zdtcsz.name = q.name radioSelectZdtcszConfigArr.push(q.control.zdtcsz) }