/** * 项目下拉选项 * * 招投标、诉讼、销售报价、销售台账等多处需要「选择所属项目」, * 后端项目管理返回的字段名不统一(项目名称在 title 上,id 在 id 上), * 统一在这里归一化成 FormPicker 认识的 {name, value},并保留 raw 供回填使用。 */ import { listProject } from "@/api/projectManagement/project"; const pickProjectName = project => project?.title ?? project?.projectName ?? project?.name ?? ""; export function normalizeProjectOptions(records = []) { return (records || []).map(project => ({ name: pickProjectName(project), value: project.id ?? project.projectId, raw: project, })); } /** * 拉取项目列表(不分页) * @returns {Promise>} */ export async function loadProjectOptions(params = {}) { const res = await listProject({ current: -1, size: -1, ...params }); const records = res?.data?.records || res?.records || res?.data || []; return normalizeProjectOptions(Array.isArray(records) ? records : []); } export { pickProjectName };