| | |
| | | fieldLabels: { |
| | | type: Object, |
| | | default: () => ({}) |
| | | }, |
| | | // 字段显示顺序 |
| | | fieldOrder: { |
| | | type: Array, |
| | | default: () => [] |
| | | } |
| | | }); |
| | | |
| | |
| | | } |
| | | |
| | | const data = { ...props.formData }; |
| | | let result = {}; |
| | | let filteredResult = {}; |
| | | |
| | | // 如果指定了包含字段,则只显示这些字段 |
| | | if (props.includeFields.length > 0) { |
| | | props.includeFields.forEach(field => { |
| | | if (data.hasOwnProperty(field)) { |
| | | result[field] = data[field]; |
| | | filteredResult[field] = data[field]; |
| | | } |
| | | }); |
| | | } else { |
| | | // 否则排除指定字段 |
| | | Object.keys(data).forEach(key => { |
| | | if (!props.excludeFields.includes(key)) { |
| | | result[key] = data[key]; |
| | | filteredResult[key] = data[key]; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | return result; |
| | | // 如果指定了字段顺序,则按顺序重新组织数据 |
| | | if (props.fieldOrder.length > 0) { |
| | | const orderedResult = {}; |
| | | |
| | | // 先按指定顺序添加字段 |
| | | props.fieldOrder.forEach(field => { |
| | | if (filteredResult.hasOwnProperty(field)) { |
| | | orderedResult[field] = filteredResult[field]; |
| | | } |
| | | }); |
| | | |
| | | // 再添加未在顺序中指定的其他字段 |
| | | Object.keys(filteredResult).forEach(key => { |
| | | if (!props.fieldOrder.includes(key)) { |
| | | orderedResult[key] = filteredResult[key]; |
| | | } |
| | | }); |
| | | |
| | | return orderedResult; |
| | | } |
| | | |
| | | return filteredResult; |
| | | }); |
| | | |
| | | // 获取字段显示标签 |