四好公路
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.9 KiB

3 years ago
import React, { useEffect, useState } from 'react';
import { connect } from 'react-redux';
import '../style.less';
import { getDepMessage, getReportStatistic } from "../actions/infor"
import InForTable from '../components/inforTable';
3 years ago
import UserModal from '../components/infor/details';
3 years ago
const superagent = require('superagent');
const infor = (props) => {
const { dispatch, user} = props
const [data, setData] = useState()
const [modalVisible, setModalVisible] = useState(false);
const [modalRecord, setModalRecord] = useState();
useEffect(() => {
// dispatch(getDepMessage())
dispatch(getReportStatistic())
setData(props)
}, []);
3 years ago
//打开弹窗
const openModal = (type, record) => {
setModalVisible(true);
// setModalType(type);
if (type == 'edit') {
setModalRecord(record);
} else {
setModalRecord(null);
}
}
3 years ago
//批量导出
const exports = (ids,counts) => {
// console.log(user);
let reportIds = [];
if (ids.length)
reportIds = ids
else
reportIds = (counts || {}).ids || [];
superagent.post('/_report/http')
.send({ id: reportIds.map(i => Number(i)) }).end((err, res) => {
const resTextIs = res.text.split('/').pop()
window.open(
'/_api/' +
`attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`)
})
}
return (
3 years ago
<> <InForTable data={data} openModal={openModal} exports={exports} />
<UserModal
visible={modalVisible}
onVisibleChange={setModalVisible}
modalRecord={modalRecord}
/></>
3 years ago
)
}
function mapStateToProps(state) {
const {auth}=state
return {
user: auth.user,
}
}
export default connect(mapStateToProps)(infor);