/**
|
* 项目下拉选项
|
*
|
* 招投标、诉讼、销售报价、销售台账等多处需要「选择所属项目」,
|
* 后端项目管理返回的字段名不统一(项目名称在 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<Array<{name, value, raw}>>}
|
*/
|
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 };
|