import React from 'react'; import Taro from '@tarojs/taro'; import { View } from '@tarojs/components'; import { Field, Cell, CellGroup } from '@antmjs/vantui'; import LocType from '@/components/LocType'; import IssueType from '@/components/IssueType'; import OrgPicker from '@/components/OrgPicker'; import DatePicker from '@/components/DatePicker'; import Map from '@/components/map'; import Uploader from '@/components/Uploader/index'; import { getDateStr } from '@/utils/date'; import mapIcon from '@/assets/icons/marker.png'; import { getTaOrgIssueByIssueId } from '@/services/taorgissue'; import { PROCESS_END } from '@/utils/biz'; import IssueStatus from './IssueStatus'; const today = new Date(); export default (props) => { const { issueId, issue, readOnly, showOrg, showExpireDate, renderFields, renderAction } = props; const fmRef = React.useRef({ typeId: undefined, typeName: undefined, locId: undefined, locName: undefined, location: undefined, addr: undefined, content: undefined, attachList: [], }); const [formData, setFormData] = React.useState(fmRef.current); const [showLocType, setShowLocType] = React.useState(false); const [showIssueType, setShowIssueType] = React.useState(false); const [showOrgPicker, setShowOrgPicker] = React.useState(false); const [showDatePicker, setShowDatePicker] = React.useState(false); const [orgIssue, setOrgIssue] = React.useState(); // 办结时间 const endDate = React.useMemo(() => { if (!formData) return null; // 如果单子办结了就是实际办结时间 // 否则就是预计办结时间 return formData.processNode == PROCESS_END ? formData.endDate : formData.expireDate; }, [formData]); const onLocTypeChange = (_, it) => { const data = { ...fmRef.current, locId: it.typeId, locName: it.name, } fmRef.current = data; setFormData(data); setShowLocType(false); } const onIssueTypeChange = (_, it) => { const data = { ...fmRef.current, typeId: it.typeId, typeName: it.name, } fmRef.current = data; setFormData(data); setShowIssueType(false); } const onOrgChange = (_, it) => { const data = { ...fmRef.current, orgId: it.orgId, orgName: it.name, } fmRef.current = data; setFormData(data); setShowOrgPicker(false); } const onDateChange = (dt) => { const date = getDateStr(dt); const data = { ...fmRef.current, expireDate: date, } fmRef.current = data; setFormData(data); setShowDatePicker(false); } const setFieldChange = (field, value) => { const data = { ...fmRef.current, [field]: value, } fmRef.current = data; setFormData(data); } React.useEffect(() => { if (issue) { fmRef.current = issue; setFormData(issue); // console.log('---------issue-------->', issue) getTaOrgIssueByIssueId(issue.issueId, issue.orgId).then(r => { setOrgIssue(r); }); } }, [issue]); // console.log('showIssueType', showIssueType) // console.log('readOnly', readOnly) return ( setShowLocType(false)} onChange={onLocTypeChange} /> setShowIssueType(false)} onChange={onIssueTypeChange} /> setShowOrgPicker(false)} onChange={onOrgChange} /> setShowDatePicker(false)} onChange={onDateChange} /> {/* 地图只在新增的时候允许修改 */} !formData.location && setFieldChange('location', e)} /> { issue?.issueId && ( ) } !readOnly && setShowLocType(true)} /> setFieldChange('addr', e.detail)} /> { readOnly && ( ) } !readOnly && setShowIssueType(true)} /> setFieldChange('content', e.detail)} /> setFieldChange('attachList', e)} /> } /> { (showOrg || showExpireDate) && ( { showOrg && ( !readOnly && setShowOrgPicker(true)} /> ) } { showExpireDate && ( !readOnly && setShowDatePicker(true)} /> ) } ) } { orgIssue && issue?.processNode == PROCESS_END && ( } /> ) } { renderFields ? renderFields( formData, { setFieldChange, setFormData, showOrgPicker, setShowOrgPicker, } ) : null } { renderAction ? ( {renderAction(formData)} ) : null } ) }