Files
threeonecheck_web/components/hazard/hazardForm.js
2026-06-30 09:47:10 +08:00

94 lines
2.1 KiB
JavaScript

import { buildAttachmentItem } from '@/utils/upload.js';
export const LEVEL_OPTIONS = [
{ id: 2, title: '一般隐患' },
{ id: 3, title: '重大隐患' }
];
export const SOURCE_OPTIONS = [
{ id: 1, title: '部门检查' },
{ id: 2, title: '督导检查' },
{ id: 3, title: '企业自查' },
{ id: 4, title: '行业互查' }
];
export const AI_LEVEL_MAP = {
轻微: 0,
轻微隐患: 0,
一般: 0,
一般隐患: 0,
重大: 1,
重大隐患: 1
};
export function createEmptyHazardPayload() {
return {
formData: {
title: '',
level: 0,
source: 0,
hazardSourceCode: null,
hazardSourceName: '',
description: '',
tagIndex: 0,
tagId: null,
regulationId: null,
regulationName: ''
},
address: '',
lng: 0,
lat: 0,
areaId: '',
areaName: '',
fileList: []
};
}
export function buildHiddenDangerParams(payload, extra = {}) {
const { formData, address, lng, lat, areaId, fileList } = payload;
const selectedTag = payload.tagOptions?.[formData.tagIndex];
const tagId = formData.tagId ?? (selectedTag ? selectedTag.id : null);
return {
title: formData.title,
level: LEVEL_OPTIONS[formData.level]?.id || 2,
lng: lng || 0,
lat: lat || 0,
address: address || '',
areaId: areaId || null,
description: formData.description || '',
source: SOURCE_OPTIONS[formData.source]?.title || '',
hazardSource: formData.hazardSourceCode ?? null,
tagId,
attachments: (fileList || [])
.filter((f) => f.status === 'success')
.map((file) => buildAttachmentItem(file)),
regulationId: formData.regulationId || null,
...extra
};
}
export function hasValidHazardPayload(payload) {
if (!payload) return false;
const { formData, fileList } = payload;
return !!(formData?.title && fileList?.length > 0);
}
export function hasHazardFormContent(payload) {
if (!payload) return false;
const data = payload.formData || {};
const files = payload.fileList || [];
return !!(
data.title ||
data.description ||
data.regulationName ||
data.regulationId ||
data.hazardSourceCode != null ||
data.hazardSourceName ||
payload.address ||
payload.areaId ||
payload.areaName ||
(files.length > 0)
);
}