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
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);
|