import { ref } from 'vue';
|
|
import { getWorkOrderParamRecordPage } from '#/api/mes/pro/workorderparamrecord';
|
|
/** 报工表单要填写的参数项(来自任务参数记录快照) */
|
export interface ParamDetailItem {
|
id: number;
|
paramCode?: string;
|
paramName?: string;
|
paramType?: number;
|
unitMeasureName?: string;
|
paramValue?: string;
|
required?: boolean;
|
}
|
|
/** 当前报工表单的参数明细(共享给表单与任务选择联动) */
|
export const paramDetails = ref<ParamDetailItem[]>([]);
|
|
/** 按任务加载参数明细(任务无参数记录时为空数组) */
|
export async function loadParamDetails(taskId?: number) {
|
paramDetails.value = [];
|
if (!taskId) {
|
return;
|
}
|
const page = await getWorkOrderParamRecordPage({
|
taskId,
|
pageNo: 1,
|
pageSize: 1,
|
});
|
const record = page.list?.[0];
|
paramDetails.value = (record?.details ?? []).map((detail) => ({
|
id: detail.id!,
|
paramCode: detail.paramCode,
|
paramName: detail.paramName,
|
paramType: detail.paramType,
|
unitMeasureName: detail.unitMeasureName,
|
paramValue: detail.paramValue,
|
required: detail.required,
|
}));
|
}
|
|
/** 校验必填参数是否都已填写;返回未填写的参数名 */
|
export function findMissingRequiredParams(): string[] {
|
return paramDetails.value
|
.filter((detail) => detail.required && !detail.paramValue?.trim())
|
.map((detail) => detail.paramName || detail.paramCode || '');
|
}
|