AuditList.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import React, { useState, useEffect } from 'react';
  2. import { Form, Select, Button, Table, Input, Checkbox, Divider } from 'antd';
  3. import { connect } from 'dva';
  4. import AuditNodeModal from './AuditNodeModal';
  5. import AuditModal from './AuditModal';
  6. import styles from './Audit.less';
  7. import router from 'umi/router';
  8. const { Option } = Select;
  9. function Audit(props) {
  10. const { userList, list = [], dispatch, loading } = props;
  11. const [form] = Form.useForm();
  12. const [visible, setVisible] = useState({
  13. audit: false,
  14. auditNode: false,
  15. });
  16. const columns = [
  17. {
  18. title: '审批流名称',
  19. dataIndex: ['list', 'name'],
  20. },
  21. {
  22. title: '操作',
  23. render: (item, index) => (
  24. <>
  25. <a
  26. onClick={() => {
  27. setCurrentNode(item);
  28. }}
  29. >
  30. 编辑
  31. </a>
  32. </>
  33. ),
  34. },
  35. ];
  36. const handleAuditOk = values => {
  37. console.log(values);
  38. dispatch({
  39. type: 'flow/addAudit',
  40. payload: values,
  41. callback: () => {
  42. changeVisible('audit', false);
  43. },
  44. });
  45. };
  46. const changeVisible = (type, visible) => {
  47. setVisible({
  48. ...visible,
  49. [type]: visible,
  50. });
  51. };
  52. const setCurrentNode = item => {
  53. if (item?.list) localStorage.setItem('currentAudit', JSON.stringify(item.list));
  54. dispatch({
  55. type: 'flow/save',
  56. payload: {
  57. current: item.list,
  58. },
  59. });
  60. router.push('/home/audit');
  61. };
  62. useEffect(() => {
  63. dispatch({
  64. type: 'flow/queryAuditList',
  65. });
  66. }, []);
  67. return (
  68. <div>
  69. <div className={styles.box}>
  70. <Button onClick={() => router.go(-1)}>返回</Button>
  71. <Form layout="inline" name="basic" autoComplete="off" form={form}>
  72. <Form.Item>
  73. <Button onClick={() => changeVisible('audit', true)} type="primary">
  74. 新建流程
  75. </Button>
  76. </Form.Item>
  77. </Form>
  78. </div>
  79. <Table
  80. loading={loading['flow/queryAuditList']}
  81. rowKey="id"
  82. dataSource={list}
  83. columns={columns}
  84. />
  85. <AuditModal
  86. loading={loading['flow/addAudit']}
  87. visible={visible.audit}
  88. onOk={handleAuditOk}
  89. onCancel={() => changeVisible('audit', false)}
  90. />
  91. </div>
  92. );
  93. }
  94. export default connect(({ user, flow, loading }) => ({
  95. userList: user.list,
  96. list: flow.auditList,
  97. loading: loading.effects,
  98. }))(Audit);