import React, { useState, useEffect } from 'react'; import { ProDescriptions } from '@ant-design/pro-components'; import { Divider, Button, Tooltip } from 'antd'; import { doFetch } from '@/utils/doFetch'; import { MoreOutlined } from '@ant-design/icons'; import { useRequest } from 'ahooks'; import DesItem from './DesItem'; export default (props) => { const { type, detailpath, params, baseRow, basecolumns, title, titleno } = props; const [hidden, sethidden] = useState(false); const request = useRequest(async () => { let res = await doFetch({ url: detailpath, params }); if (res?.data?.dataList?.length > 4) { sethidden(true); } return res?.data || {}; }); // 维修工单 const Wxgd = () => { // return ( // <> // <DesItem // dataSource={request?.data?.dataList[0]} // title="报修信息" // hidden={true} // index="0" // // navhidden={false} // /> // {request?.data?.dataList?.splice(1).map((it, index) => { // return ( // <> // <DesItem // type="wxgd" // dataSource={it} // index={index + 2} // hidden={true} // navhidden={false} // /> // </> // ); // })} // </> // ); return hidden ? ( <> <DesItem dataSource={request?.data?.dataList[0]} title="基本信息" hidden={true} type="wxgd" index="0" // navhidden={false} /> <DesItem type="wxgd" dataSource={request?.data?.dataList[1]} index={'2'} hidden={true} navhidden={false} /> <div className="fault-detail" style={{ paddingTop: 30, paddingBottom: 30 }}> <Tooltip title="点击展开"> <Button type="primary" shape="circle" icon={<MoreOutlined />} onClick={() => { sethidden(false); }} /> </Tooltip> </div> <DesItem type="wxgd" dataSource={request?.data?.dataList[request?.data?.dataList?.length - 2]} index={request?.data?.dataList?.length - 1} hidden={true} navhidden={false} /> <DesItem type="wxgd" dataSource={request?.data?.dataList[request?.data?.dataList?.length - 1]} index={request?.data?.dataList?.length} hidden={true} navhidden={false} /> </> ) : ( <> <DesItem dataSource={request?.data?.dataList[0]} title="报修信息" hidden={true} index="0" // navhidden={false} /> {request?.data?.dataList?.splice(1).map((it, index) => { return ( <> <DesItem type="wxgd" dataSource={it} index={index + 2} hidden={true} navhidden={false} /> </> ); })} </> ); }; // 追踪工单 const Zzgd = () => { return hidden ? ( <> <DesItem dataSource={request?.data?.dataList[0]} title="基本信息" hidden={true} type="zzgd" index="0" // navhidden={false} /> <DesItem type="zzgd" dataSource={request?.data?.dataList[1]} index={'2'} hidden={true} navhidden={false} /> <div className="fault-detail" style={{ paddingTop: 30, paddingBottom: 30 }}> <Tooltip title="点击展开"> <Button type="primary" shape="circle" icon={<MoreOutlined />} onClick={() => { sethidden(false); }} /> </Tooltip> </div> <DesItem type="zzgd" dataSource={request?.data?.dataList[request?.data?.dataList?.length - 2]} index={request?.data?.dataList?.length - 1} hidden={true} navhidden={false} /> <DesItem type="zzgd" dataSource={request?.data?.dataList[request?.data?.dataList?.length - 1]} index={request?.data?.dataList?.length} hidden={true} navhidden={false} /> </> ) : ( <> <DesItem dataSource={request?.data?.dataList[0]} title="基本信息" type="zzgd" hidden={true} index="0" // navhidden={false} /> {request?.data?.dataList?.splice(1).map((it, index) => { return ( <> <DesItem type="zzgd" dataSource={it} index={index + 2} hidden={true} navhidden={false} /> </> ); })} </> ); }; // 外协工单 const Wgd = () => { return ( <> <DesItem dataSource={request?.data?.dataList[0]} title="基本信息" hidden={true} type="wgd" index="0" navhidden={true} /> {request?.data?.dataList?.splice(1).map((it, index) => { console.log('11', it); return ( <> <DesItem type="wgd" dataSource={it} index={index + 2} hidden={true} navhidden={false} /> </> ); })} </> ); }; const selectType = { gzbx: ( <DesItem type="gzbx" index="0" dataSource={request?.data?.data} title="基本信息" hidden={true} navhidden={true} /> ), wxgd: <Wxgd />, zzgd: <Zzgd />, wgd: <Wgd />, }; return ( <> <div> <h2 style={{ fontWeight: 700 }}> {title}:{titleno} </h2> </div> <ProDescriptions columns={basecolumns} dataSource={baseRow} /> <Divider /> {selectType[type]} </> ); };