dataTool/src/components/ProjectDetailForm.js

249 lines
13 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import React, {useEffect} from 'react';
import {Modal, Form, Input, Select, Switch, Button} from 'antd';
import dayjs from 'dayjs';
const {Option} = Select;
const {TextArea} = Input;
const ProjectDetailForm = ({visible, project, onCancel, onSave}) => {
const [form] = Form.useForm();
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);
}
}, [form, project, visible]);
const handleSave = () => {
form.validateFields()
.then(values => {
onSave({...project, ...values});
})
.catch(info => {
console.log('验证失败:', info);
});
};
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>
);
};
export default ProjectDetailForm;