Browse Source

关联表单多变量数据填充条件---完善

lwx_v15
liwenxuan 12 months ago
parent
commit
1f3668a643
  1. 119
      src/components/DesignForm/app/formPage.vue

119
src/components/DesignForm/app/formPage.vue

@ -292,6 +292,7 @@ onMounted(() => {
}
})
getAsfs()
})
/**
@ 作者: 秦东
@ -1063,6 +1064,124 @@ function optionsValue3Get2(data: any,fieldName: string){
}
const asfs: any[] = []
const tables: any[] = []
function getAsfs(){
setTimeout(()=>{
let dataList = ref({})
dataList.value = props.formData.list
if(dataList&&Array.isArray(dataList.value)&&dataList.value.length>0){
for(let i = 0;i<dataList.value.length;i++){
if(dataList.value[i].type=="associatedForms"){
asfs.push(dataList.value[i])
}else if(dataList.value[i].type=="card"||dataList.value[i].type=="flex"||dataList.value[i].type=="div"||dataList.value[i].type=="table"){
if(dataList.value[i].type=="table"){
tables.push(dataList.value[i])
}
dataList.value[i].list.forEach((element:any) => {
if(element.type=="associatedForms"){
asfs.push(element)
}
});
}else if(dataList.value[i].type=="grid"){
let columns = JSON.parse(JSON.stringify(dataList.value[i].columns));
if(columns.length>0){
for(let z = 0;z<columns.length;z++){
for(let x = 0; x<columns[z].list.length;x++){
let a = JSON.parse(JSON.stringify(columns[z].list[x]));
if(a.type=="associatedForms"){
asfs.push(a)
}
}
}
}
}else if(dataList.value[i].type=="tabs"){//tabsflextable
let columns = JSON.parse(JSON.stringify(dataList.value[i].columns));
if(columns.length>0){
for(let z = 0;z<columns.length;z++){
for(let x = 0; x<columns[z].list.length;x++){
let a = JSON.parse(JSON.stringify(columns[z].list[x]));
if(a.type=="associatedForms"){
asfs.push(a)
}else if(a.type=="flex"||a.type=="table"){
if(a.type=="table"){
tables.push(dataList.value[i])
}
if(a.list.length>0){
for(let m = 0;m<a.list.length;m++){
let q = JSON.parse(JSON.stringify(a.list[m]))
if(q.type=="associatedForms"){
asfs.push(q)
}
}
}
}
}
}
}
}
}
}
},500)
}
let asfRangeDoubleCondiChangeObj = ref()
provide('asfRangeDoubleCondiChangeObj',asfRangeDoubleCondiChangeObj)
let oldModelStr = ""
watch(() => model.value,(newVal) => {
let currentChangeKey = ""
const newModelStr = JSON.stringify(newVal);
let oldModelStr1 = oldModelStr
if (newModelStr!== oldModelStr1&&oldModelStr1!="") {
let oldVal = JSON.parse(oldModelStr1);
for (const key in newVal) {
if (JSON.stringify(newVal[key])!== JSON.stringify(oldVal[key])) {
currentChangeKey = key
}
}
}
let rangeFormulaArr = []
if(asfs.length>0){
asfs.forEach((element:any) => {
let asfName = element.name
if(element.control.dataRangeGongShi&&element.control.dataRangeGongShi.mathsFormula&&element.control.dataRangeGongShi.mathsFormula.length>0){
let asfRangeDoubleCondi = element.control.dataRangeGongShi.mathsFormula
if(currentChangeKey!=""){
let a = asfRangeDoubleCondi.split(":")
let field = a[a.length-1]
if(currentChangeKey==field){
let toShowDoubleCondiValVal = model.value[currentChangeKey]
//console.log(""+asfName+",doubleCondiVal"+toShowDoubleCondiValVal+"")
let obj = {
asfName:asfName,
toShowDoubleCondiValVal:toShowDoubleCondiValVal
}
asfRangeDoubleCondiChangeObj.value = obj
}
}
}
});
}
oldModelStr = newModelStr
},{deep: true})
</script>
<template>

Loading…
Cancel
Save