List.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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 FlowModal from './FlowModal';
  5. import router from 'umi/router';
  6. import Link from 'umi/link';
  7. const { Option } = Select;
  8. function List(props) {
  9. const { userList, list, dispatch, projectList, permission, currentUser, loading } = props;
  10. const [visible, setVisible] = useState(false);
  11. const columns = [
  12. {
  13. title: '流程名称',
  14. dataIndex: 'Name',
  15. },
  16. {
  17. title: '所属项目',
  18. dataIndex: 'ProjectId',
  19. render: projectId => {
  20. let project = projectList.find(item => item.id == projectId);
  21. if (project) return `${project.project_name}(${project.project_full_code})`;
  22. },
  23. },
  24. {
  25. title: '操作',
  26. render: (item, index) => (
  27. <>
  28. <a onClick={() => router.push(`/home/flow/${item.Id}`)}>查看</a>
  29. </>
  30. ),
  31. },
  32. ];
  33. const onOk = values => {
  34. console.log(values);
  35. dispatch({
  36. type: 'flow/addFlow',
  37. payload: values,
  38. callback: () => {
  39. setVisible(false);
  40. dispatch({
  41. type: 'flow/queryDefaultBindClassify',
  42. payload: {
  43. project_id: values.project_id,
  44. },
  45. });
  46. },
  47. });
  48. };
  49. useEffect(() => {
  50. dispatch({
  51. type: 'flow/queryFlowList',
  52. });
  53. dispatch({
  54. type: 'flow/queryProject',
  55. });
  56. // dispatch({
  57. // type: 'flow/getRoleList',
  58. // });
  59. // dispatch({
  60. // type: 'flow/queryDingTemplateList',
  61. // });
  62. }, []);
  63. return (
  64. <div>
  65. <div style={{ marginBottom: 20 }}>
  66. <Button type="primary" style={{ marginRight: 20 }} onClick={() => setVisible(true)}>
  67. 新增工作流
  68. </Button>
  69. {(permission['func-01-point-bom-flow'] || currentUser.IsSuper) && (
  70. <Link to="/home/audit-list">
  71. <Button type="primary">审批流管理</Button>
  72. </Link>
  73. )}
  74. </div>
  75. <Table
  76. rowKey="Id"
  77. loading={loading['flow/queryFlowList']}
  78. dataSource={list.reverse()}
  79. columns={columns}
  80. />
  81. <FlowModal
  82. loading={loading['flow/addFlow']}
  83. visible={visible}
  84. projectList={projectList}
  85. onCancel={() => setVisible(false)}
  86. onOk={onOk}
  87. />
  88. </div>
  89. );
  90. }
  91. export default connect(({ user, flow, loading }) => ({
  92. userList: user.list,
  93. permission: user.currentUser.Permission,
  94. currentUser: user.currentUser,
  95. list: flow.flowList,
  96. projectList: flow.projectList,
  97. loading: loading.effects,
  98. }))(List);