import type { TemplateDetail, TemplateListItem } from '#/api/x/eln/templates';
|
import type { onlineUtils } from '#/utils/jnpf';
|
|
import { formatToDateTime } from '@jnpf/utils';
|
|
import { getTemplateDetail } from '#/api/x/eln/templates';
|
|
export type LocalTemplateForm = { open: (config: Parameters<typeof onlineUtils.openFormModal>[0]) => Promise<void> };
|
|
export async function openTemplateDetailForm(form: LocalTemplateForm | undefined, row: TemplateListItem, type?: 'modal') {
|
if (!form) return;
|
const response = await getTemplateDetail(row.id);
|
const detail = normalizeTemplateDetail(response.data);
|
await form.open({
|
fieldMapping: {
|
biz_enabled: 'detail.bizEnabledLabel',
|
chuangjian_renyuan: 'detail.chuangjianRenyuanMingcheng',
|
chuangjian_shijian: 'detail.chuangjianShijianText',
|
jianyan_xiangmu: 'detail.jianyanXiangmuMingcheng',
|
muban_fenlei: 'detail.mubanFenleiMingcheng',
|
muban_mincheng: 'detail.mubanMingcheng',
|
shengxiao_riqi: 'detail.shengxiaoRiqiText',
|
shiyan_buzhou: 'detail.shiyanBuzhou',
|
},
|
id: row.id,
|
mode: 'detail',
|
modelId: '854727805680747141',
|
params: { detail },
|
title: `模板详情 - ${row.mubanBianhao} ${row.mubanBanben}`,
|
type,
|
});
|
}
|
|
function normalizeTemplateDetail(detail: TemplateDetail) {
|
return {
|
...detail,
|
bizEnabledLabel: detail.bizEnabled === 'enabled' ? '启用' : '停用',
|
chuangjianRenyuanMingcheng: detail.chuangjianRenyuanMingcheng || detail.chuangjianRenyuan || '-',
|
chuangjianShijianText: formatDetailDate(detail.chuangjianShijian, 'YYYY-MM-DD HH:mm:ss'),
|
jianyanXiangmuMingcheng: detail.jianyanXiangmuMingcheng || detail.jianyanXiangmu || '-',
|
mubanFenleiMingcheng: detail.mubanFenleiMingcheng || detail.mubanFenlei || '-',
|
mubanMingcheng: detail.mubanMingcheng || '-',
|
shengxiaoRiqiText: formatDetailDate(detail.shengxiaoRiqi, 'YYYY-MM-DD'),
|
shiyanBuzhou: detail.shiyanBuzhou || '-',
|
};
|
}
|
|
function formatDetailDate(value: string | undefined, format: string) {
|
return value ? formatToDateTime(value, format) : '-';
|
}
|