山西督察-superintend-distribute-web react
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.
 
 
 

226 lines
5.4 KiB

import React, { useState, useEffect } from 'react';
import { connect } from 'umi';
import { Button, Table, Popconfirm, message } from 'antd';
import { CzqkList } from '@/utils/constants';
import FormModal from './FormModal';
import styles from './index.less';
const CZBtn = (props) => {
const {
id,
sysToken,
fetchAJCZtable,
fetchAddAJCZ,
fetchDeleteAJCZ,
fetchDownloadFile,
fetchOrgTreeData,
fetchOrgDataByName,
CZLX,
onlyRead,
loading,
} = props;
const [visible, setVisible] = useState(false);
const [tableData, setTableData] = useState([]);
// const [CZLX, setCZLX] = useState([]);
const handleOpenModal = () => {
// fetchDictCZLX(sysToken).then((res) => {
// if (res && res.resCode === 0) {
// setCZLX(res.data);
// setVisible(true);
// }
// });
setVisible(true);
};
const handleCloseModal = () => {
setVisible(false);
};
const handleGetTable = () => {
fetchAJCZtable({ id, sysToken }).then((res) => {
setTableData(res);
});
};
const handleDelete = (id) => {
fetchDeleteAJCZ({ id, sysToken }).then((res) => {
if (res && res.resCode === 0) {
message.success(res.resMsg);
handleGetTable();
} else {
message.error(res.resMsg);
}
});
};
useEffect(() => {
handleGetTable();
// fetchCzlx();
}, []);
// 下载文件
const handleDownload = (file) => {
const params = {
mc: file.wjMc,
path: file.wjPath,
url: file.wjUrl,
};
fetchDownloadFile({ params, sysToken });
};
const getCZLXMc = (text) => {
const p = [];
CZLX?.forEach((item) => {
if (item.id === Number(text)) {
p.push(item.mc);
}
});
return p[0];
};
const columns = [
{
title: '处置类型',
dataIndex: 'czlx',
key: '',
render: (text) => {
return <span>{getCZLXMc(text)}</span>;
},
},
{
title: '处置情况',
dataIndex: 'czqk',
width: '10%',
render: (text) => CzqkList.filter((i) => i.value === String(text))[0]?.text,
},
{
title: '情况说明',
dataIndex: 'qksm',
width: '15%',
},
{
title: '姓名',
dataIndex: 'czMc',
key: 'czMc',
},
{
title: '身份证号',
dataIndex: 'czSfz',
key: 'czSfz',
},
{
title: '警号',
dataIndex: 'czJh',
key: 'czJh',
},
{
title: '单位',
dataIndex: 'czDw',
key: 'czDw',
},
{
title: '法律文书',
dataIndex: 'flwsMc',
key: 'flwsMc',
render: (text, record) => {
return record?.wjList?.map((file, index) => {
return (
<a key={file.id} onClick={() => handleDownload(file)}>
{file.wjMc}
{index === record?.wjList?.length - 1 ? '' : ';'}
</a>
);
});
},
},
{
title: '操作',
key: 'action',
render: (text, record) => {
if (onlyRead) {
return (
<a type="text" disabled={onlyRead}>
删除
</a>
);
} else {
return (
<Popconfirm
placement="left"
title="确定删除吗?"
onConfirm={() => handleDelete(record.id)}
okText="确定"
cancelText="取消"
>
<a type="text" disabled={onlyRead}>
删除
</a>
</Popconfirm>
);
}
},
},
];
return (
<div>
<div className={styles.titleAndButton}>
<div className={styles.title}>处置明细</div>
{!onlyRead && (
<div className={styles.button}>
<Button onClick={handleOpenModal} type="primary" disabled={onlyRead} loading={loading}>
添加处置信息
</Button>
</div>
)}
</div>
<div>
<Table
rowKey="id"
columns={columns}
dataSource={tableData || []}
pagination={false}
scroll={{ x: 1400 }}
/>
</div>
{visible && (
<FormModal
id={id}
sysToken={sysToken}
visible={visible}
CZLXList={CZLX}
handleClose={handleCloseModal}
getTable={handleGetTable}
fetchAddAJCZ={fetchAddAJCZ}
fetchOrgTreeData={fetchOrgTreeData}
fetchOrgDataByName={fetchOrgDataByName}
loading={loading}
/>
)}
</div>
);
};
const mapStateToProps = ({ doing, global, loading }) => ({
...doing,
...global,
loading: loading.effects['doing/fetchAddAJCZ'] || false,
});
const mapDispatchToProps = (dispatch) => ({
fetchAJCZtable(params) {
return dispatch({ type: 'doing/fetchAJCZtable', payload: { ...params } });
},
fetchAddAJCZ(params) {
return dispatch({ type: 'doing/fetchAddAJCZ', payload: { ...params } });
},
fetchDeleteAJCZ(params) {
return dispatch({ type: 'doing/fetchDeleteAJCZ', payload: { ...params } });
},
fetchDownloadFile(params) {
return dispatch({ type: 'doing/fetchDownloadFile', payload: { ...params } });
},
fetchOrgTreeData(params) {
return dispatch({ type: 'global/fetchOrgTreeData', payload: { ...params } });
},
fetchOrgDataByName(params) {
return dispatch({ type: 'global/fetchOrgDataByName', payload: { ...params } });
},
});
export default connect(mapStateToProps, mapDispatchToProps)(CZBtn);