import { Button, Form, Input, Modal, Select, DatePicker,message } from 'antd' import React, { useState, useEffect } from 'react' import { connect } from 'react-redux' import Uploads from '$components/Uploads' const { RangePicker } = DatePicker import moment from 'moment' const AddReportRulesModal = props => { const [form] = Form.useForm() const { user, visible, cancelHandle, actions, dispatch, onOk, modalData,typeList,structAll} = props const [systemList, setSystemList] = useState([{ value: 1, label: '动力系统' },{ value: 2, label: '网络系统' }]) const { patrolManage } = actions const [type, setType] = useState(0) const [system,setSystem]=useState(0)//system const [isShow, setIsShow] = useState(false) const [structlist, setStructlist] = useState([])//结构物列表(只包括id和name) // const [startTime,setStartTime]=useState('') // const [endTime,setEndTime]=useState('') useEffect(()=>{ if(modalData){ setType(modalData.type) } },[modalData]) const typeChange = e => { setType(e) form.setFieldValue('system', '') form.setFieldValue('structure', undefined) } useEffect(()=>{ if(type){ if(type==1){ const list = structAll.filter(v => v.type === '管廊')?.map(k => { return { value: k.id, label: k.name } }) setStructlist(list) } } },[type]) useEffect(()=>{ //过滤管廊类型的数据 const list = structAll.filter(v => v.type === '管廊')?.map(k => { return { value: k.id, label: k.name } }) setStructlist(list) },[]) useEffect(() => { // setPic(modalData?.reportpic) form.setFieldsValue({ structure: null, pic: null, name: null, type: null, timeRange: null, }) form.setFieldsValue({ structure: modalData?.structure, name: modalData?.name, type: modalData?.type, system:modalData?.system, pic: modalData?.reportpic?.map(item=>{return {storageUrl:item}}), timeRange: modalData?.startTime ? [moment(modalData?.startTime), moment(modalData?.endTime)] : [], }) }, [visible]) const timeChane = e => {} const okHandler = () => { form .validateFields() .then(values => { if(values.pic?.length<4){ message.warning(`最少选择4张图片`) return } const params = { id: modalData?.id, name: values.name, type: values.type, system:values.system, structure: Array.isArray(values.structure) ? [...values.structure] : [values.structure], endTime: moment(values.timeRange[1]).endOf('day').format('YYYY-MM-DD HH:mm:ss'), startTime: moment(values.timeRange[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss'), reportpic: values?.pic[0]?.name ? values?.pic.map(u => u.storageUrl) : modalData?.reportpic, } dispatch(patrolManage.postReport(params)).then(res => { if (res.success) { // form.resetFields() cancelHandle() onOk() setType(null) } }) }) .catch(info => { console.log('Validate Failed:', info) }) } //use // const structChange=(e)=>{ // setStructObj(structAll.find(item=>item.id==e)) // } // useEffect(()=>{ // if(strcutObj){ // if(strcutObj.subType.includes('供配电系统')||strcutObj.subType.includes('防雷')){ // setSystemList([{ value: 1, label: '动力系统' }]) // setIsShow(true) // }else if(strcutObj.subType.includes('指挥中心')||strcutObj.subType.includes('安防')) // setSystemList([{ value: 2, label: '网络系统' }]) // setIsShow(true) // } // },[strcutObj]) const systemChange=(e)=>{ setSystem(e) // setType(null) form.setFieldValue('structure', undefined) if(e==1){ const list=structAll.filter(v => v.type === '管廊')?.filter(item=>item.subType.includes('供配电系统')||item.subType.includes('防雷')) if(list&&list.length){ setStructlist( list?.map(item=>{ return {value: item.id, label: item.name} })) }else{ setStructlist([]) } }else if(e==2){ const list=structAll.filter(v => v.type === '管廊')?.filter(item=>item.subType.includes('指挥中心')||item.subType.includes('安防')) if(list&&list.length){ setStructlist( list?.map(item=>{ return {value: item.id, label: item.name} })) }else{ setStructlist([]) } } } return ( <> { cancelHandle() setIsShow(false) setType(0) form.setFieldsValue({ structure: null, pic: null, name: null, type: null, timeRange: null, }) // form.resetFields() }} onOk={okHandler}>
{type===2? :''} { let nextV = [] for (let s of modalData?.reportpic || []) { if (s) { nextV.push({ url: s, storageUrl: s, }) } } return nextV })()} />
) } function mapStateToProps(state) { const { auth, global } = state return { user: auth.user, actions: global.actions, } } export default connect(mapStateToProps)(AddReportRulesModal)