Browse Source

关联选项多选数据处理v0.1

lwx_v8
liwenxuan 2 years ago
parent
commit
db04c60ae8
  1. 2
      src/components/DesignForm/formControlAttr.vue
  2. 232
      src/components/DesignForm/public/form/form.vue

2
src/components/DesignForm/formControlAttr.vue

@ -2284,7 +2284,7 @@ watch(()=>controlData.value.options, (changedOptions:any) => {
function createRowForGlxxsz(){ function createRowForGlxxsz(){
controlData.value.control.glxxszForCheckBox.push( controlData.value.control.glxxszForCheckBox.push(
{ {
conditionField: controlData.value.name,
selectedOptions:[], selectedOptions:[],
showFields:[], showFields:[],
id: uuidv4().replaceAll('-','').toString(), id: uuidv4().replaceAll('-','').toString(),

232
src/components/DesignForm/public/form/form.vue

@ -170,6 +170,128 @@ const forEachGetFormModel = (list: FormList[], obj: any) => {
}) })
} }
interface hideFieldConditionArritem {
toShow:string
conditions: any[]
}
const recursionToGetFinallyHideFields = (hideFieldArr: any[],radioSelectArr3: string | any[],modelKeyArr: string | any[],defaultHideFields: any[],nowShowingDefaultHideFieldArr: any[],nowShowingFieldArr: string[]) => {
//key,value,
const hideFieldConditionArr:hideFieldConditionArritem[] = []
for(let i = 0;i < hideFieldArr.length;i++){
hideFieldConditionArr.push({
toShow:hideFieldArr[i],
conditions:[],
})
}
console.log(hideFieldConditionArr)
//radioSelectArr3radioSelectArr3 [ i ] . toshowFieldKey i==hideFieldArri
for(let i = 0;i < radioSelectArr3.length;i++){
for(let j = 0;j < radioSelectArr3[i].toShowFieldKey.length;j++){
for(let n = 0;n < hideFieldConditionArr.length;n++){
/* console.log(i)
console.log(j)
console.log(n) */
if(radioSelectArr3[i].toShowFieldKey[j]==hideFieldConditionArr[n].toShow){
hideFieldConditionArr[n].conditions.push({
conditionFrom:"radioOrSelect",//
condition:[{////conditionFieldconditionFieldValue,hideFieldConditionArr[n]
conditionField:radioSelectArr3[i].conditionFieldKey,
conditionFieldValue:radioSelectArr3[i].conditionFieldValue//
}]
})
}
}
}
}
console.log(hideFieldConditionArr);
//.
//let showfieldsCountX = [];
for(let i = 0;i<hideFieldConditionArr.length;i++){
let x = 0//
let toshow = hideFieldConditionArr[i].toShow
let conditions = hideFieldConditionArr[i].conditions
//console.log(conditions)
for(let j = 0;j<conditions.length;j++){
if(conditions[j].conditionFrom == "radioOrSelect"){//,
let conditionField = conditions[j].condition[0].conditionField
let conditionFieldValue = conditions[j].condition[0].conditionFieldValue
console.log(conditionField)
console.log(conditionFieldValue)
for(let n = 0; n< modelKeyArr.length;n++){
if(modelKeyArr[n]==conditionField){
let count_1 = 0;
let trueValue = model.value[modelKeyArr[n]]
//console.log(modelKeyArr[n])
//console.log(trueValue)
if(trueValue==conditionFieldValue){
//,conditionField.,x.
let flag = false//.,
//conditionField,x++
for(let a = 0;a<hideFieldConditionArr.length;a++){
if(hideFieldConditionArr[a].toShow==conditionField){//conditions.length>1,=1.
for(let b = 0;b<hideFieldConditionArr[a].conditions.length;b++){
for(let c = 0;c<hideFieldConditionArr[a].conditions[b].condition.length;c++){
if(hideFieldConditionArr[a].conditions[b].condition[c]==conditionField){
//,.
console.log(1)
}
}
}
}
}
if(flag==false){
x++
}
}
}
}
}else{//,
}
}
if(x>0){
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]])
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]] = []
}
}
//
nowShowingDefaultHideFieldArr = defaultHideFields.filter(a => !hideFieldArr.includes(a))
console.log("(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))")
console.log(nowShowingDefaultHideFieldArr)
/* for(let i = 0;i< nowShowingDefaultHideFieldArr.length; i++){
//conditionfield,x-1,x-1field,hideFieldArr
if()
} */
return hideFieldArr
}
// tProp // tProp
provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) => { provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) => {
@ -309,6 +431,7 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any)
//showFieldskey,optionValuevalue,radioselectArr3 --- //showFieldskey,optionValuevalue,radioselectArr3 ---
const radioSelectArr3:any[] = [] const radioSelectArr3:any[] = []
if(radioSelectShowConfigArr2.length>0){ if(radioSelectShowConfigArr2.length>0){
for(let i = 0;i<radioSelectShowConfigArr2.length;i++){ for(let i = 0;i<radioSelectShowConfigArr2.length;i++){
if( radioSelectShowConfigArr2[i].length>0){ if( radioSelectShowConfigArr2[i].length>0){
@ -346,6 +469,7 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any)
} }
} }
} }
//console.log(radioSelectShowConfigArr2)
@ -359,6 +483,8 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any)
hideFieldArr = Array.from(new Set(hideFieldArr)) hideFieldArr = Array.from(new Set(hideFieldArr))
const defaultHideFields: any[] = JSON.parse(JSON.stringify(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 --- 内容为完整显示隐藏条件")
console.log(radioSelectArr3) console.log(radioSelectArr3)
@ -372,105 +498,16 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any)
} }
console.log("所有字段modelKeyArr^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^") console.log("所有字段modelKeyArr^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^")
console.log(modelKeyArr) console.log(modelKeyArr)
//key,value,
const hideFieldConditionArr:hideFieldConditionArritem[] = []
interface hideFieldConditionArritem {
toShow:string
conditions: any[]
}
for(let i = 0;i < hideFieldArr.length;i++){
hideFieldConditionArr.push({
toShow:hideFieldArr[i],
conditions:[],
})
}
console.log(hideFieldConditionArr)
//radioSelectArr3radioSelectArr3 [ i ] . toshowFieldKey i==hideFieldArri
for(let i = 0;i < radioSelectArr3.length;i++){
for(let j = 0;j < radioSelectArr3[i].toShowFieldKey.length;j++){
for(let n = 0;n < hideFieldConditionArr.length;n++){
/* console.log(i)
console.log(j)
console.log(n) */
if(radioSelectArr3[i].toShowFieldKey[j]==hideFieldConditionArr[n].toShow){
hideFieldConditionArr[n].conditions.push({
conditionFrom:"radioOrSelect",//
condition:[{////conditionFieldconditionFieldValue,hideFieldConditionArr[n]
conditionField:radioSelectArr3[i].conditionFieldKey,
conditionFieldValue:radioSelectArr3[i].conditionFieldValue//
}]
})
}
}
}
}
console.log(hideFieldConditionArr);
//.
//let showfieldsCountX = [];
for(let i = 0;i<hideFieldConditionArr.length;i++){
let x = 0//
let toshow = hideFieldConditionArr[i].toShow
let conditions = hideFieldConditionArr[i].conditions
//console.log(conditions)
for(let j = 0;j<conditions.length;j++){
if(conditions[j].conditionFrom == "radioOrSelect"){//,
let conditionField = conditions[j].condition[0].conditionField
let conditionFieldValue = conditions[j].condition[0].conditionFieldValue
console.log(conditionField)
console.log(conditionFieldValue)
for(let n = 0; n< modelKeyArr.length;n++){
if(modelKeyArr[n]==conditionField){
let trueValue = model.value[modelKeyArr[n]]
//console.log(modelKeyArr[n])
//console.log(trueValue)
if(trueValue==conditionFieldValue){
//,conditionField.,x.
//let flag = false//.,.defaultHideFields:-
x++
}
}
}
}else{//,
}
}
if(x>0){
/* showfieldsCountX.push({
count:x,
field:toshow,
conditionField:
}) */
//alert(x)
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)) let nowShowingDefaultHideFieldArr = defaultHideFields.filter(a => !hideFieldArr.includes(a))
console.log("(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))") //
console.log(nowShowingDefaultHideFieldArr) let nowShowingFieldArr = modelKeyArr.filter(a => !hideFieldArr.includes(a))
//for(let i = 0;i< nowShowingDefaultHideFieldArr.length; i++){
//conditionfield,x-1,x-1field,hideFieldArr hideFieldArr = recursionToGetFinallyHideFields(hideFieldArr,radioSelectArr3,modelKeyArr,defaultHideFields,nowShowingDefaultHideFieldArr,nowShowingFieldArr)
//if()
//}
@ -543,6 +580,9 @@ const formProps = computed(() => {
} }
}) })
provide(constFormProps, formProps) provide(constFormProps, formProps)
// nameformData.list // nameformData.list

Loading…
Cancel
Save