dataTool/src/components/ProjectDetailForm.js

249 lines
13 KiB
JavaScript
Raw Normal View History

2025-05-29 17:08:47 +08:00
import React, {useEffect} from 'react';
import {Modal, Form, Input, Select, Switch, Button} from 'antd';
2025-04-01 17:15:19 +08:00
import dayjs from 'dayjs';
2025-05-29 17:08:47 +08:00
const {Option} = Select;
const {TextArea} = Input;
2025-04-01 17:15:19 +08:00
2025-05-29 17:08:47 +08:00
const ProjectDetailForm = ({visible, project, onCancel, onSave}) => {
const [form] = Form.useForm();
2025-04-01 17:15:19 +08:00
2025-05-29 17:08:47 +08:00
useEffect(() => {
if (project && visible) {
// 格式化日期字段为字符串
const formattedProject = {...project};
['actual_start_time', 'planned_completion_time', 'completion_time', 'next_review_time'].forEach(field => {
if (formattedProject[field]) {
formattedProject[field] = dayjs(formattedProject[field]).format('YYYY-MM-DD');
}
});
form.setFieldsValue(formattedProject);
2025-04-01 17:15:19 +08:00
}
2025-05-29 17:08:47 +08:00
}, [form, project, visible]);
2025-04-01 17:15:19 +08:00
2025-05-29 17:08:47 +08:00
const handleSave = () => {
form.validateFields()
.then(values => {
onSave({...project, ...values});
})
.catch(info => {
console.log('验证失败:', info);
});
};
2025-04-01 17:15:19 +08:00
2025-05-29 17:08:47 +08:00
return (
<Modal
title="项目详情"
open={visible}
width={800}
onCancel={onCancel}
bodyStyle={{
maxHeight: '60vh',
overflowY: 'scroll',
msOverflowStyle: 'none', // IE, Edge
scrollbarWidth: 'none' // Firefox
}}
footer={[
<Button key="cancel" onClick={onCancel}>
取消
</Button>,
<Button key="save" type="primary" onClick={handleSave}>
保存
</Button>
]}
>
<Form
form={form}
layout="vertical"
>
<Form.Item label="单位" name="unit">
<Input/>
</Form.Item>
<Form.Item label="项目编号" name="project_number">
<Input/>
</Form.Item>
<Form.Item label="安全编码" name="safety_code">
<Input/>
</Form.Item>
<Form.Item label="大项工程名称" name="major_project_name">
<Input/>
</Form.Item>
<Form.Item label="单项工程名称" name="sub_project_name">
<Input/>
</Form.Item>
<Form.Item label="在施工程作业范围" name="construction_scope">
<TextArea rows={2}/>
</Form.Item>
<Form.Item label="工程规模" name="project_scale">
<Input/>
</Form.Item>
<Form.Item label="安全总监" name="safety_director">
<Input/>
</Form.Item>
<Form.Item label="建设单位" name="construction_unit">
<Input/>
</Form.Item>
<Form.Item label="监理单位" name="supervision_unit">
<Input/>
</Form.Item>
<Form.Item label="施工单位" name="construction_company">
<Input/>
</Form.Item>
<Form.Item label="工程位置" name="project_location">
<Input/>
</Form.Item>
<Form.Item label="实际开工时间" name="actual_start_time">
<Input placeholder="YYYY-MM-DD"/>
</Form.Item>
<Form.Item label="计划竣工时间" name="planned_completion_time">
<Input placeholder="YYYY-MM-DD"/>
</Form.Item>
<Form.Item label="完成时间" name="completion_time">
<Input placeholder="YYYY-MM-DD"/>
</Form.Item>
<Form.Item label="下次梳理时间" name="next_review_time">
<Input placeholder="YYYY-MM-DD"/>
</Form.Item>
<Form.Item label="参建人数" name="participants_count">
<Input type="number"/>
</Form.Item>
<Form.Item label="新班组进场数量" name="new_team_count">
<Input type="number"/>
</Form.Item>
<Form.Item label="新人进场数量" name="new_person_count">
<Input type="number"/>
</Form.Item>
<Form.Item label="带班人姓名、电话" name="leader_info">
<Input/>
</Form.Item>
<Form.Item label="下周作业计划" name="next_week_plan">
<TextArea rows={2}/>
</Form.Item>
<Form.Item label="下周8+2工况内容" name="next_week_condition">
<TextArea rows={2}/>
</Form.Item>
<Form.Item label="工期是否紧张" name="is_schedule_tight" valuePropName="checked">
<Switch/>
</Form.Item>
<Form.Item label="是否存在账外事" name="has_off_book_matters" valuePropName="checked">
<Switch/>
</Form.Item>
<Form.Item label="当前风险等级" name="current_risk_level">
<Select>
<Option value="高风险">高风险</Option>
<Option value="中风险">中风险</Option>
<Option value="低风险">低风险</Option>
</Select>
</Form.Item>
<Form.Item label="当前风险判断理由" name="risk_judgment_reason">
<TextArea rows={2}/>
</Form.Item>
<Form.Item label="隐患提示/工作要求" name="risk_tips">
<TextArea rows={2}/>
</Form.Item>
<Form.Item>
<div>
<p style={{fontSize: '20px', fontWeight: 'bold'}}>人的变化</p>
<Form.Item label="新进班组数量" name="new_team">
<Input type="number"/>
</Form.Item>
<Form.Item label="新进班组骨干数量" name="new_members">
<Input type="number"/>
</Form.Item>
<Form.Item label="新进高空人员数量" name="new_high_altitude">
<Input type="number"/>
</Form.Item>
<Form.Item label="新进一般人员数量" name="new_hired_general">
<Input type="number"/>
</Form.Item>
</div>
</Form.Item>
<Form.Item>
<div>
<p style={{fontSize: '20px', fontWeight: 'bold'}}>机的变化</p>
<Form.Item label="新的作业内容" name="new_homework_content">
<Select allowClear placeholder="请选择新的作业内容">
<Option value="同一班组作业类型调整">同一班组作业类型调整</Option>
<Option value="在运变电站新增作业">在运变电站新增作业</Option>
<Option value="工程转序">工程转序</Option>
</Select>
</Form.Item>
<Form.Item label="改变作业方法" name="change_homework_method">
<Select allowClear placeholder="请选择改变作业方法">
<Option value="同一部位基础开挖由机械变为人工">同一部位基础开挖由机械变为人工</Option>
<Option
value="同一部位铁塔组立由起重机变为抱杆">同一部位铁塔组立由起重机变为抱杆</Option>
<Option value="同一跨越物改变跨越方式">同一跨越物改变跨越方式</Option>
<Option value="同一放线段改变放线方式">同一放线段改变放线方式</Option>
</Select>
</Form.Item>
</div>
</Form.Item>
<Form.Item>
<div>
<p style={{fontSize: '20px', fontWeight: 'bold'}}>环境的变化</p>
<Form.Item label="地理环境的变化" name="changes_geographical">
<Select allowClear placeholder="请选择地理环境的变化">
<Option value="新增带电线路(引起近电作业)">新增带电线路引起近电作业</Option>
<Option value="新增带电线路(未引起近电作业)">新增带电线路未引起近电作业</Option>
<Option
value="新增跨越物(新投入使用铁路、高速、电力线等线性工程)">新增跨越物新投入使用铁路高速电力线等线性工程</Option>
</Select>
</Form.Item>
<Form.Item label="气象环境的变化" name="changes_meteorological">
<Select allowClear placeholder="请选择气象环境的变化">
<Option value="降雪预警">降雪预警</Option>
<Option value="降雨预警">降雨预警</Option>
<Option value="大风预警">大风预警</Option>
<Option value="高温预警">高温预警</Option>
<Option value="低温预警">低温预警</Option>
</Select>
</Form.Item>
<Form.Item label="社会环境的变化" name="changes_social">
<Select allowClear placeholder="请选择社会环境的变化">
<Option value="外部协调引起阻工(属地协调不畅)">外部协调引起阻工属地协调不畅</Option>
<Option value="物资供应滞后">物资供应滞后</Option>
</Select>
</Form.Item>
</div>
</Form.Item>
<Form.Item>
<div>
<p style={{fontSize: '20px', fontWeight: 'bold'}}>管理的变化</p>
<Form.Item label="管理要求的变化" name="changes_management">
<Select allowClear placeholder="请选择管理要求的变化">
<Option value="投产计划提前(工期紧张)">投产计划提前工期紧张</Option>
<Option value="特殊时段作业">特殊时段作业</Option>
<Option value="停电计划调整">停电计划调整</Option>
</Select>
</Form.Item>
<Form.Item label="作业计划的变化" name="changes_homework_plan">
<Select allowClear placeholder="请选择作业计划的变化">
<Option value="原作业计划未按期执行,顺延至今">原作业计划未按期执行顺延至今</Option>
<Option value="下周作业计划无法执行,临时变更">下周作业计划无法执行临时变更</Option>
</Select>
</Form.Item>
<Form.Item label="管理人员的变化" name="changes_management_personnel">
<Select allowClear placeholder="请选择管理人员变化">
<Option value="施工项目部关键人员变化">施工项目部关键人员变化</Option>
<Option value="监理项目部关键人员变化">监理项目部关键人员变化</Option>
<Option value="业主项目部关键人员变化">业主项目部关键人员变化</Option>
<Option value="施工单位主要负责人、分管领导调整">施工单位主要负责人分管领导调整</Option>
</Select>
</Form.Item>
</div>
</Form.Item>
<Form.Item label="备注" name="remarks">
<TextArea rows={2}/>
</Form.Item>
</Form>
</Modal>
);
2025-04-01 17:15:19 +08:00
};
export default ProjectDetailForm;