This commit is contained in:
2026-03-03 18:44:27 +08:00
parent 3b5706fce7
commit f8bbb718ac

View File

@@ -104,16 +104,21 @@ onMounted(() => {
}
});
const tableData = ref<any>([]);
const formatDataFun = (data: any) => {
data?.extras?.forEach((item: any) => {
const { propertyName, propertyValue } = item;
data[propertyName] = propertyValue;
});
return data;
if (tableData.value.length === 0) {
data?.extras?.forEach((item: any) => {
const { propertyName, propertyValue } = item;
data[propertyName] = propertyValue;
});
return data;
} else {
return getFormDataFun(data);
}
};
const formData = ref<any>(formatDataFun(props.data));
const tableData = ref<any>([]);
const rules = ref<any>({});
const formRef = ref<any>();
@@ -127,6 +132,7 @@ const getHeadDataFun = () => {
formConfigData.value = data;
setValidateFun(data);
tableData.value = data;
getFormDataFun(props.data);
formOptionsFormat(tableData.value);
emit('load');
}
@@ -236,20 +242,20 @@ const validateFun = () => {
});
};
const getFormDataFun = () => {
const objData: any = formData.value || {};
const hasExtras = !!formData.value.extras;
objData.extras = hasExtras ? formData.value.extras : [];
const getFormDataFun = (data?: any) => {
const objData: any = data || formData.value || {};
const hasExtras = !!objData.extras;
objData.extras = hasExtras ? objData.extras : [];
tableData.value.forEach((item: any) => {
const { key, type } = item;
if (type === 1) {
objData[key] = formData.value[key];
objData[key] = objData[key];
} else {
if (hasExtras) {
let hasExtraKey = false;
objData.extras.some((val: any) => {
if (val.propertyName === key) {
val.propertyValue = formData.value[key];
val.propertyValue = objData[key];
hasExtraKey = true;
return true;
}
@@ -258,14 +264,14 @@ const getFormDataFun = () => {
objData.extras.push({
propertyClass: 'default',
propertyName: key,
propertyValue: formData.value[key],
propertyValue: objData[key],
});
}
} else {
objData.extras.push({
propertyClass: 'default',
propertyName: key,
propertyValue: formData.value[key],
propertyValue: objData[key],
});
}
}