safety-eval-service-frontend/src/pages/Container/SafetyEvalBusiness/ProjectFlow/RiskAnalysisContent.js

368 lines
13 KiB
JavaScript
Raw Normal View History

2026-07-20 15:03:26 +08:00
import React from "react";
import {
Tag,
Button,
Card,
Row,
Col,
Table,
Form,
Input,
Select,
Radio,
DatePicker,
Flex,
} from "antd";
const { TextArea } = Input;
const RiskAnalysisContent = () => {
const [form] = Form.useForm();
return (
<div>
<div className="pf-permission">
<Tag color="blue" className="pf-tag">
市场部经办人 / 市场部经理
</Tag>
<span className="pf-desc">
市场部组织前置条件调查和风险分析相关职能部门参与市场部经理依据分析结果决定是否签订技术服务合同
</span>
</div>
<Card
title="安全评价风险分析记录表受控编号QAPJ-CX-1-JL01"
styles={{ header: { textAlign: "center" } }}
>
<Form
form={form}
layout="vertical"
initialValues={{
projectName: "华安化工园区安全预评价",
evalType: "安全预评价",
industry: "危险化学品",
scope: "华安化工园区建设项目及配套生产装置、公用工程、安全设施。",
inScope: "yes",
overview:
"重庆华安安全科技有限公司拟建设化工园区配套项目,项目位于重庆市渝北区。评价范围包括主要生产装置、储存设施、公用工程及配套安全设施,周边环境和外部安全防护距离需进一步核查。",
hazard:
"火灾、爆炸、中毒和窒息、化学灼伤、触电、机械伤害、车辆伤害、高处坠落等。",
staffQualified: "yes",
needExpert: "no",
ability: "yes",
feasible: "yes",
economic: "yes",
riskLevel: "middle",
contract: "sign",
participants: [
{
name: "张建国",
dept: "市场部",
opinion: "同意承接,按中度风险组织评价。",
},
{
name: "李明华",
dept: "评价部",
opinion: "人员专业和评价周期能够满足要求。",
},
],
}}
>
<Row gutter={16}>
<Col span={12}>
<Form.Item label="风险分析时间" name="analysisDate">
<DatePicker className="pf-w-full" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item label="评价项目名称" name="projectName">
<Input />
</Form.Item>
</Col>
</Row>
<Row gutter={16}>
<Col span={12}>
<Form.Item label="评价类别" name="evalType">
<Select>
<Select.Option value="安全预评价">安全预评价</Select.Option>
<Select.Option value="安全验收评价">
安全验收评价
</Select.Option>
<Select.Option value="安全现状评价">
安全现状评价
</Select.Option>
</Select>
</Form.Item>
</Col>
<Col span={12}>
<Form.Item label="所属行业" name="industry">
<Input placeholder="请输入项目所属行业" />
</Form.Item>
</Col>
</Row>
<Form.Item label="评价范围" name="scope">
<TextArea
rows={2}
placeholder="明确本项目安全评价对象、装置、区域及委托范围"
/>
</Form.Item>
<Form.Item label="是否在公司资质业务范围内" name="inScope">
<Radio.Group>
<Radio value="yes"></Radio>
<Radio value="no"></Radio>
</Radio.Group>
</Form.Item>
<Card
type="inner"
size="small"
title="一、被评价单位基本概况"
className="pf-section"
>
<Form.Item name="overview">
<TextArea
rows={4}
placeholder="填写项目简介、投资规模、地理位置、周边环境、主要设施及客户要求"
/>
</Form.Item>
</Card>
<Card
type="inner"
size="small"
title="二、项目行业风险特性分析"
className="pf-section"
>
<Form.Item name="hazard">
<TextArea
rows={3}
placeholder="分析项目所属行业的主要危险、有害因素"
/>
</Form.Item>
<div className="pf-hint-blue">
应结合项目行业特点地理位置周边环境和评价类别填写非常规项目应通过风险分析会议形成记录
</div>
</Card>
<Card
type="inner"
size="small"
title="三、评价机构符合情况"
className="pf-section"
>
<Form.Item
label="1评价人员专业构成是否满足该项目的评价需求"
name="staffQualified"
>
<Radio.Group>
<Radio value="yes">满足</Radio>
<Radio value="no">不满足</Radio>
</Radio.Group>
</Form.Item>
<Form.Item label="2是否需要聘请相关技术专家" name="needExpert">
<Radio.Group>
<Radio value="no">不需要</Radio>
<Radio value="yes">需要</Radio>
</Radio.Group>
</Form.Item>
<Form.Item
label="3是否有能力承担该项目的评价风险"
name="ability"
>
<Radio.Group>
<Radio value="yes"></Radio>
<Radio value="no"></Radio>
</Radio.Group>
</Form.Item>
<Form.Item label="4项目的可行性分析" name="feasible">
<Radio.Group>
<Radio value="yes">可行</Radio>
<Radio value="no">不可行</Radio>
</Radio.Group>
</Form.Item>
<Form.Item label="5项目的经济性分析" name="economic">
<Radio.Group>
<Radio value="yes">有经济效益</Radio>
<Radio value="no">无经济效益</Radio>
</Radio.Group>
</Form.Item>
</Card>
<Card
type="inner"
size="small"
title="风险分析结论"
className="pf-section"
>
<Form.Item label="风险程度" name="riskLevel">
<Radio.Group>
<Radio value="low">低度</Radio>
<Radio value="middle">中度</Radio>
<Radio value="high">高度</Radio>
</Radio.Group>
</Form.Item>
<div className="pf-risk-note">
中度化工金属非金属矿山金属冶炼陆地油气开采等行业评价项目
</div>
<Form.Item label="合同签订" name="contract">
<Radio.Group>
<Radio value="sign">签合同</Radio>
<Radio value="reject">不签合同</Radio>
</Radio.Group>
</Form.Item>
<div className="pf-hint-blue">
系统建议当前条件具备签约基础最终结论由市场部经理批准
</div>
</Card>
<Card
type="inner"
size="small"
title="参与风险分析人员签字"
>
<Form.List name="participants">
{(fields, { add, remove }) => (
<>
<Table
dataSource={fields}
columns={[
{
title: "姓名",
dataIndex: "name",
render: (_, field) => {
const { key, ...fieldProps } = field;
return (
<Form.Item
{...fieldProps}
name={[field.name, "name"]}
noStyle
>
<Input placeholder="姓名" />
</Form.Item>
);
},
},
{
title: "部门/岗位",
dataIndex: "dept",
render: (_, field) => {
const { key, ...fieldProps } = field;
return (
<Form.Item
{...fieldProps}
name={[field.name, "dept"]}
noStyle
>
<Input placeholder="部门/岗位" />
</Form.Item>
);
},
},
{
title: "分析意见",
dataIndex: "opinion",
render: (_, field) => {
const { key, ...fieldProps } = field;
return (
<Form.Item
{...fieldProps}
name={[field.name, "opinion"]}
noStyle
>
<Input placeholder="填写分析意见" />
</Form.Item>
);
},
},
{
title: "签字状态",
render: (_, field) => (
<Button size="small">发起APP签字</Button>
),
},
{
title: "操作",
render: (_, field) =>
fields.length > 1 ? (
<Button
type="link"
danger
size="small"
onClick={() => remove(field.name)}
>
删除
</Button>
) : null,
},
]}
rowKey={(_, index) => index}
pagination={false}
/>
<Button
type="dashed"
size="small"
style={{ marginTop: 8 }}
onClick={() => add({ name: "", dept: "", opinion: "" })}
>
添加参与人员
</Button>
</>
)}
</Form.List>
</Card>
</Form>
</Card>
<Card title="管理办法判定提示" size="small" className="pf-rule-card pf-section">
<Row gutter={16}>
<Col span={8}>
<Card size="small" type="inner">
<div>
<strong>低度风险</strong>
</div>
<div className="pf-risk-card">
小型露天采石场加油站以及机构熟悉且开展过类似评价工作的常规项目
</div>
</Card>
</Col>
<Col span={8}>
<Card size="small" type="inner">
<div>
<strong>中度风险</strong>
</div>
<div className="pf-risk-card">
化工生产金属非金属矿山金属冶炼陆地石油和天然气开采行业的评价项目
</div>
</Card>
</Col>
<Col span={8}>
<Card size="small" type="inner">
<div>
<strong>高度风险</strong>
</div>
<div className="pf-risk-card">
机构未开展过的非常规项目原则上组织专项风险分析会议必要时总经理参加
</div>
</Card>
</Col>
</Row>
<div className="pf-reject-note">
<strong>不签合同重点条件</strong>
超出资质范围无法提供合法有效资料客户提出违法或不合理要求经济性达不到预期评价时间不能满足机构与被评价对象存在投资咨询设计监理物资供应等利益关系
</div>
</Card>
<Flex justify="flex-end" gap={8}>
<Button>暂存</Button>
<Button>打印记录表</Button>
<Button type="primary">完成分析并保存</Button>
</Flex>
</div>
);
};
export default RiskAnalysisContent;