import type { TaskEntity } from './types';
|
|
/** 培训任务送审流程(已发布模板) */
|
export const TMS_TASK_SUBMIT_FLOW = {
|
/** workflow_template.f_id */
|
templateId: '874201509296868165',
|
/** 流程绑定的在线表单 visualDevId */
|
modelId: '874203006613064517',
|
enCode: 'tms.TrainingManage.trainerApproval',
|
} as const;
|
|
/** JNPF 流程状态:1=审批中(常见) */
|
export function isTaskInApproval(task?: Pick<TaskEntity, 'flowState' | 'flowTaskId'> | null) {
|
if (!task) return false;
|
if (task.flowTaskId) return true;
|
const st = task.flowState;
|
return st === 1 || st === '1';
|
}
|
|
/** TransferModel.sourceValue / defaultValue 后端类型为 String,禁止传对象/数组 */
|
function toTransferString(value: unknown): string {
|
if (value == null || value === '') return '';
|
if (typeof value === 'string') return value;
|
if (typeof value === 'number' || typeof value === 'boolean') return String(value);
|
if (Array.isArray(value)) {
|
return value.map(toTransferString).filter(Boolean).join(',');
|
}
|
if (typeof value === 'object') {
|
const o = value as Record<string, unknown>;
|
if (o.id != null && o.id !== '') return String(o.id);
|
if (o.value != null && o.value !== '') return String(o.value);
|
return '';
|
}
|
return String(value);
|
}
|
|
/**
|
* 构造 actionLaunchFlow 的 dataList(TransferModel 二维数组)。
|
* sourceType=2 自定义:直接把 defaultValue/sourceValue 写入目标表单字段。
|
*/
|
export function buildTaskSubmitLaunchDataList(task: TaskEntity) {
|
const trainees =
|
toTransferString(task.trainees) ||
|
(Array.isArray(task.traineeIds) ? toTransferString(task.traineeIds) : '');
|
|
const put = (targetField: string, value: unknown) => {
|
const text = toTransferString(value);
|
return {
|
targetField,
|
sourceType: 2,
|
sourceValue: text,
|
defaultValue: text,
|
};
|
};
|
|
return [
|
[
|
put('id', task.id),
|
put('task_no', task.taskNo),
|
put('publish_status', task.publishStatus || 'draft'),
|
put('category', task.category),
|
put('source_type', task.sourceType),
|
put('source_plan_no', task.sourcePlanNo),
|
put('source_id', task.sourceId),
|
put('source_item_id', task.sourceItemId),
|
put('subject', task.subject),
|
put('key_points', task.keyPoints),
|
put('train_mode', task.trainMode),
|
put('eval_mode', task.evalMode),
|
put('task_kind', task.taskKind),
|
put('prev_task_no', task.prevTaskNo),
|
put('teacher_id', task.teacherId),
|
put('trainees', trainees),
|
put('start_time', task.startTime),
|
put('end_time', task.endTime),
|
put('close_time', task.closeTime),
|
put('place_id', task.placeId),
|
put('place_no', task.placeNo),
|
put('place_name', task.placeName),
|
put('material_id', task.materialId),
|
put('material_no', task.materialNo),
|
put('paper_id', task.paperId),
|
put('paper_name', task.paperName),
|
put('exam_start', task.examStart),
|
put('exam_end', task.examEnd),
|
put('retake_limit', task.retakeLimit),
|
put('pass_score', task.passScore),
|
put('quiz_ratio', task.quizRatio),
|
put('overdue_remind', task.overdueRemind),
|
put('invite_flag', task.inviteFlag),
|
put('remark', task.remark),
|
],
|
];
|
}
|