lists.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. import { connect } from 'dva/index';
  2. import React, { Component, Fragment } from 'react';
  3. import { Form, Spin } from 'antd';
  4. import {
  5. dragSldTableColumn,
  6. sldHandlePaginationData,
  7. list_com_page_size_10,
  8. sldLlineRtextAddGoodsAddMargin,
  9. sldComLanguage,
  10. sldtbaleOpeBtnText,
  11. } from '@/utils/utils';
  12. import Link from 'umi/link';
  13. import global from '@/global.less';
  14. import StandardTable from '@/components/StandardTable';
  15. import defaultSettings from '@/defaultSettings';
  16. let comm_cur_page = 1;//当前页数
  17. let pageSize = list_com_page_size_10;
  18. @connect(({ agreement }) => ({
  19. agreement,
  20. }))
  21. @Form.create()
  22. export default class Lists extends Component {
  23. constructor(props) {
  24. super(props);
  25. this.state = {
  26. data: {},
  27. loading: false,//按钮loading
  28. selectedRows: [],
  29. selectedRowKeys: [],//selectedRows的key
  30. title: '',
  31. params: { pageSize: pageSize },//搜索条件
  32. columns: [
  33. {
  34. title: ' ',
  35. dataIndex: 'agreementCode',
  36. align: 'center',
  37. width: 55,
  38. render: (text, record, index) => {
  39. return (comm_cur_page - 1) * pageSize + index + 1;
  40. },
  41. },
  42. {
  43. title: `${sldComLanguage('标题')}`,
  44. width: 150,
  45. align: 'center',
  46. dataIndex: 'title',
  47. },
  48. {
  49. title: `${sldComLanguage('时间')}`,
  50. dataIndex: 'updateTime',
  51. align: 'center',
  52. width: 150,
  53. },
  54. {
  55. title: `${sldComLanguage('操作')}`,
  56. align: 'center',
  57. width: 100,
  58. render: (text, record) => (
  59. <Fragment>
  60. <Link to={{
  61. pathname: '/sysset_agreement/lists_to_edit',
  62. query: { agreementCode: record.agreementCode, source: '/sysset_agreement/lists' },
  63. }}>
  64. {
  65. sldtbaleOpeBtnText(sldComLanguage('编辑'), null)
  66. }
  67. </Link>
  68. </Fragment>
  69. ),
  70. },
  71. ],
  72. };
  73. }
  74. componentDidMount() {
  75. this.get_list({ pageSize: pageSize });
  76. }
  77. componentWillUnmount() {
  78. }
  79. //获取数据列表
  80. get_list = (params) => {
  81. this.setState({ loading: true });
  82. const { dispatch } = this.props;
  83. dispatch({
  84. type: 'agreement/get_agreement_lists',
  85. payload: params,
  86. callback: (res) => {
  87. if (res.state == 200) {
  88. if (res.data.length == 0 && this.state.params.current > 1) {
  89. params.current = params.current - 1;
  90. this.get_list(params);
  91. } else {
  92. this.setState({
  93. data: res.data,
  94. isReset: false,
  95. });
  96. }
  97. }
  98. this.setState({ loading: false });
  99. },
  100. });
  101. };
  102. handleSelectRows = (rows, rowkeys) => {
  103. this.setState({
  104. selectedRows: rows,
  105. selectedRowKeys: rowkeys,
  106. });
  107. };
  108. handleTablePagination = (pagination, filtersArg, sorter, type = 'main') => {
  109. const { formValues } = this.state;
  110. if (type == 'main') {
  111. const params = sldHandlePaginationData(pagination, filtersArg, sorter, formValues);
  112. pageSize = params.pageSize;
  113. this.setState({ params });
  114. this.get_list(params);
  115. }
  116. };
  117. //表格拖动
  118. resizeTable = (index, size, type, data) => {
  119. let datas = dragSldTableColumn(index, size, data);
  120. this.setState({ [type]: datas });
  121. };
  122. render() {
  123. const { selectedRows, columns, data, loading } = this.state;
  124. return (
  125. <div className={global.common_page}>
  126. {sldLlineRtextAddGoodsAddMargin(defaultSettings.primaryColor, `${sldComLanguage('协议')}${sldComLanguage('管理')}`, 0, 0, 10)}
  127. <Spin spinning={loading}>
  128. { /*标准表格-start*/}
  129. <StandardTable
  130. selectedRows={selectedRows}
  131. data={data}
  132. rowKey={'agreementCode'}
  133. isCheck={false}
  134. columns={columns}
  135. onSelectRow={this.handleSelectRows}
  136. onChange={(pagination, filtersArg, sorter) => this.handleTablePagination(pagination, filtersArg, sorter, 'main')}
  137. resizeTable={(index, size) => this.resizeTable(index, size, 'columns', columns)}
  138. isColumnResize={true}
  139. />
  140. { /*标准表格-end*/}
  141. </Spin>
  142. </div>
  143. );
  144. }
  145. }