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) => (
{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 : '-'}
内部丢失