import { formatFormLabel } from '#/components/FormGenerator/src/helper/formLabel';
|
|
interface FormMappingRecord {
|
fileList?: unknown;
|
nodeName?: string;
|
[key: string]: unknown;
|
}
|
|
interface FormMappingNode {
|
nodeName?: string;
|
type?: string;
|
}
|
|
function parseRecordFileList(fileList: unknown): unknown[] {
|
if (Array.isArray(fileList)) return fileList;
|
if (typeof fileList !== 'string' || !fileList) return [];
|
try {
|
const parsed: unknown = JSON.parse(fileList);
|
return Array.isArray(parsed) ? parsed : [];
|
} catch {
|
return [];
|
}
|
}
|
|
export function buildFormMappingRecord(record: FormMappingRecord, node: FormMappingNode) {
|
return {
|
...record,
|
title: formatFormLabel(node.nodeName || record.nodeName),
|
actionLabel: node.type === 'processing' ? '办理' : '审核',
|
fileList: parseRecordFileList(record.fileList),
|
};
|
}
|
|
export function formatRecordDepartmentName(name: unknown, showRoot: number, level = 0): string {
|
if (typeof name !== 'string' || !name) return '';
|
if (level === 0 && showRoot !== 0) return name;
|
return name
|
.split('、')
|
.map((path) => {
|
const names = path.split('/');
|
const start = Math.max(level > 0 ? names.length - level : 0, showRoot === 0 && names.length > 1 ? 1 : 0);
|
return names.slice(start).join('/');
|
})
|
.join('、');
|
}
|