|
//表单工具文件
|
/**
|
* 通用高级查询表单数据收集函数
|
* @param {Array} formItems - 表单配置项数组
|
* @param {Object} formData - 表单数据对象
|
* @returns {Object} - 收集的表单数据
|
*/
|
export const collectFormDataForHighQuery = (formItems, formData) => {
|
const data = {};
|
|
// 遍历表单配置收集数据
|
formItems.forEach(item => {
|
// 收集基础字段
|
data[item.prop] = formData.value[item.prop] || '';
|
|
// 收集过滤模式字段
|
if (item.highSelectAttrs && item.highSelectAttrs.prop) {
|
const filterModeProp = item.highSelectAttrs.prop;
|
data[filterModeProp] = formData.value[filterModeProp] || '';
|
}
|
});
|
|
return data;
|
}
|
|
/**
|
* 重置高级查询的过滤模式
|
* @param formItems - 表单配置项数组
|
* @param formData - 表单数据对象
|
*/
|
export const onResetForHighSelect = (formItems, formData) => {
|
// 遍历所有表单字段
|
formItems.forEach(item => {
|
// 检查字段是否有高级查询的过滤模式配置
|
if (item.highSelectAttrs && item.highSelectAttrs.prop) {
|
const filterModeProp = item.highSelectAttrs.prop;
|
const options = item.highSelectAttrs.options || [];
|
|
// 如果存在选项,则设置为第一个选项的值
|
if (options.length > 0) {
|
// 假设选项格式为 { value, label } 或类似结构
|
const firstValue = options[0].value !== undefined ? options[0].value : options[0];
|
formData.value[filterModeProp] = firstValue;
|
}
|
}
|
});
|
}
|
|
/**
|
* 重置高级查询
|
* @param formItems - 表单配置项数组
|
* @param formData - 表单数据对象
|
*/
|
export const onResetForHighQuery = (formItems, formData) => {
|
// 1. 清空所有基础字段(不包含过滤模式字段)
|
const baseFields = formItems.reduce((acc, item) => {
|
acc[item.prop] = '';
|
return acc;
|
}, {});
|
|
// 2. 应用基础字段初始值
|
formData.value = { ...baseFields };
|
}
|
|
|
/**
|
* 从表单数据中提取有效属性(排除无效字段),提交保存表单数据时用
|
* @param formData 表单数据对象
|
* @param excludeFields 需要排除的字段列表(默认为 ['id'])
|
* @returns 处理后的有效数据对象
|
*/
|
export const extractFormDataForOnConfirm = (formData) => {
|
//动态获取 formData 的所有属性值(排除无效属性,如 id)
|
const data = Object.entries(formData.value).reduce((acc, [key, value]) => {
|
// 过滤掉不需要提交的属性(如 id,可根据实际需求调整)
|
if (key !== 'id') {
|
acc[key] = value
|
}
|
return acc
|
}, {} as Record<string, any>)
|
return data;
|
};
|
|
/**
|
* 从响应数据中提取有效字段并赋值给表单数据,打开表单数据时用
|
* @param res 响应数据
|
* @param formData 表单数据引用
|
* @param options 配置选项
|
* @returns 处理后的表单数据
|
*/
|
export function extractAndAssignFormData(res,formData) {
|
// 提取有效字段(排除不需要的属性,如临时字段、非表单字段)
|
const { id, ...validFormData } = res; // 保留 id 可根据需求调整
|
|
// 直接赋值(自动过滤无效属性)
|
formData.value = {
|
...validFormData, // 自动继承所有有效字段
|
// 如需额外处理特定字段(如日期格式化),可在此补充
|
// plannedStartTime: formatDate(res.plannedStartTime),
|
};
|
}
|