2024-12-16 17:46:34 +08:00
|
|
|
|
import React, { useEffect, useState, useMemo, useRef } from 'react';
|
|
|
|
|
|
import { Form, Button, Input, Row, Upload, Col, Table, DatePicker, InputNumber, message, Image, Modal, Typography, Popconfirm } from 'antd';
|
2024-12-11 17:56:03 +08:00
|
|
|
|
import { formItemLayout, btnItemLayout } from '../../../components/crud/FormLayoutProps';
|
|
|
|
|
|
import apiurl from '../../../service/apiurl';
|
|
|
|
|
|
import FileUpload from '../../../components/fileUpload';
|
|
|
|
|
|
import NormalSelect from '../../../components/Form/NormalSelect';
|
2024-12-16 17:46:34 +08:00
|
|
|
|
import { httppost2 } from '../../../utils/request';
|
2024-12-11 17:56:03 +08:00
|
|
|
|
import "./index.less"
|
|
|
|
|
|
import moment from 'moment';
|
|
|
|
|
|
const { RangePicker } = DatePicker
|
|
|
|
|
|
const url = "http://223.75.53.141:9102/test.by-lyf.tmp"
|
|
|
|
|
|
|
|
|
|
|
|
const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => {
|
|
|
|
|
|
const types = [
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "技术难题",
|
|
|
|
|
|
value: 0
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
label: "安全事故",
|
|
|
|
|
|
value: 1
|
2024-12-16 17:46:34 +08:00
|
|
|
|
}, {
|
2024-12-11 17:56:03 +08:00
|
|
|
|
label: "质量问题",
|
|
|
|
|
|
value: 2
|
|
|
|
|
|
},
|
|
|
|
|
|
]
|
|
|
|
|
|
const [form] = Form.useForm();
|
|
|
|
|
|
const [fileIds, setFileIds] = useState()
|
|
|
|
|
|
const onfinish = (values) => {
|
2024-12-16 17:46:34 +08:00
|
|
|
|
const userId = localStorage.getItem('userId')
|
|
|
|
|
|
const userName = localStorage.getItem('userName')
|
|
|
|
|
|
values.createUserId = userId;
|
|
|
|
|
|
values.createUserName = userName;
|
|
|
|
|
|
values.startTime = values.tm ? moment(values.tm[0]).format("YYYY-MM-DD 00:00:00") : '';
|
|
|
|
|
|
values.endTime = values.tm ? moment(values.tm[1]).format("YYYY-MM-DD 00:00:00") : '';
|
2024-12-11 17:56:03 +08:00
|
|
|
|
if (mode === 'edit') {
|
|
|
|
|
|
values.files = fileIds;
|
|
|
|
|
|
values.id = record.id;
|
2024-12-16 17:46:34 +08:00
|
|
|
|
onEdit(apiurl.sbwh.ssgcjl.edit, values)
|
2024-12-11 17:56:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (mode === 'save') {
|
|
|
|
|
|
values.files = fileIds
|
2024-12-16 17:46:34 +08:00
|
|
|
|
onSave(apiurl.sbwh.ssgcjl.save, values)
|
2024-12-11 17:56:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-12-17 17:42:56 +08:00
|
|
|
|
const [faList, setFaList] = useState([])
|
2024-12-16 17:46:34 +08:00
|
|
|
|
// 获取方案list
|
2024-12-17 17:42:56 +08:00
|
|
|
|
const getFaList = async () => {
|
2024-12-16 17:46:34 +08:00
|
|
|
|
try {
|
|
|
|
|
|
const res = await httppost2(apiurl.sbwh.ssgcjl.list)
|
2024-12-17 17:42:56 +08:00
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
setFaList(res.data.map(item => ({label:item.planName,value:item.id})));
|
|
|
|
|
|
}
|
2024-12-16 17:46:34 +08:00
|
|
|
|
} catch (error) {
|
|
|
|
|
|
console.log(error);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
if (mode != 'save') {
|
|
|
|
|
|
let dataSo = record.startTime && record.endTime ?
|
|
|
|
|
|
[moment(record.startTime), moment(record.endTime)] : ''
|
|
|
|
|
|
form.setFieldValue("tm", dataSo)
|
|
|
|
|
|
}
|
|
|
|
|
|
}, [record, mode])
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
2024-12-17 17:42:56 +08:00
|
|
|
|
getFaList()
|
2024-12-16 17:46:34 +08:00
|
|
|
|
}, [])
|
|
|
|
|
|
|
2024-12-11 17:56:03 +08:00
|
|
|
|
return (
|
|
|
|
|
|
<>
|
|
|
|
|
|
<Form
|
|
|
|
|
|
form={form}
|
|
|
|
|
|
{...formItemLayout}
|
|
|
|
|
|
onFinish={onfinish}
|
|
|
|
|
|
initialValues={record}
|
|
|
|
|
|
>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Row>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
<Col span={12}>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Form.Item
|
|
|
|
|
|
label="项目名称"
|
|
|
|
|
|
name="projectName"
|
|
|
|
|
|
rules={[{ required: true }]}
|
|
|
|
|
|
>
|
|
|
|
|
|
<Input disabled={mode === 'view'} style={{ width: '100%' }} allowClear />
|
|
|
|
|
|
</Form.Item>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
</Col>
|
|
|
|
|
|
<Col span={12}>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Form.Item
|
|
|
|
|
|
label="方案名称"
|
2024-12-17 17:42:56 +08:00
|
|
|
|
name="planId"
|
2024-12-16 17:46:34 +08:00
|
|
|
|
rules={[{ required: true }]}
|
|
|
|
|
|
>
|
2024-12-17 17:42:56 +08:00
|
|
|
|
<NormalSelect
|
|
|
|
|
|
allowClear
|
|
|
|
|
|
disabled={mode === 'view'}
|
|
|
|
|
|
style={{ width: "100%" }}
|
|
|
|
|
|
options={faList}
|
|
|
|
|
|
/>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
</Form.Item>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
</Col>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
|
|
|
|
|
|
</Row>
|
|
|
|
|
|
<Row>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
<Col span={12}>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Form.Item
|
|
|
|
|
|
label="过程名称"
|
|
|
|
|
|
name="processName"
|
2024-12-11 17:56:03 +08:00
|
|
|
|
rules={[{ required: true }]}
|
2024-12-16 17:46:34 +08:00
|
|
|
|
>
|
|
|
|
|
|
<Input disabled={mode === 'view'} style={{ width: '100%' }} allowClear />
|
|
|
|
|
|
</Form.Item>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
</Col>
|
|
|
|
|
|
<Col span={12}>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Form.Item
|
|
|
|
|
|
label="完成情况(%)"
|
|
|
|
|
|
name="completeStatus"
|
|
|
|
|
|
>
|
|
|
|
|
|
<InputNumber min={0} max={100} disabled={mode === 'view'} style={{ width: '100%' }} allowClear />
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
</Row>
|
|
|
|
|
|
<Row>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
<Col span={12}>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Form.Item
|
|
|
|
|
|
label="问题类型"
|
|
|
|
|
|
name="problemType"
|
|
|
|
|
|
>
|
|
|
|
|
|
<NormalSelect
|
2024-12-11 17:56:03 +08:00
|
|
|
|
allowClear
|
2024-12-16 17:46:34 +08:00
|
|
|
|
disabled={mode === 'view'}
|
2024-12-11 17:56:03 +08:00
|
|
|
|
style={{ width: "100%" }}
|
|
|
|
|
|
options={types}
|
2024-12-16 17:46:34 +08:00
|
|
|
|
/>
|
|
|
|
|
|
</Form.Item>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
</Col>
|
|
|
|
|
|
<Col span={12}>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Form.Item
|
|
|
|
|
|
label="问题发生时间"
|
|
|
|
|
|
name="tm"
|
|
|
|
|
|
getValueFromEvent={(e, dateString) => dateString}
|
|
|
|
|
|
getValueProps={(value) => {
|
|
|
|
|
|
return {
|
|
|
|
|
|
value: value ? [value[0] && moment(value[0]), value[1] && moment(value[1])] : undefined
|
|
|
|
|
|
};
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<RangePicker disabled={mode === 'view'} format={'YYYY-MM-DD'} style={{ width: '100%' }} allowClear />
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
</Col>
|
|
|
|
|
|
</Row>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Row>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
<Col span={24}>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Form.Item
|
|
|
|
|
|
label="问题描述"
|
|
|
|
|
|
name="problemDesc"
|
|
|
|
|
|
labelCol={{ span: 3 }}
|
|
|
|
|
|
wrapperCol={{ span: 19 }}
|
|
|
|
|
|
>
|
|
|
|
|
|
<Input.TextArea disabled={mode === 'view'} style={{ width: '100%', minHeight: '100px' }} allowClear />
|
|
|
|
|
|
</Form.Item>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
</Col>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
</Row>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<Row>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
<Col span={24}>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
<Form.Item
|
|
|
|
|
|
label="附件"
|
|
|
|
|
|
name="fieldId"
|
|
|
|
|
|
labelCol={{ span: 3 }}
|
|
|
|
|
|
wrapperCol={{ span: 19 }}
|
2024-12-11 17:56:03 +08:00
|
|
|
|
>
|
|
|
|
|
|
<FileUpload
|
2024-12-16 17:46:34 +08:00
|
|
|
|
uploadUrl={apiurl.sbwh.ssgcjl.uploadUrl}
|
|
|
|
|
|
downloadUrl={apiurl.sbwh.ssgcjl.downloadUrl}
|
2024-12-11 17:56:03 +08:00
|
|
|
|
mode={mode}
|
|
|
|
|
|
files={record?.files}
|
|
|
|
|
|
setFileIds={setFileIds}
|
|
|
|
|
|
/>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
</Form.Item>
|
2024-12-11 17:56:03 +08:00
|
|
|
|
</Col>
|
|
|
|
|
|
</Row>
|
|
|
|
|
|
{
|
2024-12-16 17:46:34 +08:00
|
|
|
|
mode === 'view' ? null : (
|
|
|
|
|
|
<>
|
|
|
|
|
|
<Form.Item {...btnItemLayout}>
|
|
|
|
|
|
<Button type="primary" htmlType="submit">
|
|
|
|
|
|
{mode === 'save' ? '提交' : '修改'}
|
|
|
|
|
|
</Button>
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
</>
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
2024-12-11 17:56:03 +08:00
|
|
|
|
</Form>
|
2024-12-16 17:46:34 +08:00
|
|
|
|
|
2024-12-11 17:56:03 +08:00
|
|
|
|
</>
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export default ModalForm;
|