diff --git a/src/components/StandardTable/index.js b/src/components/StandardTable/index.js
index 639ef9df2ab5da690057b23c404c537ac7a9ed4b..907e8280131663487d35d4bf9369e8229f7fce37 100644
--- a/src/components/StandardTable/index.js
+++ b/src/components/StandardTable/index.js
@@ -1,35 +1,56 @@
-import React, { PureComponent, Fragment } from 'react';
-import moment from 'moment';
-import { Table, Alert, Badge, Divider } from 'antd';
+import React, { PureComponent } from 'react';
+import { Table, Alert } from 'antd';
import styles from './index.less';
-const statusMap = ['default', 'processing', 'success', 'error'];
+function initTotalList(columns) {
+ const totalList = [];
+ columns.forEach((column) => {
+ if (column.needTotal) {
+ totalList.push({ ...column, total: 0 });
+ }
+ });
+ return totalList;
+}
+
class StandardTable extends PureComponent {
- state = {
- selectedRowKeys: [],
- totalCallNo: 0,
- };
+ constructor(props) {
+ super(props);
+ const { columns } = props;
+ const needTotalList = initTotalList(columns);
+
+ this.state = {
+ selectedRowKeys: [],
+ needTotalList,
+ };
+ }
componentWillReceiveProps(nextProps) {
// clean state
if (nextProps.selectedRows.length === 0) {
+ const needTotalList = initTotalList(nextProps.columns);
this.setState({
selectedRowKeys: [],
- totalCallNo: 0,
+ needTotalList,
});
}
}
handleRowSelectChange = (selectedRowKeys, selectedRows) => {
- const totalCallNo = selectedRows.reduce((sum, val) => {
- return sum + parseFloat(val.callNo, 10);
- }, 0);
+ let needTotalList = [...this.state.needTotalList];
+ needTotalList = needTotalList.map((item) => {
+ return {
+ ...item,
+ total: selectedRows.reduce((sum, val) => {
+ return sum + parseFloat(val[item.dataIndex], 10);
+ }, 0),
+ };
+ });
if (this.props.onSelectRow) {
this.props.onSelectRow(selectedRows);
}
- this.setState({ selectedRowKeys, totalCallNo });
+ this.setState({ selectedRowKeys, needTotalList });
}
handleTableChange = (pagination, filters, sorter) => {
@@ -41,69 +62,8 @@ class StandardTable extends PureComponent {
}
render() {
- const { selectedRowKeys, totalCallNo } = this.state;
- const { data: { list, pagination }, loading } = this.props;
-
- const status = ['关闭', '运行中', '已上线', '异常'];
-
- const columns = [
- {
- title: '规则编号',
- dataIndex: 'no',
- },
- {
- title: '描述',
- dataIndex: 'description',
- },
- {
- title: '服务调用次数',
- dataIndex: 'callNo',
- sorter: true,
- align: 'right',
- render: val => `${val} 万`,
- },
- {
- title: '状态',
- dataIndex: 'status',
- filters: [
- {
- text: status[0],
- value: 0,
- },
- {
- text: status[1],
- value: 1,
- },
- {
- text: status[2],
- value: 2,
- },
- {
- text: status[3],
- value: 3,
- },
- ],
- render(val) {
- return