董国庆
2025-06-06 d0f4c2d4bb7a72b32fb9945de8908e1d4ab6509c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
import { buildProTableDataSource } from '@/utils/antdUtils';
import { PageContainer, ProTable } from '@ant-design/pro-components';
import { Button, Space } from 'antd';
import { useRef } from 'react';
import { Access, useAccess, history } from 'umi';
import moment from 'moment';
import { getList } from './service';
 
const Account = () => {
    const access = useAccess();
 
    const columns = [
        {
            title: '诉求号',
            dataIndex: 'serialNumber',
            order: 8,
        },
        {
            title: '录入人',
            dataIndex: 'reportUserName',
            order: 7,
        },
        {
            title: '录入联系方式',
            dataIndex: 'reportUserPhone',
            order: 6,
        },
        {
            title: '申请人',
            dataIndex: 'applyUserName',
            order: 5,
        },
        {
            title: '申请时间',
            dataIndex: 'applyTime',
            valueType: 'dateRange',
            order: 3,
            render: (text, record) => {
                return moment(record.applyTime).format('YYYY-MM-DD HH:mm:ss')
            }
        },
        {
            title: '审批时间',
            dataIndex: 'examineTime',
            valueType: 'dateRange',
            order: 2,
            render: (text, record) => {
                return moment(record.examineTime).format('YYYY-MM-DD HH:mm:ss')
            }
        },
        {
            title: '审批人',
            dataIndex: 'examineUserName',
            order: 4,
        },
        {
            title: '驳回理由',
            dataIndex: 'remark',
            hideInSearch: true,
        },
        {
            title: '诉求当前状态',
            dataIndex: 'status',
            hideInSearch: true,
            valueEnum: {
                0: '正在办理',
                1: '延期办理',
                2: '超时办理',
                3: '已办结',
                4: '群众撤销',
                5: '上报待审核',
                6: '上级驳回',
                7: '延期待审核',
                8: '已评价',
                9: '延期驳回',
            },
        },
        {
            title: '诉求状态',
            dataIndex: 'status',
            hideInTable: true,
            order: 1,
            valueEnum: {
                0: '正在办理',
                1: '延期办理',
                2: '超时办理',
                3: '已办结',
                4: '群众撤销',
                5: '上报待审核',
                6: '上级驳回',
                7: '延期待审核',
                8: '已评价',
                9: '延期驳回',
            },
        },
        {
            title: '操作',
            hideInSearch: true,
            render: (text, record) => {
                return (
                    <Space>
                        {
                            <Access accessible={access['/complaint/detail']}>
                                <Button
                                    type="link"
                                    onClick={() => {
                                        history.push('/appeal-management/detail?id=' + record.complaintId)
                                    }}
                                >
                                    查看详情
                                </Button>
                            </Access>
                        }
                    </Space>
                );
            },
        },
    ];
    return (
        <div>
            <PageContainer header={{
                breadcrumb: {},
            }}
                title={'问题驳回统计'}
            >
                <ProTable
                    rowKey="id"
                    columns={columns}
                    request={async (params) => {
                        if (params.applyTime && params.applyTime.length > 0) {
                            params.applyTime = moment(params.applyTime[0]).format('YYYY-MM-DD') +
                                ' - ' + moment(params.applyTime[1]).format('YYYY-MM-DD')
                        }
                        if (params.examineTime && params.examineTime.length > 0) {
                            params.examineTime = moment(params.examineTime[0]).format('YYYY-MM-DD') +
                                ' - ' + moment(params.examineTime[1]).format('YYYY-MM-DD')
                        }
 
                        return buildProTableDataSource(getList, params);
                    }}
                    search={{ labelWidth: 'auto', defaultCollapsed: false }}
                />
            </PageContainer>
        </div>
    );
};
 
export default Account;