Compare commits

..

2 Commits

5 changed files with 49 additions and 20 deletions

View File

@ -17,16 +17,23 @@ export default function AttachmentUpload({ name, label, disabled = false, maxCou
if (Array.isArray(value)) {
return { fileList: value };
}
return {
fileList: value
? value.split(",").map((item) => ({
url: item,
uid: item,
status: "done",
name: "附件",
}))
: [],
};
if (typeof value === "string" && value) {
try {
const parsed = JSON.parse(value);
if (Array.isArray(parsed)) {
return { fileList: parsed };
}
} catch {}
return {
fileList: value.split(",").map((item) => ({
url: item,
uid: item,
status: "done",
name: "附件",
})),
};
}
return { fileList: [] };
}}
getValueFromEvent={({ fileList }) => {
return (

View File

@ -341,11 +341,7 @@ function OrgInfoPage(props) {
/>
</Form.Item>
</Col>
<Col span={12}>
<Form.Item name="safetyDeputyManager" label="主管安全副总">
<Input placeholder="请输入主管安全副总" allowClear />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item
name="safetyDeputyPhone"

View File

@ -35,8 +35,9 @@ export default function FilingListTable({
const statusOptions = getFilingStatusOptions(mode);
const canEditRow = (record) => {
if (mode === FILING_FORM_MODE.FILED) {
return Number(record.filingStatusCode) === 3;
return record.filingStatusCode === 1;
}
return isQualFilingEditable(record.filingStatusCode);
};

View File

@ -276,14 +276,14 @@ export function mergeDetailFromForms(detail, { basicValues, commitmentValues })
return {
...detail,
...basicValues,
attachmentUrl: Array.isArray(basicValues?.attachmentUrl) ? basicValues?.attachmentUrl?.map((file) => file.url).join(",") : basicValues?.attachmentUrl,
attachmentUrl: Array.isArray(basicValues?.attachmentUrl) ? JSON.stringify(basicValues?.attachmentUrl) : basicValues?.attachmentUrl,
materials: detail.materials,
personnelList: detail.personnelList,
equipmentList: detail.equipmentList,
commitment: {
...detail.commitment,
...commitmentValues,
legalRepSignatureUrl: Array.isArray(commitmentValues?.legalRepSignatureUrl) ? commitmentValues?.legalRepSignatureUrl?.map((file) => file.url).join(",") : commitmentValues?.legalRepSignatureUrl,
legalRepSignatureUrl: Array.isArray(commitmentValues?.legalRepSignatureUrl) ? commitmentValues?.legalRepSignatureUrl[0]?.url : commitmentValues?.legalRepSignatureUrl,
},
};
}

View File

@ -1,4 +1,4 @@
import React, { useState, useEffect } from "react";
import React, { useState, useEffect, useMemo } from "react";
import { Button, Descriptions, Table, Tag, Tabs, Select, Modal, Space, Image } from "antd";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { NS_QUAL_REVIEW } from "~/enumerate/namespace";
@ -25,6 +25,17 @@ const FilingTabs = ({
}) => {
const [viewId, setViewId] = useState("");
const attachmentList = useMemo(() => {
const v = detail.attachmentUrl;
if (!v) return [];
try {
const p = JSON.parse(v);
return Array.isArray(p) ? p : [];
} catch {
return [];
}
}, [detail.attachmentUrl]);
const baseCols = [
@ -62,7 +73,7 @@ const FilingTabs = ({
{ title: "操作", width: 80, render: (_, record) => <PreviewUrlButton url={record.attachmentUrl}>预览</PreviewUrlButton> },
];
const commitment= detail.commitment || {};
const commitment= detail.commitment || {};
const items = [
{
@ -87,6 +98,20 @@ const FilingTabs = ({
<Descriptions.Item label="专职安全评价师数量">{detail.fulltimeEvaluatorCount}</Descriptions.Item>
<Descriptions.Item label="注册安全工程师数量">{detail.registeredEngineerCount}</Descriptions.Item>
<Descriptions.Item label="单位基本情况介绍" span={2}>{detail.unitIntro}</Descriptions.Item>
<Descriptions.Item label="附件" span={2}>
{attachmentList.length
? attachmentList.map((item, i) => {
const isImg = /\.(png|jpe?g|gif|bmp|webp|svg)(\?.*)?$/i.test(item.url || "");
return isImg ? (
<Image key={item.url || i} src={item.url} style={{ width: 100, height: 100, objectFit: "cover", marginRight: 8 }} />
) : (
<PreviewUrlButton key={item.url || i} url={item.url}>
{item.name || `附件${i + 1}`}
</PreviewUrlButton>
);
})
: "-"}
</Descriptions.Item>
</Descriptions>
),
},