import React, { useState, useEffect, useRef } from 'react'; import { Form, Input, Button, Table, Row, Col, Select, Modal, DatePicker, Space, message } from 'antd'; import moment from "moment"; import "moment/locale/zh-cn" import '@common/common.less'; import './index.less' import apiObj from '@api/index'; import EditBlock from './editBlock'; import BlockContext from './block-context'; import { getValueFromEvent, disabledDate, getDaysBetween } from '@utils/index' const { post, api, xPost } = apiObj; const { Option } = Select; function BlockLossManage() { useEffect(() => { getBlockLossPage(); blockLossTypeGather(date) }, []); const [blockList, setBlockList] = useState([]); const [total, setTotal] = useState(0); const [title, setTitle] = useState(0); const [visible, setVisible] = useState(false); const [size, setSize] = useState(15); const [current, setCurrent] = useState(1); const [type, setType] = useState(null); const [blockData, setBlockData] = useState({}); const [blockDetail, setBlockDetail] = useState(null);//详情数据 const [params, setParams] = useState({ pages: 1, current: 1, size: 15, asc: ['status'], desc: ['gmt_modified'], startDate: getCurrentDataFront().split('/').join('-') + ' 00:00:00', endDate: getCurrentData().split('/').join('-') + ' 23:59:59' }); const [form] = Form.useForm(); let data = { pages: 1, current: 1, size: size, asc: ['status'], desc: ['gmt_modified'], startDate: getCurrentDataFront().split('/').join('-') + ' 00:00:00', endDate: getCurrentData().split('/').join('-') + ' 23:59:59' } let date = { startDate: getCurrentDataFront().split('/').join('-') + ' 00:00:00', endDate: getCurrentData().split('/').join('-') + ' 23:59:59' } //表格数据 function getBlockLossPage(param) { post(api.getBlockLossPage, param || params).then((res) => { if (res.data.code === 200) { const data = res.data.data; setBlockList(data.records); setTotal(data.total) } }) } //丢失量分类汇总 function blockLossTypeGather(param) { post(api.blockLossTypeGather, param).then((res) => { if (res.data.code === 200) { const data = res.data.data; setBlockData(data) } }) } //修改 function showModal(title, row, type) { setVisible(true) setBlockDetail(row) setTitle(title) setType(type) } function onSizeChange(current, pageSize) { params.current = current params.size = pageSize setSize(pageSize) setCurrent(current) setParams(params) getBlockLossPage() } function changePage(page, pageSize) { params.current = page params.size = pageSize setParams(params) setCurrent(page) getBlockLossPage() } //返回 function cancel() { setVisible(false) setBlockDetail(null) } function userChange(type) { if (type == 2) { params.current = 1 setParams(params) setCurrent(1) getBlockLossPage(); } setVisible(false) blockLossTypeGather({ startDate: params.startDate, endDate: params.endDate }) setBlockDetail(null) } const onFinish = (value) => { value.startDate = moment(value.startDate).format('YYYY-MM-DD 00:00:00'); value.endDate = moment(value.endDate).format('YYYY-MM-DD 23:59:59'); if (value.startDate > value.endDate) { message.warning('开始时间不能大于结束时间'); return } else if (getDaysBetween(value.startDate, value.endDate) > 364) { message.warning('开始时间与结束时间相差不能超过一年'); return } const param = { ...data, ...value, } setCurrent(1) setParams(param) getBlockLossPage(param); blockLossTypeGather({ startDate: value.startDate, endDate: value.endDate }) }; const onReset = () => { setCurrent(1) setParams(data) form.resetFields(); getBlockLossPage(data); blockLossTypeGather(date) }; function getCurrentDataFront() { let time = new Date((new Date() - 30 * 24 * 3600 * 1000)).toLocaleDateString() return time } // 结束时间 function getCurrentData() { let time = new Date().toLocaleDateString() return time } const columns = [ { title: '序号', dataIndex: 'index', render: (text, record, index) => (current - 1) * params.size + index + 1 }, { title: '住院序号', dataIndex: 'behospitalCode', key: 'behospitalCode' }, { title: '文书编号', dataIndex: 'recId', key: 'recId', render: (text, record) => { return record.recId || '-'; } }, { title: '文书标题', dataIndex: 'recTitle', key: 'recTitle', render: (text, record) => { return record.recTitle || '-'; } }, { title: '丢失原因', dataIndex: 'lossCause', key: 'lossCause', render: (text, record) => { return record.lossCause ? record.lossCause.length > 15 ? {record.lossCause.substring(0, 15) + '...'} : record.lossCause : '-'; } }, { title: '丢失类型', dataIndex: 'lossType', key: 'lossType', render: (text, record) => { return ({record.lossType == 0 ? '文书丢失' : record.lossType == 1 ? '病案首页丢失' : record.lossType == 2 ? '患者信息丢失' : '-'}); } }, { title: '丢失途径', dataIndex: 'lossWay', key: 'lossWay', render: (text, record) => { return ({record.lossWay == 0 ? '外部丢失' : record.lossWay == 1 ? '内部丢失' : '-'}); } }, { title: '更新时间', dataIndex: 'gmtModified', key: 'gmtModified', render: (text, record) => { return record.gmtModified || '-'; } }, { title: '状态', key: 'status', render: (text, record) => { return ({record.status == 0 ? '已丢失' : record.status == 1 ? '已恢复' : '-'}); } }, { title: '核查结果', key: 'isAudited', render: (text, record) => { return ({record.isAudited == 0 ? '核查未通过' : record.isAudited == 1 ? '核查通过' : record.isAudited == 2 ? '未核查' : '-'}); } }, { title: '操作', dataIndex: 'key', render: (text, record) => ( showModal('修改病历数据块丢失明细', record, 3)}>修改 ) } ]; return (
-

病历数据块丢失明细

{blockData.hisNum || blockData.hisNum == 0 ? blockData.hisNum : '-'}

HIS

{blockData.logNum || blockData.logNum == 0 ? blockData.logNum : '-'}

接口日志

{blockData.realNum || blockData.realNum == 0 ? blockData.realNum : '-'}

实际

{blockData.allLossNum || blockData.allLossNum == 0 ? blockData.allLossNum : '-'}

合计丢失

{blockData.outRecNum || blockData.outRecNum == 0 ? blockData.outRecNum : '-'}

文书丢失

{blockData.outHomePageNum || blockData.outHomePageNum == 0 ? blockData.outHomePageNum : '-'}

病案首页丢失

{blockData.outCodeNum || blockData.outCodeNum == 0 ? blockData.outCodeNum : '-'}

患者信息丢失

{blockData.outLossNum || blockData.outLossNum == 0 ? blockData.outLossNum : '-'}

外部丢失

{blockData.inRecNum || blockData.inRecNum == 0 ? blockData.inRecNum : '-'}

文书丢失

{blockData.inHomePageNum || blockData.inHomePageNum == 0 ? blockData.inHomePageNum : '-'}

病案首页丢失

{blockData.inCodeNum || blockData.inCodeNum == 0 ? blockData.inCodeNum : '-'}

患者信息丢失

{blockData.inLossNum || blockData.inLossNum == 0 ? blockData.inLossNum : '-'}

内部丢失

record.id} pagination={{ pageSize: size, size: 'small', current: current, showSizeChanger: true, pageSizeOptions: ['15', '30', '60', '120'], showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条数据`, onShowSizeChange: (current, pageSize) => onSizeChange(current, pageSize), // 改变每页数量时更新显示 onChange: (page, pageSize) => changePage(page, pageSize),//点击页码事件 total: total }} /> {visible && blockDetail ? : ''} ) } export default BlockLossManage;