import { ConnectState } from "@/models/global"; import { ActionType, FormInstance, ProTable } from "@ant-design/pro-components"; import { useRef, useState } from "react"; import { connect } from "umi"; import moment from "moment"; import { Button, Drawer, Image, message, Popconfirm, Space } from "antd"; import { handleGetServerpartDDL } from "@/components/leftSelectTree/service"; import LeftSelectTree from "@/components/leftSelectTree/leftSelectTree"; import RecordDetail from "../record/components/recordDetail"; import { handleDeleteRecord, handleGetRecordTreeList, handleUpdateExtend } from "../record/service"; const ErrorRecord: React.FC<{ currentUser: any }> = (props) => { const { currentUser } = props const actionRef = useRef(); const formRef = useRef(); const recordDetailRef = useRef() // 显示的附件数据 const [showImgList, setShowImgList] = useState([]) // 预览图片 const [imagePreviewVisible, setImagePreviewVisible] = useState(false) // 预览的索引 const [previewIndex, setPreviewIndex] = useState(0) // 当行数据 const [currentRow, setCurrentRow] = useState() // 显示详情抽屉 const [showDetail, setShowDetail] = useState(false) // 判断是否点了出现的是异常处理的抽屉 const [showAbnormal, setShowAbnormal] = useState(false) // 树相关的属性和方法 const [selectedId, setSelectedId] = useState() const [columnsStateMap, setColumnsStateMap] = useState({ score: { show: false } }) const [collapsible, setCollapsible] = useState(false) const columns: any = [ // { // title: "统计月份", // dataIndex: "search_months", // hideInTable: true, // valueType: "date", // initialValue: moment().subtract('1', 'd'), // fieldProps: { // picker: "month", // format: 'YYYY-MM', // } // }, // { // title: "统计日期", // dataIndex: "staticDate", // hideInTable: true, // valueType: "dateRange", // initialValue: [moment().startOf('M'), moment()], // search: { // transform: (value: any) => { // return { // startTime: moment(value[0]).format('YYYY-MM-DD'), // endTime: moment(value[1]).format('YYYY-MM-DD') // }; // }, // }, // fieldProps: { // picker: "day", // format: 'YYYY-MM-DD', // } // }, // { // title: "服务区", // dataIndex: "serverPartId", // hideInTable: true, // valueType: "select", // request: async () => { // const req = { // ProvinceCode: currentUser?.provinceCode, // StatisticsType: 1000 // } // const data = await handleGetServerpartDDL(req) // return data // } // }, // { // title: "巡查类型", // dataIndex: "inspectionType", // hideInTable: true, // valueType: "select", // valueEnum: { // "1": '异常', // "0": "正常" // } // }, { title:
服务区名称
, dataIndex: "serverPartName", hideInSearch: true, width: 200, ellipsis: true, render: (_, record) => { return record?.type === 'district' || record?.type === 'servicePart' ? record?.name : record?.template ? record?.template.title : "-" // return record?.name ? record?.name : record?.template && record?.serverPartName ? record?.serverPartName : "-" } }, // { // title:
站点名称
, // dataIndex: "placeName", // hideInSearch: true, // width: 150, // ellipsis: true, // render: (_, record) => { // return record?.template && record?.template.title ? record?.template.title : "-" // } // }, { title:
巡查类型
, dataIndex: "placeName", hideInSearch: true, width: 100, align: 'center', ellipsis: true, render: (_, record) => { // let res: any = record.extend ? JSON.parse(record.extend) : "-" return {record.situation === 1 ? '异常' : record.situation === 0 ? '正常' : ''} } }, { title:
巡查内容
, dataIndex: "uploadResult", hideInSearch: true, width: 200, ellipsis: true, render: (_, record) => { // let extendObj = record?.extend ? JSON.parse(record?.extend) : "" return record?.uploadResult ? record?.uploadResult : "-" } }, { title:
巡查结果
, dataIndex: "uploadResult", hideInSearch: true, width: 350, ellipsis: true, render: (_, record) => { let str: string = '' if (record?.questionResponses && record?.questionResponses.length > 0) { record?.questionResponses.forEach((item: any, index: number) => { let anwers: string = '' if (item.choiceResponse && item.choiceResponse.length > 0) { item.choiceResponse.forEach((subItem: string, subIndex: number) => { anwers += `${subIndex > 0 ? ',' : ''}${subItem}` }) } str += `${index > 0 ? ',' : ''}考核内容:${item.question.title},考核结果:${anwers}` }) } return str || '' } }, { title:
巡查总分
, dataIndex: "score", hideInSearch: true, valueType: 'digit', width: 100, align: 'center', }, { title:
处理状态
, dataIndex: "errorStatus", // hideInSearch: true, width: 100, valueType: 'select', valueEnum: { "0": "待处理", "1": "处理中", "2": "已处理", }, ellipsis: true, align: 'center', render: (_, record) => { // let res: any = record.extend ? JSON.parse(record.extend) : "-" return record?.situation !== 0 ? { record.errorStatus === 0 ? "待处理" : record.errorStatus === 1 ? "处理中" : record.errorStatus === 2 ? "已处理" : "-" } : "" } }, { title:
巡查时间
, dataIndex: "createdAt", hideInSearch: true, width: 150, ellipsis: true, align: 'center', render: (_, record) => { return record?.createdAt ? moment(record?.createdAt).format('YYYY-MM-DD HH:mm:ss') : '-' } }, { title:
巡查人
, dataIndex: "userName", hideInSearch: true, width: 100, ellipsis: true, align: 'center', }, { title:
现场图片
, dataIndex: "placeName", hideInSearch: true, width: 150, ellipsis: true, align: 'center', render: (_, record) => { // let extendObj = record?.extend ? JSON.parse(record?.extend) : "" let imgList = record.imgsList return imgList && imgList.length > 0 ? : "-" } }, { title: '操作', dataIndex: 'option', align: 'center', fixed: "right", hideInSearch: true, width: 150, render: (_: any, record: any) => { // let res: any = record.extend ? JSON.parse(record.extend) : "-" return record?.type === 'district' || record?.type === 'servicePart' ? '' : { record.situation === 1 ? { setCurrentRow({ ...record, }) setShowAbnormal(true) setShowDetail(true) } }>异常处理 : < a onClick={() => { setCurrentRow({ ...record, }) setShowDetail(true) }}> 详情 } {/* { deleteRecord(record?.id) }} > 删除 */} } } ] // 删除记录 const deleteRecord = async (id: any) => { const data = await handleDeleteRecord({ id: id }) if (data.Result_Code === 100) { message.success(data.Result_Desc) actionRef.current?.reload() } } return (
{ return `${record?.id}-${record?.code}-${record?.templateId}` }} scroll={{ x: "100%", y: 'calc(100vh - 400px)' }} headerTitle={考核异常记录} search={{ span: 6 }} request={async (params) => { // selectedId console.log('params', params); console.log('selectedId', selectedId); if (!(selectedId && selectedId.length > 0)) { return } const req: any = { serverPartIds: selectedId && selectedId.length > 0 ? selectedId : [], // startTime: params?.search_months ? `${moment(params?.search_months).startOf('M').format('YYYY-MM-DD')}` : "", // endTime: params?.search_months ? `${moment(params?.search_months).endOf('M').format('YYYY-MM-DD')}` : "", // serverPartId: params?.serverPartId ? params?.serverPartId : undefined, extend: params?.errorStatus ? [{ key: "situation", value: '1' }, { key: "errorStatus", value: params?.errorStatus } ] : [{ key: "situation", value: '1' }] } console.log('req', req); const data = await handleGetRecordTreeList(req) console.log('data', data); if (data && data.length > 0) { return { data, success: true } } return { data: [], success: true } }} toolbar={{ }} columnsState={{ value: columnsStateMap, onChange: setColumnsStateMap, }} >
{ showImgList && showImgList.length > 0 &&
{ setImagePreviewVisible(vis) }, current: previewIndex }}> { showImgList.map((n) => ) }
} { setShowDetail(false) setShowAbnormal(false) }} open={showDetail} destroyOnClose width={'60%'} footer={showAbnormal && currentRow?.errorStatus !== 2 ?
: false } >
) } export default connect(({ user }: ConnectState) => ({ currentUser: user.currentUser }))(ErrorRecord);