function normalizeText(value) { return String(value ?? '').trim() } export const CONTRACT_REPORT_TITLE = '合同信息报表' export const CONTRACT_REPORT_STYLE = { titleAlign: 'center', titleLevel: 'strong', orientation: 'portrait', density: 'compact', showSequence: true } const STATUS_META = { 1: { text: '正常', type: 'success', bool: true }, 0: { text: '冻结', type: 'danger', bool: false } } export function createContractSearchState() { return { condition: '', code: '', name: '', projectName: '', status: '', memo: '' } } export function createContractFormState() { return { id: void 0, code: '', name: '', projectName: '', status: 1, memo: '' } } export function getContractPaginationKey() { return { current: 'current', size: 'pageSize' } } export function getContractStatusOptions() { return [ { label: '正常', value: 1 }, { label: '冻结', value: 0 } ] } export function getContractStatusMeta(status) { if (status === true || Number(status) === 1) { return STATUS_META[1] } if (status === false || Number(status) === 0) { return STATUS_META[0] } return { text: '未知', type: 'info', bool: false } } export function buildContractSearchParams(params = {}) { const result = {} ;['condition', 'code', 'name', 'projectName', 'memo'].forEach((key) => { const value = normalizeText(params[key]) if (value) { result[key] = value } }) if (params.status !== '' && params.status !== null && params.status !== undefined) { result.status = Number(params.status) } return result } export function buildContractPageQueryParams(params = {}) { return { current: params.current || 1, pageSize: params.pageSize || params.size || 20, ...buildContractSearchParams(params) } } export function buildContractSavePayload(formData = {}) { return { ...(formData.id !== void 0 && formData.id !== null && formData.id !== '' ? { id: Number(formData.id) } : {}), code: normalizeText(formData.code), name: normalizeText(formData.name), projectName: normalizeText(formData.projectName), status: formData.status !== void 0 && formData.status !== null && formData.status !== '' ? Number(formData.status) : 1, memo: normalizeText(formData.memo) } } export function buildContractDialogModel(record = {}) { return { ...createContractFormState(), ...(record.id !== void 0 && record.id !== null && record.id !== '' ? { id: Number(record.id) } : {}), code: normalizeText(record.code || ''), name: normalizeText(record.name || ''), projectName: normalizeText(record.projectName || ''), status: record.status !== void 0 && record.status !== null ? Number(record.status) : 1, memo: normalizeText(record.memo || '') } } export function normalizeContractListRow(record = {}) { const statusMeta = getContractStatusMeta(record.statusBool ?? record.status) return { ...record, code: normalizeText(record.code) || '--', name: normalizeText(record.name) || '--', projectName: normalizeText(record.projectName) || '--', memo: normalizeText(record.memo) || '--', statusText: statusMeta.text, statusType: statusMeta.type, statusBool: record.statusBool !== void 0 ? Boolean(record.statusBool) : statusMeta.bool, createByText: normalizeText(record.createBy$ || record.createBy || ''), createTimeText: normalizeText(record.createTime$ || record.createTime || ''), updateByText: normalizeText(record.updateBy$ || record.updateBy || ''), updateTimeText: normalizeText(record.updateTime$ || record.updateTime || '') } } export function normalizeContractDetailRecord(record = {}) { return normalizeContractListRow(record) } export function buildContractPrintRows(records = []) { if (!Array.isArray(records)) { return [] } return records.map((record) => normalizeContractListRow(record)) } export function buildContractReportMeta({ previewMeta = {}, count = 0, orientation = CONTRACT_REPORT_STYLE.orientation } = {}) { return { reportTitle: CONTRACT_REPORT_TITLE, reportDate: previewMeta.reportDate, printedAt: previewMeta.printedAt, operator: previewMeta.operator, count, reportStyle: { ...CONTRACT_REPORT_STYLE, orientation } } }