/*
* @Author: your name
* @Date: 2021-07-26 10:13:13
* @LastEditTime: 2021-08-19 15:57:26
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /TracerMethodology_PC/src/pages/UserMana/index.js
*/
// import { PlusOutlined } from '@ant-design/icons';
import { Button,Form} from 'antd';
import React, { useState, useRef } from 'react';
import { PageContainer } from '@ant-design/pro-layout';
import ProTable from '@ant-design/pro-table';
import ProForm,{ ModalForm, ProFormText, ProFormSelect,ProFormDatePicker} from '@ant-design/pro-form';
import DrawerContent from './components/DrawerContent';
import CAUpload from '@/components/CAUpload/index';
import { getIncomeCostDataImport,addIncomeCostDataImport,cancelIncomeCostDataImport,getIncomeCostDataImportErrList } from './service';
import moment from 'moment';
import 'moment/locale/zh-cn';
import locale from 'antd/es/date-picker/locale/zh_CN';
const IncomeCostDataImport = () => {
const [currentTime, setCurrentTime] = useState(moment().format('YYYY-MM'));
const columns = [
{
title: '所属年份',
key: 'dateTime',
hideInTable: true,
dataIndex: 'dateTime',
renderFormItem: (item, { type, defaultRender, formItemProps, fieldProps, ...rest }, form) => {
if (type === 'form') {
return null;
}
return (
{ return value.format('YYYY-MM') }, locale: locale,onChange:(moment)=>{setCurrentTime(moment.format('YYYY-MM'))} }} name="dateTime" />
)
},
},
{
title: '文件编号',
dataIndex: 'id',
key: 'id',
hideInSearch: true,
},
{
title: '导入类型',
dataIndex: 'fileType',
key: 'fileType',
hideInSearch: true,
},
{
title: '文件名称',
dataIndex: 'fileName',
key: 'fileName',
},
{
title: '所属年月',
dataIndex: 'dateTime',
key: 'dateTime',
hideInSearch: true,
render:(_,record)=>{
return `${record.dateYear}-${record.dateMonth}`
}
},
{
title: '导入时间',
dataIndex: 'dateTime',
key: 'dateTime',
hideInSearch: true,
},
{
title: '总数',
dataIndex: 'totalAmount',
key: 'totalAmount',
hideInSearch: true,
},
{
title: '导入数',
dataIndex: 'successAmount',
key: 'successAmount',
hideInSearch: true,
},
{
title: '导入人员',
dataIndex: 'userName',
key: 'userName',
hideInSearch: true,
},
{
title: '下载',
dataIndex: 'fileUrl',
key: 'fileUrl',
hideInSearch: true,
render: url =>{
const userData = localStorage.getItem('userData');
const {token} = JSON.parse(userData);
return 下载
}
},
{
title: '操作',
dataIndex: 'option',
valueType: 'option',
render: (_, record) =>{
const {errStatus,rollbackStatus} = record;
return [
]
}
},
];
const drawerTableColumns = [
{
title: '行数',
dataIndex: 'total',
key: 'total',
width:'10%',
hideInSearch: true,
},
{
title: '错误信息',
dataIndex: 'errMessage',
key: 'errMessage',
hideInSearch: true,
}
]
const [createModalVisible, handleModalVisible] = useState(false);
const actionRef = useRef();
const ref = useRef(); //新增表单
const importFormRef = useRef(); //导入表单
const [currentRow, setCurrentRow] = useState(null);
const [drawerVisible,setDrawerVisible] = useState(false);
const [formData,setFormData] = useState(null);
/**
*
* @param {Number} errStatus
*/
const optionBtnGrouphandle = async (errStatus,record)=>{
console.log({errStatus,record});
setCurrentRow(record);
if(errStatus != 1){
const {id} = record;
const resp = await cancelIncomeCostDataImport({id});
const {status} = resp;
if(status==200){
if (actionRef.current) {
actionRef.current.reload();
}
}
}else{
setDrawerVisible(true);
}
}
//获取列表
const getList = async (params = {}, sort, filter) => {
const {dateTime} = params
const res = await getIncomeCostDataImport({...params,dateTime:dateTime?currentTime:''});
// console.log({res});
return {
data: res.data.list,
total: res.data.totalCount,
success: res.success,
};
};
//自定义上传回调
const customRequestCallback = (file)=>{
// console.log({file});
const formData = new FormData();
formData.set('file',file);
setFormData(formData);
if(importFormRef.current){
importFormRef.current.setFieldsValue({
'formData':formData
});
importFormRef?.current?.submit();
}
}
const ModalContent = ()=>{
return (
{
const formData = importFormRef.current.getFieldValue('formData');
const {fileType,dateTime} = values;
formData.set('fileType',fileType);
formData.set('dateTime',dateTime);
const resp = await addIncomeCostDataImport({formData},{
'content-type':'multipart/form-data',
})
const {status} = resp;
if(status==200){
if (actionRef.current) {
actionRef.current.reload();
}
}
}}
submitter={{
render:false
}}
>
)
}
const getDrawerTableList = async ()=>{
// console.log({currentRow});
const {id} = currentRow;
const resp = await getIncomeCostDataImportErrList({id});
const {status,data} = resp;
if(status==200){
return {
data: data,
success:true,
};
}
}
// useEffect(()=>{
// CARequest('/api/costAccount/hosptail/list');
// },[]);
return (
[
{ }}
type='dialog'
content={}
// token={'123'}
customRequestCallback={customRequestCallback}
/>
]}
pagination={{
pageSize: 10,
}}
search={{
defaultCollapsed: false,
labelWidth: 'auto',
}}
/>
{
if (ref.current) {
ref.current.resetFields();
}
handleModalVisible(bool);
}}
onFinish={async (value) => {
const { name, isHospital, id, sign } = value;
const success = await addDistrict(isHospital == 0 ? {
name, isHospital, sign
} : {
name, isHospital, parentId: id
});
// console.log({ success });
if (success) {
handleModalVisible(false);
if (actionRef.current) {
actionRef.current.reload();
}
}
}}
>
{setDrawerVisible(bool);} }
renderListFunc={getDrawerTableList}
onFinishFunc={async (value, selectedRowKeys, selectedRows) => {
}}
/>
);
};
export default IncomeCostDataImport;